[{"type_of":"article","id":3123669,"title":"Composable UI contracts and an algebraic approach to layout, style and interaction","description":"Experienced frontend developers already know the uncomfortable truth: UI complexity does not come...","readable_publish_date":"Jan 5","slug":"composable-ui-contracts-an-algebraic-approach-to-layout-style-and-interaction-3jh9","path":"/dariomannu/composable-ui-contracts-an-algebraic-approach-to-layout-style-and-interaction-3jh9","url":"https://dev.to/dariomannu/composable-ui-contracts-an-algebraic-approach-to-layout-style-and-interaction-3jh9","comments_count":0,"public_reactions_count":2,"collection_id":34675,"published_timestamp":"2026-01-05T13:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgdr74nxfbwwirevzg8ef.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgdr74nxfbwwirevzg8ef.png","canonical_url":"https://dev.to/dariomannu/composable-ui-contracts-an-algebraic-approach-to-layout-style-and-interaction-3jh9","created_at":"2025-12-24T00:20:07Z","edited_at":"2026-01-14T12:16:21Z","crossposted_at":null,"published_at":"2026-01-05T13:30:00Z","last_comment_at":"2026-01-05T13:30:00Z","reading_time_minutes":4,"tag_list":["css","ui","frontend","computerscience"],"tags":"css, ui, frontend, computerscience","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":3050970,"title":"HTML strings vs the DOM API: from a small benchmark to a surprising result","description":"Which of the following do you think is faster?   direct DOM API calls (createElement,...","readable_publish_date":"Nov 25 '25","slug":"html-strings-vs-the-dom-api-from-a-small-benchmark-to-a-surprising-result-5fo6","path":"/dariomannu/html-strings-vs-the-dom-api-from-a-small-benchmark-to-a-surprising-result-5fo6","url":"https://dev.to/dariomannu/html-strings-vs-the-dom-api-from-a-small-benchmark-to-a-surprising-result-5fo6","comments_count":2,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2025-11-25T09:36:42Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyjouglh1zkbswzlpvow6.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyjouglh1zkbswzlpvow6.jpg","canonical_url":"https://dev.to/dariomannu/html-strings-vs-the-dom-api-from-a-small-benchmark-to-a-surprising-result-5fo6","created_at":"2025-11-23T11:28:11Z","edited_at":"2026-01-07T13:50:12Z","crossposted_at":null,"published_at":"2025-11-25T09:36:42Z","last_comment_at":"2025-12-11T14:04:56Z","reading_time_minutes":3,"tag_list":["javascript","performance","webperf","webdev"],"tags":"javascript, performance, webperf, webdev","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2991453,"title":"Is your JS Framework slowing you down when you render something complex?\r\n\r\nRimmel.js allows you to create Custom Sinks to render anything you want the exact way you want\r\n\r\nhttps://stackblitz.com/edit/rimmel-table-powersink","description":"stackblitz.com","readable_publish_date":"Nov 4 '25","slug":"is-your-js-framework-slowing-you-down-when-you-render-something-complex-rimmeljs-allows-you-to-4mnf","path":"/dariomannu/is-your-js-framework-slowing-you-down-when-you-render-something-complex-rimmeljs-allows-you-to-4mnf","url":"https://dev.to/dariomannu/is-your-js-framework-slowing-you-down-when-you-render-something-complex-rimmeljs-allows-you-to-4mnf","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-11-04T15:16:12Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ib0aremx0vq5s9xwhhl.png","canonical_url":"https://dev.to/dariomannu/is-your-js-framework-slowing-you-down-when-you-render-something-complex-rimmeljs-allows-you-to-4mnf","created_at":"2025-11-04T15:16:12Z","edited_at":"2025-12-22T14:01:47Z","crossposted_at":null,"published_at":"2025-11-04T15:16:12Z","last_comment_at":"2025-11-04T15:16:12Z","reading_time_minutes":1,"tag_list":[],"tags":"","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2970013,"title":"Working with WebSockets? No, it's never been simpler than this, ever!\r\n\r\nhttps://stackblitz.com/edit/simplest-chat-app-deno-rimmel","description":"stackblitz.com","readable_publish_date":"Oct 28 '25","slug":"working-with-websockets-no-its-never-been-simpler-than-this-ever-3p4m","path":"/dariomannu/working-with-websockets-no-its-never-been-simpler-than-this-ever-3p4m","url":"https://dev.to/dariomannu/working-with-websockets-no-its-never-been-simpler-than-this-ever-3p4m","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-10-28T21:22:24Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0puu3s0lesx47torgbz.png","canonical_url":"https://dev.to/dariomannu/working-with-websockets-no-its-never-been-simpler-than-this-ever-3p4m","created_at":"2025-10-28T21:22:24Z","edited_at":null,"crossposted_at":null,"published_at":"2025-10-28T21:22:24Z","last_comment_at":"2025-10-28T21:22:24Z","reading_time_minutes":1,"tag_list":[],"tags":"","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2970010,"title":"Workinng with WebSockets? No, it's never been simpler than this, ever!\r\n\r\nhttps://stackblitz.com/edit/simplest-chat-app-deno-rimmel","description":"stackblitz.com","readable_publish_date":"Oct 28 '25","slug":"workinng-with-websockets-no-its-never-been-simpler-than-this-ever-26fa","path":"/dariomannu/workinng-with-websockets-no-its-never-been-simpler-than-this-ever-26fa","url":"https://dev.to/dariomannu/workinng-with-websockets-no-its-never-been-simpler-than-this-ever-26fa","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-10-28T21:21:08Z","language":null,"subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqogqlk2jh3obir7ylads.png","canonical_url":"https://dev.to/dariomannu/workinng-with-websockets-no-its-never-been-simpler-than-this-ever-26fa","created_at":"2025-10-28T21:21:08Z","edited_at":null,"crossposted_at":null,"published_at":"2025-10-28T21:21:08Z","last_comment_at":"2025-10-28T21:21:08Z","reading_time_minutes":1,"tag_list":[],"tags":"","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2966165,"title":"Rediscovering Effect Management with Effect Maps","description":"Many programming paradigms revolve around a single idea — whether that’s composition, purity,...","readable_publish_date":"Oct 28 '25","slug":"effect-maps-how-stream-oriented-programming-rethinks-effect-management-1d7o","path":"/dariomannu/effect-maps-how-stream-oriented-programming-rethinks-effect-management-1d7o","url":"https://dev.to/dariomannu/effect-maps-how-stream-oriented-programming-rethinks-effect-management-1d7o","comments_count":0,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2025-10-28T18:54:20Z","language":"en","subforem_id":1,"positive_reactions_count":7,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7w6c8omhfdtfp1r93jbr.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7w6c8omhfdtfp1r93jbr.jpg","canonical_url":"https://dev.to/dariomannu/effect-maps-how-stream-oriented-programming-rethinks-effect-management-1d7o","created_at":"2025-10-27T18:27:38Z","edited_at":"2026-02-18T00:52:37Z","crossposted_at":null,"published_at":"2025-10-28T18:54:20Z","last_comment_at":"2025-10-28T18:54:20Z","reading_time_minutes":6,"tag_list":["programming","functional","streamorientedprogramming"],"tags":"programming, functional, streamorientedprogramming","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":1900135,"title":"Contrarian JavaScript Frameworks: The Top 3","description":"Every Friday morning, some junior developer trying to get noticed drops yet another “Top JavaScript...","readable_publish_date":"Oct 22 '25","slug":"3-contrarian-js-frameworks-58fm","path":"/dariomannu/3-contrarian-js-frameworks-58fm","url":"https://dev.to/dariomannu/3-contrarian-js-frameworks-58fm","comments_count":7,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2025-10-22T14:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfxpj8swu22azkv50rq5.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfxpj8swu22azkv50rq5.jpg","canonical_url":"https://dev.to/dariomannu/3-contrarian-js-frameworks-58fm","created_at":"2024-06-25T14:04:08Z","edited_at":"2025-12-23T08:59:05Z","crossposted_at":null,"published_at":"2025-10-22T14:30:00Z","last_comment_at":"2026-01-11T19:42:55Z","reading_time_minutes":5,"tag_list":["javascript","webdev","javascriptlibraries","showdev"],"tags":"javascript, webdev, javascriptlibraries, showdev","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":2622163,"title":"A Web Developer's guide to Stream-Oriented Programming","description":"So you're interested or curious about Stream-Oriented Programming (SP).  SP is a novel programming...","readable_publish_date":"Oct 15 '25","slug":"a-senior-developers-guide-to-stream-oriented-programming-3j24","path":"/dariomannu/a-senior-developers-guide-to-stream-oriented-programming-3j24","url":"https://dev.to/dariomannu/a-senior-developers-guide-to-stream-oriented-programming-3j24","comments_count":2,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2025-10-15T14:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":7,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxev163uqsh3pdmsntca1.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxev163uqsh3pdmsntca1.jpg","canonical_url":"https://dev.to/dariomannu/a-senior-developers-guide-to-stream-oriented-programming-3j24","created_at":"2025-06-24T22:59:31Z","edited_at":"2026-02-23T19:41:05Z","crossposted_at":null,"published_at":"2025-10-15T14:30:00Z","last_comment_at":"2026-03-09T05:23:24Z","reading_time_minutes":6,"tag_list":["webdev","javascript","programming","functional"],"tags":"webdev, javascript, programming, functional","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2914339,"title":"Building a Stream-Oriented, Infinite-Scrolling DEV.to reader","description":"This is a short, beginner-friendly walk-through for building an infinite scroll reader that loads...","readable_publish_date":"Oct 11 '25","slug":"building-an-infinite-scroll-devto-reader-in-the-stream-oriented-paradigm-1c8","path":"/dariomannu/building-an-infinite-scroll-devto-reader-in-the-stream-oriented-paradigm-1c8","url":"https://dev.to/dariomannu/building-an-infinite-scroll-devto-reader-in-the-stream-oriented-paradigm-1c8","comments_count":0,"public_reactions_count":6,"collection_id":null,"published_timestamp":"2025-10-11T11:21:28Z","language":"en","subforem_id":1,"positive_reactions_count":6,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj99znqvo3zuwgng0g5xk.jpeg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj99znqvo3zuwgng0g5xk.jpeg","canonical_url":"https://dev.to/dariomannu/building-an-infinite-scroll-devto-reader-in-the-stream-oriented-paradigm-1c8","created_at":"2025-10-11T10:31:15Z","edited_at":"2026-01-11T16:53:52Z","crossposted_at":null,"published_at":"2025-10-11T11:21:28Z","last_comment_at":"2025-10-11T11:21:28Z","reading_time_minutes":5,"tag_list":["tutorial","frontend","programming","javascript"],"tags":"tutorial, frontend, programming, javascript","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2690791,"title":"From Plain Functions to Reactive Streams: a mindset change with a thousand benefits","description":"Functions have been at the core of computer programming since the dawn of time. From the simplest...","readable_publish_date":"Oct 8 '25","slug":"from-plain-functions-to-reactive-streams-a-mindset-change-with-a-thousand-benefits-aoa","path":"/dariomannu/from-plain-functions-to-reactive-streams-a-mindset-change-with-a-thousand-benefits-aoa","url":"https://dev.to/dariomannu/from-plain-functions-to-reactive-streams-a-mindset-change-with-a-thousand-benefits-aoa","comments_count":8,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2025-10-08T12:57:02Z","language":"en","subforem_id":1,"positive_reactions_count":7,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fez19v6fw0qwcxb87tnye.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fez19v6fw0qwcxb87tnye.png","canonical_url":"https://dev.to/dariomannu/from-plain-functions-to-reactive-streams-a-mindset-change-with-a-thousand-benefits-aoa","created_at":"2025-07-15T14:44:05Z","edited_at":"2025-12-21T18:23:35Z","crossposted_at":null,"published_at":"2025-10-08T12:57:02Z","last_comment_at":"2025-10-16T09:38:49Z","reading_time_minutes":4,"tag_list":["javascript","webdev","programming","streamorientedprogramming"],"tags":"javascript, webdev, programming, streamorientedprogramming","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2847447,"title":"A Messagebus? Using Observable Streams? https://stackblitz.com/edit/tops-example #JavaScript #WebDev #WebDevelopment #FrontEnd #RxJS","description":"stackblitz.com","readable_publish_date":"Sep 15 '25","slug":"a-messagebus-using-observable-streams-httpsstackblitzcomedittops-example-javascript-n3o","path":"/dariomannu/a-messagebus-using-observable-streams-httpsstackblitzcomedittops-example-javascript-n3o","url":"https://dev.to/dariomannu/a-messagebus-using-observable-streams-httpsstackblitzcomedittops-example-javascript-n3o","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-09-15T19:52:06Z","language":null,"subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh2r1yca27clwxnx2krin.png","canonical_url":"https://dev.to/dariomannu/a-messagebus-using-observable-streams-httpsstackblitzcomedittops-example-javascript-n3o","created_at":"2025-09-15T19:52:06Z","edited_at":null,"crossposted_at":null,"published_at":"2025-09-15T19:52:06Z","last_comment_at":"2025-09-15T19:52:06Z","reading_time_minutes":1,"tag_list":[],"tags":"","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2843648,"title":"Why Angular Isn’t the Observable Framework You Think It Is","description":"When many developers hear \"observables\", one framework often jumps to mind: Angular. It’s been...","readable_publish_date":"Sep 13 '25","slug":"why-angular-isnt-the-observable-framework-you-think-it-is-56a3","path":"/reactivehtml/why-angular-isnt-the-observable-framework-you-think-it-is-56a3","url":"https://dev.to/reactivehtml/why-angular-isnt-the-observable-framework-you-think-it-is-56a3","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2025-09-13T17:55:23Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0m7g7am62dz4mvlfala.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0m7g7am62dz4mvlfala.jpg","canonical_url":"https://dev.to/reactivehtml/why-angular-isnt-the-observable-framework-you-think-it-is-56a3","created_at":"2025-09-13T17:25:29Z","edited_at":"2025-12-19T00:17:11Z","crossposted_at":null,"published_at":"2025-09-13T17:55:23Z","last_comment_at":"2025-09-13T17:55:23Z","reading_time_minutes":3,"tag_list":["webdev","javascript","frontend"],"tags":"webdev, javascript, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"},"organization":{"name":"ReactiveHTML","username":"reactivehtml","slug":"reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F9083%2F60654e77-27a4-4fe5-af49-6cf6913f1a0e.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F9083%2F60654e77-27a4-4fe5-af49-6cf6913f1a0e.png"}},{"type_of":"article","id":2811406,"title":"How I Turned My RxJS Headaches Into Rimmel.js","description":"When I first discovered RxJS, I was hooked. The idea that everything could be a stream was...","readable_publish_date":"Aug 31 '25","slug":"how-i-turned-my-rxjs-headaches-into-rimmeljs-1kjo","path":"/dariomannu/how-i-turned-my-rxjs-headaches-into-rimmeljs-1kjo","url":"https://dev.to/dariomannu/how-i-turned-my-rxjs-headaches-into-rimmeljs-1kjo","comments_count":4,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2025-08-31T20:03:09Z","language":"en","subforem_id":1,"positive_reactions_count":7,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa22cmb32ugpyldjtq67a.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa22cmb32ugpyldjtq67a.png","canonical_url":"https://dev.to/dariomannu/how-i-turned-my-rxjs-headaches-into-rimmeljs-1kjo","created_at":"2025-08-31T19:56:20Z","edited_at":"2025-09-03T21:18:10Z","crossposted_at":null,"published_at":"2025-08-31T20:03:09Z","last_comment_at":"2025-09-02T18:34:52Z","reading_time_minutes":3,"tag_list":["rxjs","javascript","webdev","frontend"],"tags":"rxjs, javascript, webdev, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2762818,"title":"[Boost]","description":"Reactive Streams: Functional vs Imperative       Dario Mannu ・...","readable_publish_date":"Aug 10 '25","slug":"-1oj7","path":"/dariomannu/-1oj7","url":"https://dev.to/dariomannu/-1oj7","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-08-10T09:20:41Z","language":null,"subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhn05b0sui6m851233jg.png","canonical_url":"https://dev.to/dariomannu/-1oj7","created_at":"2025-08-10T09:20:41Z","edited_at":null,"crossposted_at":null,"published_at":"2025-08-10T09:20:41Z","last_comment_at":"2025-08-10T09:20:41Z","reading_time_minutes":1,"tag_list":["programming","architecture","designpatterns","frontend"],"tags":"programming, architecture, designpatterns, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2149684,"title":"You've been using Observables wrong","description":"Yes, this is serious, even if you have over 10 years experience using Observables, you got used to...","readable_publish_date":"Jul 31 '25","slug":"youve-been-using-observables-all-wrong-2mld","path":"/dariomannu/youve-been-using-observables-all-wrong-2mld","url":"https://dev.to/dariomannu/youve-been-using-observables-all-wrong-2mld","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2025-07-31T09:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fyen29c8apf1zzf7ltl.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fyen29c8apf1zzf7ltl.jpg","canonical_url":"https://dev.to/dariomannu/youve-been-using-observables-all-wrong-2mld","created_at":"2024-12-10T12:03:40Z","edited_at":"2026-01-11T17:25:28Z","crossposted_at":null,"published_at":"2025-07-31T09:00:00Z","last_comment_at":"2025-07-31T09:00:00Z","reading_time_minutes":3,"tag_list":["rxjs","observables","webdev","javascript"],"tags":"rxjs, observables, webdev, javascript","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2726812,"title":"Creating \"Suspense\" with a Promise and an Attribute Mixin","description":"Did you ever feel that most JavaScript frameworks tend to overcomplicate things that should be...","readable_publish_date":"Jul 29 '25","slug":"suspense-with-a-promise-and-an-attribute-mixin-3ldn","path":"/dariomannu/suspense-with-a-promise-and-an-attribute-mixin-3ldn","url":"https://dev.to/dariomannu/suspense-with-a-promise-and-an-attribute-mixin-3ldn","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2025-07-29T12:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":4,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flk7rwv505na6hdedhtzt.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flk7rwv505na6hdedhtzt.png","canonical_url":"https://dev.to/dariomannu/suspense-with-a-promise-and-an-attribute-mixin-3ldn","created_at":"2025-07-27T22:37:59Z","edited_at":"2026-01-11T17:00:03Z","crossposted_at":null,"published_at":"2025-07-29T12:00:00Z","last_comment_at":"2025-07-29T12:00:00Z","reading_time_minutes":3,"tag_list":["webdev","javascript","suspense","frontend"],"tags":"webdev, javascript, suspense, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2596359,"title":"OOP=middle ages, FP=enlightenment, FRP=impressionism, SP=minimalism","description":"If you're doing any Object-Oriented programming, chances are your code is bloated. If you're working...","readable_publish_date":"Jul 25 '25","slug":"oop-is-the-middle-ages-fp-is-the-enlightenment-frp-is-impressionism-sop-is-the-modern-minimalism-487j","path":"/dariomannu/oop-is-the-middle-ages-fp-is-the-enlightenment-frp-is-impressionism-sop-is-the-modern-minimalism-487j","url":"https://dev.to/dariomannu/oop-is-the-middle-ages-fp-is-the-enlightenment-frp-is-impressionism-sop-is-the-modern-minimalism-487j","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2025-07-25T04:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffitqoguzej0c6flp6m77.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffitqoguzej0c6flp6m77.jpg","canonical_url":"https://dev.to/dariomannu/oop-is-the-middle-ages-fp-is-the-enlightenment-frp-is-impressionism-sop-is-the-modern-minimalism-487j","created_at":"2025-06-16T08:11:54Z","edited_at":"2025-12-23T09:09:28Z","crossposted_at":null,"published_at":"2025-07-25T04:00:00Z","last_comment_at":"2025-07-25T04:00:00Z","reading_time_minutes":4,"tag_list":["programming","javascript","streamorientedprogramming","webdev"],"tags":"programming, javascript, streamorientedprogramming, webdev","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2499418,"title":"Reactive Streams: Functional vs Imperative","description":"You may already know how functional programming is different from imperative, but... what if it's...","readable_publish_date":"Jul 24 '25","slug":"stream-oriented-imperative-vs-functional-29h6","path":"/dariomannu/stream-oriented-imperative-vs-functional-29h6","url":"https://dev.to/dariomannu/stream-oriented-imperative-vs-functional-29h6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-07-24T08:58:59Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frurnht67bbbvtr3t2r1l.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frurnht67bbbvtr3t2r1l.jpg","canonical_url":"https://dev.to/dariomannu/stream-oriented-imperative-vs-functional-29h6","created_at":"2025-05-18T15:25:51Z","edited_at":"2025-12-23T08:56:10Z","crossposted_at":null,"published_at":"2025-07-24T08:58:59Z","last_comment_at":"2025-07-24T08:58:59Z","reading_time_minutes":3,"tag_list":["programming","architecture","designpatterns","frontend"],"tags":"programming, architecture, designpatterns, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2691219,"title":"Callforwards: reactivity modelled by middleware","description":"Have you ever tried callforwards?  If you've used Express.js before, it's the same concept, but for...","readable_publish_date":"Jul 19 '25","slug":"callforwards-are-actually-not-that-bad-475e","path":"/dariomannu/callforwards-are-actually-not-that-bad-475e","url":"https://dev.to/dariomannu/callforwards-are-actually-not-that-bad-475e","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2025-07-19T09:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":4,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2h9k3bw7gtbtli24qtt3.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2h9k3bw7gtbtli24qtt3.png","canonical_url":"https://dev.to/dariomannu/callforwards-are-actually-not-that-bad-475e","created_at":"2025-07-15T17:51:58Z","edited_at":"2025-10-09T14:18:07Z","crossposted_at":null,"published_at":"2025-07-19T09:00:00Z","last_comment_at":"2025-07-19T09:00:00Z","reading_time_minutes":2,"tag_list":["javascript","frontend","webdev","programming"],"tags":"javascript, frontend, webdev, programming","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2661075,"title":"From jQuery to the most complex components","description":"So you're running your successful webiste that's been around for decades using jQuery but you're...","readable_publish_date":"Jul 17 '25","slug":"from-jquery-straight-to-advanced-components-kko","path":"/dariomannu/from-jquery-straight-to-advanced-components-kko","url":"https://dev.to/dariomannu/from-jquery-straight-to-advanced-components-kko","comments_count":3,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2025-07-17T08:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frovgwjddmcwuxnidn1fh.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frovgwjddmcwuxnidn1fh.jpg","canonical_url":"https://dev.to/dariomannu/from-jquery-straight-to-advanced-components-kko","created_at":"2025-07-06T16:57:39Z","edited_at":"2026-01-15T09:04:49Z","crossposted_at":null,"published_at":"2025-07-17T08:00:00Z","last_comment_at":"2025-07-24T14:30:57Z","reading_time_minutes":2,"tag_list":["webdev","jquery","javascript","rimmel"],"tags":"webdev, jquery, javascript, rimmel","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2652950,"title":"You might actually not like React","description":"When asked if you like React, you might typically answer \"yes\", even without thinking about it...","readable_publish_date":"Jul 15 '25","slug":"you-might-not-actually-like-react-44b3","path":"/dariomannu/you-might-not-actually-like-react-44b3","url":"https://dev.to/dariomannu/you-might-not-actually-like-react-44b3","comments_count":2,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2025-07-15T12:49:55Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye8wotbnuedrmm1ol16s.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye8wotbnuedrmm1ol16s.png","canonical_url":"https://dev.to/dariomannu/you-might-not-actually-like-react-44b3","created_at":"2025-07-03T22:44:20Z","edited_at":"2026-01-07T14:50:13Z","crossposted_at":null,"published_at":"2025-07-15T12:49:55Z","last_comment_at":"2025-07-16T09:01:43Z","reading_time_minutes":6,"tag_list":["react","webdev","javascript","discuss"],"tags":"react, webdev, javascript, discuss","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":2651585,"title":"Forward vs Reverse Pipelines: unidirectional code flow, bidirectional data flow","description":"If you use Observables you know the pipeline pattern, which is the composition of a high-level...","readable_publish_date":"Jul 9 '25","slug":"reverse-pipelines-of-reactive-streams-2nmb","path":"/dariomannu/reverse-pipelines-of-reactive-streams-2nmb","url":"https://dev.to/dariomannu/reverse-pipelines-of-reactive-streams-2nmb","comments_count":2,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2025-07-09T05:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":4,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32ubo4c0uk4eyt6df45o.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32ubo4c0uk4eyt6df45o.png","canonical_url":"https://dev.to/dariomannu/reverse-pipelines-of-reactive-streams-2nmb","created_at":"2025-07-03T13:19:43Z","edited_at":"2026-01-07T14:52:31Z","crossposted_at":null,"published_at":"2025-07-09T05:30:00Z","last_comment_at":"2025-07-10T18:04:24Z","reading_time_minutes":3,"tag_list":["webdev","programming","javascript","functional"],"tags":"webdev, programming, javascript, functional","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2665852,"title":"Hey you, reading this 👀 are you a human or a bot?","description":"A quick check on the profile of several thousands of followers made me somewhat suspicious: lots of...","readable_publish_date":"Jul 7 '25","slug":"hey-you-reading-this-are-you-a-human-or-a-bot-3cnd","path":"/dariomannu/hey-you-reading-this-are-you-a-human-or-a-bot-3cnd","url":"https://dev.to/dariomannu/hey-you-reading-this-are-you-a-human-or-a-bot-3cnd","comments_count":5,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2025-07-07T19:22:45Z","language":"en","subforem_id":1,"positive_reactions_count":7,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh872ge0toiv8lip923h.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh872ge0toiv8lip923h.png","canonical_url":"https://dev.to/dariomannu/hey-you-reading-this-are-you-a-human-or-a-bot-3cnd","created_at":"2025-07-07T19:22:45Z","edited_at":"2025-11-29T10:54:53Z","crossposted_at":null,"published_at":"2025-07-07T19:22:45Z","last_comment_at":"2025-07-14T15:22:17Z","reading_time_minutes":1,"tag_list":[],"tags":"","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2634169,"title":"Why Exponential Backoff is Broken","description":"So they taught you that expoential backoff is the clever way to handle retries when calling an API....","readable_publish_date":"Jul 2 '25","slug":"why-exponential-backoff-is-silly-3p7i","path":"/dariomannu/why-exponential-backoff-is-silly-3p7i","url":"https://dev.to/dariomannu/why-exponential-backoff-is-silly-3p7i","comments_count":5,"public_reactions_count":6,"collection_id":null,"published_timestamp":"2025-07-02T06:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":6,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tjx90a0nnr1yzxa84l5.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tjx90a0nnr1yzxa84l5.jpg","canonical_url":"https://dev.to/dariomannu/why-exponential-backoff-is-silly-3p7i","created_at":"2025-06-28T20:07:38Z","edited_at":"2025-12-20T18:06:18Z","crossposted_at":null,"published_at":"2025-07-02T06:00:00Z","last_comment_at":"2025-07-02T15:26:44Z","reading_time_minutes":3,"tag_list":["architecture","designpatterns","programming","webdev"],"tags":"architecture, designpatterns, programming, webdev","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":1760633,"title":"Bring some “Suspense” with a BehaviorSubject","description":"In the world of JavaScript some frameworks in a constant rush to grow quickly can easily...","readable_publish_date":"Jun 24 '25","slug":"implementing-suspense-with-a-simple-observable-5ag2","path":"/dariomannu/implementing-suspense-with-a-simple-observable-5ag2","url":"https://dev.to/dariomannu/implementing-suspense-with-a-simple-observable-5ag2","comments_count":9,"public_reactions_count":8,"collection_id":null,"published_timestamp":"2025-06-24T04:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":8,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyr46040fk5xslj6x8vv9.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyr46040fk5xslj6x8vv9.jpg","canonical_url":"https://dev.to/dariomannu/implementing-suspense-with-a-simple-observable-5ag2","created_at":"2024-02-14T01:34:01Z","edited_at":"2025-12-09T23:31:42Z","crossposted_at":null,"published_at":"2025-06-24T04:00:00Z","last_comment_at":"2025-07-24T16:48:38Z","reading_time_minutes":2,"tag_list":["rxjs","reactiveprogramming","javascript","programming"],"tags":"rxjs, reactiveprogramming, javascript, programming","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2614761,"title":"A render-aware Collection that tells your framework what changed, so it can be rendered efficiently. [Example](https://stackblitz.com/edit/observable-types-basics) [Github](https://github.com/ReactiveHTML/observable-types)","description":"A post by Dario Mannu","readable_publish_date":"Jun 22 '25","slug":"a-render-aware-collection-that-tells-your-framework-what-changed-so-it-can-be-rendered-3b38","path":"/dariomannu/a-render-aware-collection-that-tells-your-framework-what-changed-so-it-can-be-rendered-3b38","url":"https://dev.to/dariomannu/a-render-aware-collection-that-tells-your-framework-what-changed-so-it-can-be-rendered-3b38","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-06-22T09:29:00Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6bgxigwwj0oxj8cfyk3.png","canonical_url":"https://dev.to/dariomannu/a-render-aware-collection-that-tells-your-framework-what-changed-so-it-can-be-rendered-3b38","created_at":"2025-06-22T09:29:00Z","edited_at":null,"crossposted_at":null,"published_at":"2025-06-22T09:29:00Z","last_comment_at":"2025-06-22T09:29:00Z","reading_time_minutes":0,"tag_list":["javascript","webdev","tooling"],"tags":"javascript, webdev, tooling","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2422108,"title":"Can this pattern make Dependency Injection obsolete?","description":"When using traditional dependency injection (DI) systems in UI applications, components are tightly...","readable_publish_date":"Jun 14 '25","slug":"the-design-pattern-making-dependency-injection-obsolete-2n8b","path":"/dariomannu/the-design-pattern-making-dependency-injection-obsolete-2n8b","url":"https://dev.to/dariomannu/the-design-pattern-making-dependency-injection-obsolete-2n8b","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2025-06-14T09:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduu5rl9xz1nk0z9xujre.png","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduu5rl9xz1nk0z9xujre.png","canonical_url":"https://dev.to/dariomannu/the-design-pattern-making-dependency-injection-obsolete-2n8b","created_at":"2025-04-21T13:47:06Z","edited_at":"2025-12-15T15:59:51Z","crossposted_at":null,"published_at":"2025-06-14T09:00:00Z","last_comment_at":"2025-06-14T09:00:00Z","reading_time_minutes":4,"tag_list":["programming","architecture","designpatterns","javascript"],"tags":"programming, architecture, designpatterns, javascript","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2525927,"title":"A Stream-Oriented App, built in public","description":"The exploration of Stream-Oriented Programming continues.  Now that we have a good UI library for...","readable_publish_date":"Jun 13 '25","slug":"a-stream-oriented-app-building-in-public-53kj","path":"/dariomannu/a-stream-oriented-app-building-in-public-53kj","url":"https://dev.to/dariomannu/a-stream-oriented-app-building-in-public-53kj","comments_count":0,"public_reactions_count":2,"collection_id":32108,"published_timestamp":"2025-06-13T21:33:37Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvq64vefz9qblbd8nvun.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvq64vefz9qblbd8nvun.jpg","canonical_url":"https://dev.to/dariomannu/a-stream-oriented-app-building-in-public-53kj","created_at":"2025-05-25T18:19:50Z","edited_at":"2026-01-12T10:56:11Z","crossposted_at":null,"published_at":"2025-06-13T21:33:37Z","last_comment_at":"2025-06-14T09:00:00Z","reading_time_minutes":3,"tag_list":["javascript","buildinpublic","frontend","rxjs"],"tags":"javascript, buildinpublic, frontend, rxjs","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2558850,"title":"Signals have no operators. Shall we add some?","description":"Signals, one of a few competing reactive primitives in JavaScript land, promised simplicity and...","readable_publish_date":"Jun 7 '25","slug":"signals-dont-have-operators-what-shall-we-do-20ak","path":"/dariomannu/signals-dont-have-operators-what-shall-we-do-20ak","url":"https://dev.to/dariomannu/signals-dont-have-operators-what-shall-we-do-20ak","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2025-06-07T11:09:13Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feykg2bxibyb4fqfobbj9.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feykg2bxibyb4fqfobbj9.jpg","canonical_url":"https://dev.to/dariomannu/signals-dont-have-operators-what-shall-we-do-20ak","created_at":"2025-06-03T08:43:00Z","edited_at":"2025-12-20T18:05:50Z","crossposted_at":null,"published_at":"2025-06-07T11:09:13Z","last_comment_at":"2025-06-07T11:09:13Z","reading_time_minutes":3,"tag_list":["webdev","javascript","rxjs","frontend"],"tags":"webdev, javascript, rxjs, frontend","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}},{"type_of":"article","id":2418573,"title":"TDD is a scam. Grow up and do this instead","description":"You may remember how much did others tell you to write your tests first, see them fail, and only...","readable_publish_date":"May 20 '25","slug":"tdd-is-a-scam-grow-up-and-use-this-instead-5hk1","path":"/dariomannu/tdd-is-a-scam-grow-up-and-use-this-instead-5hk1","url":"https://dev.to/dariomannu/tdd-is-a-scam-grow-up-and-use-this-instead-5hk1","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2025-05-20T06:57:47Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpx2p3gdqakftorxrgob.png","canonical_url":"https://dev.to/dariomannu/tdd-is-a-scam-grow-up-and-use-this-instead-5hk1","created_at":"2025-04-19T18:41:27Z","edited_at":"2025-09-15T14:11:16Z","crossposted_at":null,"published_at":"2025-05-20T06:57:47Z","last_comment_at":"2025-12-01T19:29:20Z","reading_time_minutes":4,"tag_list":["javascript","qa","testing","programming"],"tags":"javascript, qa, testing, programming","user":{"name":"Dario Mannu","username":"dariomannu","twitter_username":null,"github_username":"dariomannu","user_id":1100953,"website_url":"https://github.com/reactivehtml","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100953%2Ff28eae25-f448-4f8d-b41d-30241be597b1.png"}}]