[{"type_of":"article","id":3655596,"title":"I Stopped Fighting React Server Components — Here's What Finally Made It","description":"TheBitForgeFollow             TheBitForge Agency That...","readable_publish_date":"May 12","slug":"i-stopped-fighting-react-server-components-heres-what-finally-made-it-4cho","path":"/thebitforge/i-stopped-fighting-react-server-components-heres-what-finally-made-it-4cho","url":"https://dev.to/thebitforge/i-stopped-fighting-react-server-components-heres-what-finally-made-it-4cho","comments_count":1,"public_reactions_count":53,"collection_id":null,"published_timestamp":"2026-05-12T09:16:11Z","language":"en","subforem_id":1,"positive_reactions_count":53,"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%2F7x9betwcolp3fa5fi9hs.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7x9betwcolp3fa5fi9hs.png","canonical_url":"https://dev.to/thebitforge/i-stopped-fighting-react-server-components-heres-what-finally-made-it-4cho","created_at":"2026-05-12T09:16:12Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T09:16:11Z","last_comment_at":"2026-05-12T14:28:34Z","reading_time_minutes":17,"tag_list":["react","nextjs","webdev","javascript"],"tags":"react, nextjs, webdev, javascript","user":{"name":"TheBitForge","username":"thebitforge","twitter_username":"thebitforge_dev","github_username":null,"user_id":3581035,"website_url":"https://the-bit-forge.vercel.app","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%2F3581035%2F7a4e3e11-052c-4b61-9f45-e3f421e69147.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%2F3581035%2F7a4e3e11-052c-4b61-9f45-e3f421e69147.png"}},{"type_of":"article","id":3656943,"title":"The 2026 Developer's Guide to Zero-Cost Full-Stack Hosting: FastAPI, React, and PostgreSQL","description":"From local dev to a production-ready public release — without spending a dollar.             ...","readable_publish_date":"May 12","slug":"the-2026-developers-guide-to-zero-cost-full-stack-hosting-fastapi-react-and-postgresql-dgh","path":"/sreeraj_sreenivasan_2b932/the-2026-developers-guide-to-zero-cost-full-stack-hosting-fastapi-react-and-postgresql-dgh","url":"https://dev.to/sreeraj_sreenivasan_2b932/the-2026-developers-guide-to-zero-cost-full-stack-hosting-fastapi-react-and-postgresql-dgh","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T12:55:20Z","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%2Fo5zvpnn3izn72lmjhs4k.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5zvpnn3izn72lmjhs4k.png","canonical_url":"https://dev.to/sreeraj_sreenivasan_2b932/the-2026-developers-guide-to-zero-cost-full-stack-hosting-fastapi-react-and-postgresql-dgh","created_at":"2026-05-12T12:55:20Z","edited_at":"2026-05-12T13:28:07Z","crossposted_at":null,"published_at":"2026-05-12T12:55:20Z","last_comment_at":"2026-05-12T12:55:20Z","reading_time_minutes":13,"tag_list":["devops","python","fastapi","react"],"tags":"devops, python, fastapi, react","user":{"name":"Sreeraj Sreenivasan","username":"sreeraj_sreenivasan_2b932","twitter_username":null,"github_username":null,"user_id":3876822,"website_url":null,"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%2F3876822%2F571c23a7-974b-4c5a-92f0-81c1e4f41d3f.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%2F3876822%2F571c23a7-974b-4c5a-92f0-81c1e4f41d3f.png"}},{"type_of":"article","id":3657511,"title":"Mastering useReducer in React — The Hook That Simplifies Complex State","description":"From Simple State to Scalable Logic   Welcome back to another episode of “Let’s Master React...","readable_publish_date":"May 12","slug":"mastering-usereducer-in-react-the-hook-that-simplifies-complex-state-3idl","path":"/kathirvel-s/mastering-usereducer-in-react-the-hook-that-simplifies-complex-state-3idl","url":"https://dev.to/kathirvel-s/mastering-usereducer-in-react-the-hook-that-simplifies-complex-state-3idl","comments_count":0,"public_reactions_count":2,"collection_id":39103,"published_timestamp":"2026-05-12T15:16:44Z","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%2F6zcnr2lfh98co3beqfh1.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zcnr2lfh98co3beqfh1.png","canonical_url":"https://dev.to/kathirvel-s/mastering-usereducer-in-react-the-hook-that-simplifies-complex-state-3idl","created_at":"2026-05-12T15:16:44Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T15:16:44Z","last_comment_at":"2026-05-12T15:16:44Z","reading_time_minutes":5,"tag_list":["react","javascript","webdev","learning"],"tags":"react, javascript, webdev, learning","user":{"name":"Kathirvel S","username":"kathirvel-s","twitter_username":null,"github_username":null,"user_id":3689425,"website_url":null,"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%2F3689425%2F49462e6b-f95a-4bb0-b5e3-080ad3919937.jpeg","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%2F3689425%2F49462e6b-f95a-4bb0-b5e3-080ad3919937.jpeg"}},{"type_of":"article","id":3657807,"title":"Binary Search vs Linear Search — Visualized in React with No Libraries","description":"As a Senior React developer I wanted to  show exactly WHY binary search exists —  not just explain it...","readable_publish_date":"May 12","slug":"binary-search-vs-linear-search-visualized-in-react-with-no-libraries-3gke","path":"/amargul/binary-search-vs-linear-search-visualized-in-react-with-no-libraries-3gke","url":"https://dev.to/amargul/binary-search-vs-linear-search-visualized-in-react-with-no-libraries-3gke","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T16:45:09Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlui0pirx9x88ke0mgle.png","canonical_url":"https://dev.to/amargul/binary-search-vs-linear-search-visualized-in-react-with-no-libraries-3gke","created_at":"2026-05-12T16:45:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T16:45:09Z","last_comment_at":"2026-05-12T16:45:09Z","reading_time_minutes":1,"tag_list":["react","javascript","tutorial","algorithms"],"tags":"react, javascript, tutorial, algorithms","user":{"name":"Amar Gul","username":"amargul","twitter_username":null,"github_username":"Amargul","user_id":3922263,"website_url":"https://youtube.com/@AlgoCanvas","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%2F3922263%2F2747df38-001d-4983-848f-164fd2ef7749.jpg","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%2F3922263%2F2747df38-001d-4983-848f-164fd2ef7749.jpg"}},{"type_of":"article","id":3164263,"title":"Foundational Accessibility Begins with the Base Components","description":"Prologue  A while ago, I decided to develop a fully accessible main navigation component in React and...","readable_publish_date":"May 12","slug":"foundational-accessibility-begins-with-the-base-components-2nac","path":"/shaynaproductions/foundational-accessibility-begins-with-the-base-components-2nac","url":"https://dev.to/shaynaproductions/foundational-accessibility-begins-with-the-base-components-2nac","comments_count":0,"public_reactions_count":0,"collection_id":33702,"published_timestamp":"2026-05-12T12:15:00Z","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%2Fnk3iws05lheny5tcng8u.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk3iws05lheny5tcng8u.png","canonical_url":"https://dev.to/shaynaproductions/foundational-accessibility-begins-with-the-base-components-2nac","created_at":"2026-01-11T12:30:37Z","edited_at":"2026-04-19T11:36:24Z","crossposted_at":null,"published_at":"2026-05-12T12:15:00Z","last_comment_at":"2026-05-12T12:15:00Z","reading_time_minutes":21,"tag_list":["react","a11y","code","webdev"],"tags":"react, a11y, code, webdev","user":{"name":"ShaynaProductions","username":"shaynaproductions","twitter_username":null,"github_username":"ShaynaProductions","user_id":3173178,"website_url":"http://www.shaynaproductions.com/","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%2F3173178%2F917422f6-23eb-4f4a-99b4-3d68dadb4777.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%2F3173178%2F917422f6-23eb-4f4a-99b4-3d68dadb4777.png"}},{"type_of":"article","id":3656390,"title":"I Built a 8.7KB React Animation Library (120+ FPS) on top of GSAP","description":"After weeks of development, I'm excited to share ZProximity Engine - a React library for creating...","readable_publish_date":"May 12","slug":"i-built-a-87kb-react-animation-library-120-fps-on-top-of-gsap-2b7p","path":"/youssefzidan1/i-built-a-87kb-react-animation-library-120-fps-on-top-of-gsap-2b7p","url":"https://dev.to/youssefzidan1/i-built-a-87kb-react-animation-library-120-fps-on-top-of-gsap-2b7p","comments_count":0,"public_reactions_count":0,"collection_id":39575,"published_timestamp":"2026-05-12T11:14:16Z","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%2Frvkn7b1qv47risbhgrid.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvkn7b1qv47risbhgrid.jpg","canonical_url":"https://dev.to/youssefzidan1/i-built-a-87kb-react-animation-library-120-fps-on-top-of-gsap-2b7p","created_at":"2026-05-12T11:14:16Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T11:14:16Z","last_comment_at":"2026-05-12T11:14:16Z","reading_time_minutes":1,"tag_list":["gsap","npm","webdev","react"],"tags":"gsap, npm, webdev, react","user":{"name":"Yousef Zedan","username":"youssefzidan1","twitter_username":null,"github_username":"YoussefZidan-1","user_id":3926920,"website_url":"https://yzportfolio.vercel.app","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%2F3926920%2Ff8f23b84-d998-43de-8b55-b7477568054d.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%2F3926920%2Ff8f23b84-d998-43de-8b55-b7477568054d.png"}},{"type_of":"article","id":3655828,"title":"Building a Digital Health System from Scratch in a Resource-Constrained Country","description":"I'm a backend engineer based in Venezuela. And I've been thinking about a problem that most...","readable_publish_date":"May 12","slug":"building-a-digital-health-system-from-scratch-in-a-resource-constrained-country-4ljb","path":"/ramon_melendezjuarez/building-a-digital-health-system-from-scratch-in-a-resource-constrained-country-4ljb","url":"https://dev.to/ramon_melendezjuarez/building-a-digital-health-system-from-scratch-in-a-resource-constrained-country-4ljb","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T09:51:39Z","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%2Fkubliv5eqzjk8mh04851.webp","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkubliv5eqzjk8mh04851.webp","canonical_url":"https://codebymelendez.com/insights/digitalizacion-sistema-salud-venezuela","created_at":"2026-05-12T09:51:39Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T09:51:39Z","last_comment_at":"2026-05-12T09:51:39Z","reading_time_minutes":5,"tag_list":["react","n8nbrightdatachallenge","webdev","healthydebate"],"tags":"react, n8nbrightdatachallenge, webdev, healthydebate","user":{"name":"Ramon Melendez Juarez","username":"ramon_melendezjuarez","twitter_username":null,"github_username":null,"user_id":3926787,"website_url":"https://codebymelendez.com/","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%2F3926787%2Fbd9d048c-5ccd-46d7-a560-3fa1d60fb762.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%2F3926787%2Fbd9d048c-5ccd-46d7-a560-3fa1d60fb762.png"},"flare_tag":{"name":"healthydebate","bg_color_hex":"#16b886","text_color_hex":"#ffffff"}},{"type_of":"article","id":3551677,"title":"Why CLS Is Harder to Fix in React Than You Think","description":"CLS is the only Core Web Vital that tends to get worse as a product matures. Every component you...","readable_publish_date":"May 12","slug":"why-cls-is-harder-to-fix-in-react-than-you-think-47i1","path":"/nosyos/why-cls-is-harder-to-fix-in-react-than-you-think-47i1","url":"https://dev.to/nosyos/why-cls-is-harder-to-fix-in-react-than-you-think-47i1","comments_count":1,"public_reactions_count":0,"collection_id":39035,"published_timestamp":"2026-05-12T14:14:00Z","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%2Fkuxqxd4yd6pflongeits.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkuxqxd4yd6pflongeits.png","canonical_url":"https://dev.to/nosyos/why-cls-is-harder-to-fix-in-react-than-you-think-47i1","created_at":"2026-04-26T02:41:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T14:14:00Z","last_comment_at":"2026-05-12T16:25:57Z","reading_time_minutes":5,"tag_list":["react","performance","webdev","javascript"],"tags":"react, performance, webdev, javascript","user":{"name":"nosyos","username":"nosyos","twitter_username":null,"github_username":null,"user_id":3846783,"website_url":"https://rpalert.dev","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%2F3846783%2Fd4b4c90d-028b-4858-b1bd-b5039dab28b5.jpg","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%2F3846783%2Fd4b4c90d-028b-4858-b1bd-b5039dab28b5.jpg"}},{"type_of":"article","id":3655654,"title":"I got tired of translating Zod errors. So I built friendly-zod.","description":"If you've shipped a form with Zod, you've written this code at least once:    const result =...","readable_publish_date":"May 12","slug":"i-got-tired-of-translating-zod-errors-so-i-built-friendly-zod-32ha","path":"/collins87mbathi/i-got-tired-of-translating-zod-errors-so-i-built-friendly-zod-32ha","url":"https://dev.to/collins87mbathi/i-got-tired-of-translating-zod-errors-so-i-built-friendly-zod-32ha","comments_count":1,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-12T09:26:09Z","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%2Fil427vvt624faxc8mvwi.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fil427vvt624faxc8mvwi.png","canonical_url":"https://dev.to/collins87mbathi/i-got-tired-of-translating-zod-errors-so-i-built-friendly-zod-32ha","created_at":"2026-05-12T09:26:10Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T09:26:09Z","last_comment_at":"2026-05-12T16:28:28Z","reading_time_minutes":5,"tag_list":["typescript","javascript","webdev","react"],"tags":"typescript, javascript, webdev, react","user":{"name":"Collins Mbathi","username":"collins87mbathi","twitter_username":"collinsperez6","github_username":"Collins87mbathi","user_id":645126,"website_url":null,"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%2F645126%2Fd375cfdd-85cd-42c4-ad1a-575aa35566ae.jpeg","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%2F645126%2Fd375cfdd-85cd-42c4-ad1a-575aa35566ae.jpeg"}},{"type_of":"article","id":3654919,"title":"I built ZeroAPI – Free AI tools for developers (no signup, no API key)","description":"What is ZeroAPI?   ZeroAPI is a completely free suite of browser-based AI tools for...","readable_publish_date":"May 12","slug":"i-built-zeroapi-free-ai-tools-for-developers-no-signup-no-api-key-2nc5","path":"/abhishek_singh_5602d9d6d0/i-built-zeroapi-free-ai-tools-for-developers-no-signup-no-api-key-2nc5","url":"https://dev.to/abhishek_singh_5602d9d6d0/i-built-zeroapi-free-ai-tools-for-developers-no-signup-no-api-key-2nc5","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T07:26:10Z","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%2Fas9wggb7b1egvewc1zle.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fas9wggb7b1egvewc1zle.png","canonical_url":"https://dev.to/abhishek_singh_5602d9d6d0/i-built-zeroapi-free-ai-tools-for-developers-no-signup-no-api-key-2nc5","created_at":"2026-05-12T07:26:10Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T07:26:10Z","last_comment_at":"2026-05-12T07:26:10Z","reading_time_minutes":1,"tag_list":["ai","programming","opensource","react"],"tags":"ai, programming, opensource, react","user":{"name":"Abhishek Singh","username":"abhishek_singh_5602d9d6d0","twitter_username":null,"github_username":null,"user_id":2832495,"website_url":null,"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%2F2832495%2F97d54bbf-bc92-45ea-9327-d0254d446a9b.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%2F2832495%2F97d54bbf-bc92-45ea-9327-d0254d446a9b.png"}},{"type_of":"article","id":3654566,"title":"Catalyst vs Hydrogen: Engineering Decision Guide (2026)","description":"The debate surrounding headless ecommerce has shifted from 'whether' to 'how'. In 2026, the primary...","readable_publish_date":"May 12","slug":"catalyst-vs-hydrogen-engineering-decision-guide-2026-1fff","path":"/no7software-uk/catalyst-vs-hydrogen-engineering-decision-guide-2026-1fff","url":"https://dev.to/no7software-uk/catalyst-vs-hydrogen-engineering-decision-guide-2026-1fff","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-12T06:41:01Z","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%2F90fml0wakdv3pn8tjv3w.jpeg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90fml0wakdv3pn8tjv3w.jpeg","canonical_url":"https://no7software.co.uk/blog/catalyst-vs-hydrogen-headless-engineering-choice","created_at":"2026-05-12T06:37:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T06:41:01Z","last_comment_at":"2026-05-12T06:41:01Z","reading_time_minutes":6,"tag_list":["architecture","nextjs","react","webdev"],"tags":"architecture, nextjs, react, webdev","user":{"name":"no7software","username":"no7software","twitter_username":null,"github_username":"no7software","user_id":3925573,"website_url":"https://no7software.co.uk","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%2F3925573%2F64bb2171-9910-4202-abcf-4b9609abb8df.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%2F3925573%2F64bb2171-9910-4202-abcf-4b9609abb8df.png"},"organization":{"name":"No7 Software","username":"no7software-uk","slug":"no7software-uk","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%2F13327%2F3a83461c-7f3d-4607-8adf-fa7a41e1973d.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%2F13327%2F3a83461c-7f3d-4607-8adf-fa7a41e1973d.png"}},{"type_of":"article","id":3653345,"title":"A Physics-Aware React Design System for Modern Frontend Architecture","description":"How I built a scalable React component ecosystem with Liquid Glass UI, token-driven theming, ITCSS...","readable_publish_date":"May 12","slug":"a-physics-aware-react-design-system-for-modern-frontend-architecture-kj7","path":"/limonkhan669/a-physics-aware-react-design-system-for-modern-frontend-architecture-kj7","url":"https://dev.to/limonkhan669/a-physics-aware-react-design-system-for-modern-frontend-architecture-kj7","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T04:01:16Z","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%2Fgbsxsdzjpsynolzvb98b.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbsxsdzjpsynolzvb98b.png","canonical_url":"https://github.com/Shohojdhara/atomix","created_at":"2026-05-12T03:37:45Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T04:01:16Z","last_comment_at":"2026-05-12T04:01:16Z","reading_time_minutes":6,"tag_list":["webdev","react","frontend","designsystem"],"tags":"webdev, react, frontend, designsystem","user":{"name":"Limon","username":"limonkhan669","twitter_username":"limonkhan669","github_username":"liimonx","user_id":59925,"website_url":null,"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%2F59925%2Fd256c820-de71-4b7d-abec-acc679f71701.jpg","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%2F59925%2Fd256c820-de71-4b7d-abec-acc679f71701.jpg"}},{"type_of":"article","id":3655433,"title":"Building a Remote Health Monitor: Integrating rPPG with React and Python","description":"The Technical Architecture: Bridging React and Python One of the biggest hurdles in this project...","readable_publish_date":"May 12","slug":"building-a-remote-health-monitor-integrating-rppg-with-react-and-python-4hm6","path":"/deepanshuvermacodes/building-a-remote-health-monitor-integrating-rppg-with-react-and-python-4hm6","url":"https://dev.to/deepanshuvermacodes/building-a-remote-health-monitor-integrating-rppg-with-react-and-python-4hm6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T08:48:33Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fx2kine7wmm8pzeccbq.png","canonical_url":"https://dev.to/deepanshuvermacodes/building-a-remote-health-monitor-integrating-rppg-with-react-and-python-4hm6","created_at":"2026-05-12T08:48:33Z","edited_at":"2026-05-12T11:20:21Z","crossposted_at":null,"published_at":"2026-05-12T08:48:33Z","last_comment_at":"2026-05-12T08:48:33Z","reading_time_minutes":1,"tag_list":["architecture","python","react","webdev"],"tags":"architecture, python, react, webdev","user":{"name":"Deepanshu Verma","username":"deepanshuvermacodes","twitter_username":null,"github_username":"deepanshu-verma-codes","user_id":3926686,"website_url":null,"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%2F3926686%2Fc6ff73cf-fe46-40cd-a4d7-ac8ccdf2e684.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%2F3926686%2Fc6ff73cf-fe46-40cd-a4d7-ac8ccdf2e684.png"}},{"type_of":"article","id":3656168,"title":"Best Authentication Architecture for Enterprise React Apps?","description":"Hey everyone 👋  I’m working on a large-scale enterprise React app and currently redesigning the...","readable_publish_date":"May 12","slug":"best-authentication-architecture-for-enterprise-react-apps-3n","path":"/salem_ebrahim_1311/best-authentication-architecture-for-enterprise-react-apps-3n","url":"https://dev.to/salem_ebrahim_1311/best-authentication-architecture-for-enterprise-react-apps-3n","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T10:37:31Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkr2o6axn6qh9crnblz2j.png","canonical_url":"https://dev.to/salem_ebrahim_1311/best-authentication-architecture-for-enterprise-react-apps-3n","created_at":"2026-05-12T10:37:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T10:37:31Z","last_comment_at":"2026-05-12T10:37:31Z","reading_time_minutes":1,"tag_list":["react","typescript","webdev","security"],"tags":"react, typescript, webdev, security","user":{"name":"Salem Ebrahim","username":"salem_ebrahim_1311","twitter_username":null,"github_username":null,"user_id":3865263,"website_url":null,"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%2F3865263%2F44c101ae-8550-4303-bf33-d4cc03c21478.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%2F3865263%2F44c101ae-8550-4303-bf33-d4cc03c21478.png"}},{"type_of":"article","id":3651744,"title":"Inline style attributes vs CSS variables: a Tailwind v4 light-mode debug story","description":"TL;DR: I shipped a \"light mode for the bingo caller\" feature three times. Each attempt rendered as...","readable_publish_date":"May 11","slug":"inline-style-attributes-vs-css-variables-a-tailwind-v4-light-mode-debug-story-28ic","path":"/forrestmiller/inline-style-attributes-vs-css-variables-a-tailwind-v4-light-mode-debug-story-28ic","url":"https://dev.to/forrestmiller/inline-style-attributes-vs-css-variables-a-tailwind-v4-light-mode-debug-story-28ic","comments_count":1,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T18:06:40Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kwcsspnmrgyj5ac8i75.png","canonical_url":"https://dev.to/forrestmiller/inline-style-attributes-vs-css-variables-a-tailwind-v4-light-mode-debug-story-28ic","created_at":"2026-05-11T18:04:11Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T18:06:40Z","last_comment_at":"2026-05-11T18:15:57Z","reading_time_minutes":4,"tag_list":["css","react","webdev","tailwindcss"],"tags":"css, react, webdev, tailwindcss","user":{"name":"Forrest Miller","username":"forrestmiller","twitter_username":null,"github_username":null,"user_id":3872475,"website_url":null,"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%2F3872475%2F1b38c5a4-9313-4bc3-8bfd-a21db422888e.jpg","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%2F3872475%2F1b38c5a4-9313-4bc3-8bfd-a21db422888e.jpg"}},{"type_of":"article","id":3652214,"title":"Stop copy-pasting your React route protection. Here's a better way.","description":"On every project you need to protect routes. Some are for authenticated users only, some for admins,...","readable_publish_date":"May 11","slug":"stop-copy-pasting-your-react-route-protection-heres-a-better-way-2k8o","path":"/aastakhov/stop-copy-pasting-your-react-route-protection-heres-a-better-way-2k8o","url":"https://dev.to/aastakhov/stop-copy-pasting-your-react-route-protection-heres-a-better-way-2k8o","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T20:27:35Z","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%2Fqas6l9s0uc1meusvm049.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqas6l9s0uc1meusvm049.png","canonical_url":"https://aastakhov.com/blog/stop-copy-pasting-react-route-protection","created_at":"2026-05-11T20:26:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T20:27:35Z","last_comment_at":"2026-05-11T20:27:35Z","reading_time_minutes":2,"tag_list":["react","javascript","frontend","webdev"],"tags":"react, javascript, frontend, webdev","user":{"name":"Askold Astakhov","username":"aastakhov","twitter_username":null,"github_username":"astakhovaskold","user_id":3008855,"website_url":"https://aastakhov.com/","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%2F3008855%2F7ab27518-0cae-488a-a97a-e73ee507562b.jpg","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%2F3008855%2F7ab27518-0cae-488a-a97a-e73ee507562b.jpg"}},{"type_of":"article","id":3651974,"title":"I Built a Production-Grade Next.js Caching Skill Because the Docs Let Me Down","description":"The Next.js docs cover caching basics. They don't tell you what to do when your page has dynamic...","readable_publish_date":"May 11","slug":"i-built-a-production-grade-nextjs-caching-skill-because-the-docs-let-me-down-50k4","path":"/mohamedhossam1/i-built-a-production-grade-nextjs-caching-skill-because-the-docs-let-me-down-50k4","url":"https://dev.to/mohamedhossam1/i-built-a-production-grade-nextjs-caching-skill-because-the-docs-let-me-down-50k4","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-11T19:14:54Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc71oadudevsn5rjafx1y.png","canonical_url":"https://dev.to/mohamedhossam1/i-built-a-production-grade-nextjs-caching-skill-because-the-docs-let-me-down-50k4","created_at":"2026-05-11T19:14:54Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T19:14:54Z","last_comment_at":"2026-05-11T19:14:54Z","reading_time_minutes":2,"tag_list":["nextjs","react","webdev","javascript"],"tags":"nextjs, react, webdev, javascript","user":{"name":"Mohamed Hossam","username":"mohamedhossam1","twitter_username":null,"github_username":"mohamed-hossam1","user_id":3925663,"website_url":null,"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%2F3925663%2F62fc2bdd-2155-414f-8200-4adf86e859bb.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%2F3925663%2F62fc2bdd-2155-414f-8200-4adf86e859bb.png"}},{"type_of":"article","id":3629688,"title":"⚡ TSRX – A New Way to Write UI in TypeScript","description":"You can think of TSRX as a spiritual successor to JSX — the same idea of embedding UI directly inside...","readable_publish_date":"May 12","slug":"tsrx-a-new-way-to-write-ui-in-typescript-12i5","path":"/devsk001/tsrx-a-new-way-to-write-ui-in-typescript-12i5","url":"https://dev.to/devsk001/tsrx-a-new-way-to-write-ui-in-typescript-12i5","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T04:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhi3p8jyplza9zlo5t58o.png","canonical_url":"https://dev.to/devsk001/tsrx-a-new-way-to-write-ui-in-typescript-12i5","created_at":"2026-05-08T00:12:29Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T04:30:00Z","last_comment_at":"2026-05-12T04:30:00Z","reading_time_minutes":1,"tag_list":["webdev","programming","javascript","react"],"tags":"webdev, programming, javascript, react","user":{"name":"Dev Sk","username":"devsk001","twitter_username":null,"github_username":"Dev-SK01","user_id":728410,"website_url":"https://dev-sk01.github.io/portfolio/","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%2F728410%2Fa3e61cea-fc06-480b-adfb-ae1f59167346.jpg","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%2F728410%2Fa3e61cea-fc06-480b-adfb-ae1f59167346.jpg"}},{"type_of":"article","id":3651132,"title":"What Building a Quiz Web App Taught Me About React","description":"From Confusion to Confidence — Building My Quiz Web App with React   As part of my React...","readable_publish_date":"May 11","slug":"what-building-a-quiz-web-app-taught-me-about-react-fi1","path":"/kathirvel-s/what-building-a-quiz-web-app-taught-me-about-react-fi1","url":"https://dev.to/kathirvel-s/what-building-a-quiz-web-app-taught-me-about-react-fi1","comments_count":0,"public_reactions_count":3,"collection_id":39548,"published_timestamp":"2026-05-11T15:30:27Z","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%2F8o5mvo8abc7ewxzmptze.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8o5mvo8abc7ewxzmptze.png","canonical_url":"https://dev.to/kathirvel-s/what-building-a-quiz-web-app-taught-me-about-react-fi1","created_at":"2026-05-11T15:30:27Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T15:30:27Z","last_comment_at":"2026-05-11T15:30:27Z","reading_time_minutes":4,"tag_list":["react","javascript","webdev","beginners"],"tags":"react, javascript, webdev, beginners","user":{"name":"Kathirvel S","username":"kathirvel-s","twitter_username":null,"github_username":null,"user_id":3689425,"website_url":null,"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%2F3689425%2F49462e6b-f95a-4bb0-b5e3-080ad3919937.jpeg","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%2F3689425%2F49462e6b-f95a-4bb0-b5e3-080ad3919937.jpeg"}},{"type_of":"article","id":3651275,"title":"Enterprise Newbie: After 20 Years in IT Support, I Finally Started Building Instead of Just Fixing","description":"After 20 Years in IT Support, I Finally Started Building Instead of Just Fixing   Why frontend...","readable_publish_date":"May 11","slug":"enterprise-newbie-after-20-years-in-it-support-i-finally-started-building-instead-of-just-fixing-311b","path":"/david_sekanic_9063960c8f9/enterprise-newbie-after-20-years-in-it-support-i-finally-started-building-instead-of-just-fixing-311b","url":"https://dev.to/david_sekanic_9063960c8f9/enterprise-newbie-after-20-years-in-it-support-i-finally-started-building-instead-of-just-fixing-311b","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T16:34:03Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6gnxxw81ebrabzfjpia.png","canonical_url":"https://dev.to/david_sekanic_9063960c8f9/enterprise-newbie-after-20-years-in-it-support-i-finally-started-building-instead-of-just-fixing-311b","created_at":"2026-05-11T16:07:16Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T16:34:03Z","last_comment_at":"2026-05-11T16:34:03Z","reading_time_minutes":5,"tag_list":["frontend","react","uiux","webdev"],"tags":"frontend, react, uiux, webdev","user":{"name":"David Sekanic","username":"david_sekanic_9063960c8f9","twitter_username":null,"github_username":null,"user_id":3925342,"website_url":null,"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%2F3925342%2Fbdf0d6a2-0192-4b6e-8ca1-473908dec741.jpg","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%2F3925342%2Fbdf0d6a2-0192-4b6e-8ca1-473908dec741.jpg"}},{"type_of":"article","id":3650841,"title":"Generate TanStack Query Hooks from OpenAPI: Own the Last Mile","description":"When you go API-First, your OpenAPI contract should be the single source of truth across your entire...","readable_publish_date":"May 11","slug":"generate-tanstack-query-hooks-from-openapi-own-the-last-mile-3h1k","path":"/gunzip_/generate-tanstack-query-hooks-from-openapi-own-the-last-mile-3h1k","url":"https://dev.to/gunzip_/generate-tanstack-query-hooks-from-openapi-own-the-last-mile-3h1k","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T15:03:49Z","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%2Ff1w3sj7ducggn2qm91it.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1w3sj7ducggn2qm91it.png","canonical_url":"https://dev.to/gunzip_/generate-tanstack-query-hooks-from-openapi-own-the-last-mile-3h1k","created_at":"2026-05-11T14:22:35Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T15:03:49Z","last_comment_at":"2026-05-11T15:03:49Z","reading_time_minutes":3,"tag_list":["tanstack","react","openapi","zod"],"tags":"tanstack, react, openapi, zod","user":{"name":"D.S.","username":"gunzip_","twitter_username":null,"github_username":null,"user_id":3490643,"website_url":null,"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%2F3490643%2Fe0f11b1e-0cd0-4fe2-8ed0-cba0dd3b3958.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%2F3490643%2Fe0f11b1e-0cd0-4fe2-8ed0-cba0dd3b3958.png"}},{"type_of":"article","id":3655038,"title":"Debounce vs Throttle: When to Use Each (and Why It Matters)","description":"Most React developers have faced the problem: a search input that fires an API call on every single...","readable_publish_date":"May 12","slug":"debounce-vs-throttle-when-to-use-each-and-why-it-matters-55l0","path":"/reactchallenges/debounce-vs-throttle-when-to-use-each-and-why-it-matters-55l0","url":"https://dev.to/reactchallenges/debounce-vs-throttle-when-to-use-each-and-why-it-matters-55l0","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-12T07:49:22Z","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%2Fnrjpd0nlh2fy2ytvlvqf.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnrjpd0nlh2fy2ytvlvqf.png","canonical_url":"https://dev.to/reactchallenges/debounce-vs-throttle-when-to-use-each-and-why-it-matters-55l0","created_at":"2026-05-12T07:49:22Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T07:49:22Z","last_comment_at":"2026-05-12T07:49:22Z","reading_time_minutes":4,"tag_list":["javascript","react","frontend","webdev"],"tags":"javascript, react, frontend, webdev","user":{"name":"ReactChallenges","username":"reactchallenges","twitter_username":null,"github_username":null,"user_id":854942,"website_url":"https://www.reactchallenges.com/","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%2F854942%2Fe450946a-3098-4715-8d06-0892ab9ac221.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%2F854942%2Fe450946a-3098-4715-8d06-0892ab9ac221.png"}},{"type_of":"article","id":3653777,"title":"The Smart O(n) Trick for Subarray Sum Questions","description":"Subarray problems are everywhere in coding interviews.  And most beginners solve them...","readable_publish_date":"May 12","slug":"the-smart-on-trick-for-subarray-sum-questions-5i4","path":"/quipoin_a9cb84280f6225b1e/the-smart-on-trick-for-subarray-sum-questions-5i4","url":"https://dev.to/quipoin_a9cb84280f6225b1e/the-smart-on-trick-for-subarray-sum-questions-5i4","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T04:53:08Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl27trxcqrutxzbpjy7s5.png","canonical_url":"https://dev.to/quipoin_a9cb84280f6225b1e/the-smart-on-trick-for-subarray-sum-questions-5i4","created_at":"2026-05-12T04:53:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T04:53:08Z","last_comment_at":"2026-05-12T04:53:08Z","reading_time_minutes":1,"tag_list":["react","tailwindcss","java","javascript"],"tags":"react, tailwindcss, java, javascript","user":{"name":"Quipoin","username":"quipoin_a9cb84280f6225b1e","twitter_username":null,"github_username":null,"user_id":3592134,"website_url":"https://www.quipoin.com/","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%2F3592134%2F7af2047e-ad93-4d4f-bb28-726999e59e47.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%2F3592134%2F7af2047e-ad93-4d4f-bb28-726999e59e47.png"}},{"type_of":"article","id":3650202,"title":"Static Sites With YAML Data in Next.js 15 App Router","description":"I recently shipped a directory site and went back to a pattern I keep reaching for: YAML files as the...","readable_publish_date":"May 11","slug":"static-sites-with-yaml-data-in-nextjs-15-app-router-1p8a","path":"/83304a733942623daf/static-sites-with-yaml-data-in-nextjs-15-app-router-1p8a","url":"https://dev.to/83304a733942623daf/static-sites-with-yaml-data-in-nextjs-15-app-router-1p8a","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T12:44:23Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro06q5zkjol8cuu5uge5.png","canonical_url":"https://dev.to/83304a733942623daf/static-sites-with-yaml-data-in-nextjs-15-app-router-1p8a","created_at":"2026-05-11T12:44:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T12:44:23Z","last_comment_at":"2026-05-11T12:44:23Z","reading_time_minutes":4,"tag_list":["nextjs","react","tutorial","webdev"],"tags":"nextjs, react, tutorial, webdev","user":{"name":"ALi","username":"83304a733942623daf","twitter_username":null,"github_username":null,"user_id":2562541,"website_url":"https://www.solitaireassociation.com","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%2F2562541%2F65346233-5435-448b-8dc5-b96a75634265.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%2F2562541%2F65346233-5435-448b-8dc5-b96a75634265.png"}},{"type_of":"article","id":3655605,"title":"React SEO Guide: Making Google Actually See Your React App","description":"I once deployed a perfectly working React app, shared the link, waited for traffic, and Google...","readable_publish_date":"May 12","slug":"react-seo-guide-making-google-actually-see-your-react-app-4ajc","path":"/mitudas/react-seo-guide-making-google-actually-see-your-react-app-4ajc","url":"https://dev.to/mitudas/react-seo-guide-making-google-actually-see-your-react-app-4ajc","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T09:17:21Z","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%2Fb6kzcp6dgc4w1u6amqaj.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb6kzcp6dgc4w1u6amqaj.jpg","canonical_url":"https://ccbd.dev/blog/react-seo-guide-boost-your-apps-search-visibility","created_at":"2026-05-12T09:17:21Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T09:17:21Z","last_comment_at":"2026-05-12T09:17:21Z","reading_time_minutes":4,"tag_list":["seo","react","javascript","tooling"],"tags":"seo, react, javascript, tooling","user":{"name":"Mitu Das","username":"mitudas","twitter_username":null,"github_username":null,"user_id":3865540,"website_url":null,"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%2F3865540%2Fb55e8702-ba25-4f25-b0b6-402d502f5244.jpg","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%2F3865540%2Fb55e8702-ba25-4f25-b0b6-402d502f5244.jpg"}},{"type_of":"article","id":3648420,"title":"React Hiring 2026: 5 Patterns From Reviewing 600+ Code Samples","description":"After running technical reviews on ~600 React code samples in the last 18 months at Gaper.io, I've...","readable_publish_date":"May 11","slug":"react-hiring-2026-5-patterns-from-reviewing-600-code-samples-lpc","path":"/mustafa_najoom_d317f641dd/react-hiring-2026-5-patterns-from-reviewing-600-code-samples-lpc","url":"https://dev.to/mustafa_najoom_d317f641dd/react-hiring-2026-5-patterns-from-reviewing-600-code-samples-lpc","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T09:42:07Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfmqzl9qoc55g5vbbod7.png","canonical_url":"https://dev.to/mustafa_najoom_d317f641dd/react-hiring-2026-5-patterns-from-reviewing-600-code-samples-lpc","created_at":"2026-05-11T09:42:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T09:42:07Z","last_comment_at":"2026-05-11T09:42:07Z","reading_time_minutes":3,"tag_list":["react","hiring","webdev"],"tags":"react, hiring, webdev","user":{"name":"Mustafa Najoom","username":"mustafa_najoom_d317f641dd","twitter_username":null,"github_username":null,"user_id":3924602,"website_url":null,"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%2F3924602%2F1824f136-5aa3-4f18-a7d0-84d3d794d1e3.jpg","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%2F3924602%2F1824f136-5aa3-4f18-a7d0-84d3d794d1e3.jpg"}},{"type_of":"article","id":3648355,"title":"useContext in React — Why It Exists and How to Use It Simply","description":"Hey!  Before we start — let me show you something.  You have a React app. You want to show the...","readable_publish_date":"May 11","slug":"usecontext-in-react-why-it-exists-and-how-to-use-it-simply-4d2p","path":"/dhanraj_s_8fe1023a6e88992/usecontext-in-react-why-it-exists-and-how-to-use-it-simply-4d2p","url":"https://dev.to/dhanraj_s_8fe1023a6e88992/usecontext-in-react-why-it-exists-and-how-to-use-it-simply-4d2p","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-11T09:27:26Z","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%2F2mqppm2p4lt01j5o4j24.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2mqppm2p4lt01j5o4j24.png","canonical_url":"https://dev.to/dhanraj_s_8fe1023a6e88992/usecontext-in-react-why-it-exists-and-how-to-use-it-simply-4d2p","created_at":"2026-05-11T09:27:26Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T09:27:26Z","last_comment_at":"2026-05-11T09:27:26Z","reading_time_minutes":5,"tag_list":["react","javascript","beginners","webdev"],"tags":"react, javascript, beginners, webdev","user":{"name":"DHANRAJ S","username":"dhanraj_s_8fe1023a6e88992","twitter_username":null,"github_username":null,"user_id":3728604,"website_url":null,"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%2F3728604%2Fda8159ef-5147-45a8-8789-69274d4b9d9b.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%2F3728604%2Fda8159ef-5147-45a8-8789-69274d4b9d9b.png"}},{"type_of":"article","id":3649688,"title":"Fractals and Non-Euclidean Geometry in the Browser","description":"I have been watching Corridor Digital's videos for a while now. Their breakdowns of how impossible...","readable_publish_date":"May 11","slug":"fractals-and-non-euclidean-geometry-in-the-browser-7me","path":"/ajay_dharmaraj/fractals-and-non-euclidean-geometry-in-the-browser-7me","url":"https://dev.to/ajay_dharmaraj/fractals-and-non-euclidean-geometry-in-the-browser-7me","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T11:52:40Z","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%2Fnh4r0ii0d87qfgq5d6to.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh4r0ii0d87qfgq5d6to.png","canonical_url":"https://dev.to/ajay_dharmaraj/fractals-and-non-euclidean-geometry-in-the-browser-7me","created_at":"2026-05-11T11:52:40Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T11:52:40Z","last_comment_at":"2026-05-11T11:52:40Z","reading_time_minutes":3,"tag_list":["webgl","fractals","react","gpu"],"tags":"webgl, fractals, react, gpu","user":{"name":"Ajay D","username":"ajay_dharmaraj","twitter_username":null,"github_username":"AjayD-007","user_id":1514246,"website_url":"https://ajay-dharmaraj.vercel.app/","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%2F1514246%2F4f9762bf-286b-48bb-b4a6-122e21962e48.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%2F1514246%2F4f9762bf-286b-48bb-b4a6-122e21962e48.png"}},{"type_of":"article","id":3650091,"title":"React Hooks in 2026: Not Just What They Do — When to Reach for Each One","description":"Every hook is a solution to a specific problem. The senior developer's skill isn't knowing the API —...","readable_publish_date":"May 11","slug":"react-hooks-complete-guide-2026-from-usestate-to-useoptimistic-34aa","path":"/bishoy_bishai/react-hooks-complete-guide-2026-from-usestate-to-useoptimistic-34aa","url":"https://dev.to/bishoy_bishai/react-hooks-complete-guide-2026-from-usestate-to-useoptimistic-34aa","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-11T12:32:06Z","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%2Fve6qjkts47mzzlsgy3hf.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve6qjkts47mzzlsgy3hf.png","canonical_url":"https://bishoy-bishai.github.io/portfolio/blog/react-hooks-complete-guide-2026--from-usestate-to-","created_at":"2026-05-11T12:32:06Z","edited_at":"2026-05-11T13:16:39Z","crossposted_at":null,"published_at":"2026-05-11T12:32:06Z","last_comment_at":"2026-05-11T12:32:06Z","reading_time_minutes":16,"tag_list":["react","webdev"],"tags":"react, webdev","user":{"name":"Bishoy Bishai","username":"bishoy_bishai","twitter_username":null,"github_username":null,"user_id":2375770,"website_url":"https://bishoy-bishai.github.io/portfolio/","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%2F2375770%2F5fc1fefd-ffe2-4310-a2a9-15729c166c6b.jpeg","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%2F2375770%2F5fc1fefd-ffe2-4310-a2a9-15729c166c6b.jpeg"}},{"type_of":"article","id":3651368,"title":"Plugins Are Powerful. But They Shouldn’t Become Your Architecture.","description":"Plugin systems are one of the reasons modern frontend tooling became so flexible.  Vite proved this...","readable_publish_date":"May 11","slug":"plugins-are-powerful-but-they-shouldnt-become-your-architecture-3gb4","path":"/khaledmsalem/plugins-are-powerful-but-they-shouldnt-become-your-architecture-3gb4","url":"https://dev.to/khaledmsalem/plugins-are-powerful-but-they-shouldnt-become-your-architecture-3gb4","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T16:27:53Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv096bd6f9yb8qhx6uo96.png","canonical_url":"https://dev.to/khaledmsalem/plugins-are-powerful-but-they-shouldnt-become-your-architecture-3gb4","created_at":"2026-05-11T16:27:53Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T16:27:53Z","last_comment_at":"2026-05-11T16:27:53Z","reading_time_minutes":4,"tag_list":["frontend","react","javascript","architecture"],"tags":"frontend, react, javascript, architecture","user":{"name":"KhaledSalem","username":"khaledmsalem","twitter_username":null,"github_username":"khaledM-salem","user_id":3565357,"website_url":null,"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%2F3565357%2F72721ed3-cc00-44d0-89e6-86b75ca3f59c.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%2F3565357%2F72721ed3-cc00-44d0-89e6-86b75ca3f59c.png"}}]