[{"type_of":"article","id":3642417,"title":"I built a 20 kB React hook that doesn't care which AI you use — here's how streaming actually works","description":"`---       Most React AI chat libraries are secretly backend libraries.  They stream directly from...","readable_publish_date":"May 9","slug":"i-built-a-20-kb-react-hook-that-doesnt-care-which-ai-you-use-heres-how-streaming-actually-works-432g","path":"/trimooo/i-built-a-20-kb-react-hook-that-doesnt-care-which-ai-you-use-heres-how-streaming-actually-works-432g","url":"https://dev.to/trimooo/i-built-a-20-kb-react-hook-that-doesnt-care-which-ai-you-use-heres-how-streaming-actually-works-432g","comments_count":4,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-05-09T23:43:09Z","language":"en","subforem_id":1,"positive_reactions_count":4,"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%2Frmib7dl763y9uhml922b.png","canonical_url":"https://dev.to/trimooo/i-built-a-20-kb-react-hook-that-doesnt-care-which-ai-you-use-heres-how-streaming-actually-works-432g","created_at":"2026-05-09T23:43:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-09T23:43:09Z","last_comment_at":"2026-05-10T19:42:31Z","reading_time_minutes":5,"tag_list":["react","webdev","typescript","ai"],"tags":"react, webdev, typescript, ai","user":{"name":"devleo","username":"trimooo","twitter_username":null,"github_username":"trimooo","user_id":3922573,"website_url":"https://www.devleo.de","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%2F3922573%2Fc00e6f64-aa6d-4b8f-b8a7-1df15404cd51.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%2F3922573%2Fc00e6f64-aa6d-4b8f-b8a7-1df15404cd51.jpeg"}},{"type_of":"article","id":3644205,"title":"Building Echovault During a 130,000 Person Hackathon","description":"A few months ago I entered the world’s largest hackathon with over 130,000 competitors.  My original...","readable_publish_date":"May 10","slug":"building-echovault-during-a-130000-person-hackathon-40dc","path":"/bigbadbillion/building-echovault-during-a-130000-person-hackathon-40dc","url":"https://dev.to/bigbadbillion/building-echovault-during-a-130000-person-hackathon-40dc","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-10T10:37: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%2F6ud874j8d07vdciqiiln.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%2F6ud874j8d07vdciqiiln.png","canonical_url":"https://dev.to/bigbadbillion/building-echovault-during-a-130000-person-hackathon-40dc","created_at":"2026-05-10T10:37:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T10:37:09Z","last_comment_at":"2026-05-10T10:37:09Z","reading_time_minutes":2,"tag_list":["ai","digitallegacy","echovault","react"],"tags":"ai, digitallegacy, echovault, react","user":{"name":"Ugo Nwune","username":"bigbadbillion","twitter_username":null,"github_username":null,"user_id":3228251,"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%2F3228251%2F15214a25-6b99-4ab4-b4a6-8f247fb9d900.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%2F3228251%2F15214a25-6b99-4ab4-b4a6-8f247fb9d900.png"}},{"type_of":"article","id":3642819,"title":"Two weeks of building Bible School LMS in public: first contributor, bilingual content, real production bug","description":"Two weeks ago I posted \"Open Source Bible School LMS, we need your help\" and asked for...","readable_publish_date":"May 10","slug":"two-weeks-of-building-bible-school-lms-in-public-first-contributor-bilingual-content-real-11am","path":"/arvavit/two-weeks-of-building-bible-school-lms-in-public-first-contributor-bilingual-content-real-11am","url":"https://dev.to/arvavit/two-weeks-of-building-bible-school-lms-in-public-first-contributor-bilingual-content-real-11am","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-05-10T02:13:11Z","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%2Fvh0tp8covmcno1aha7n0.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%2Fvh0tp8covmcno1aha7n0.png","canonical_url":"https://dev.to/arvavit/two-weeks-of-building-bible-school-lms-in-public-first-contributor-bilingual-content-real-11am","created_at":"2026-05-10T02:13:11Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T02:13:11Z","last_comment_at":"2026-05-10T02:13:11Z","reading_time_minutes":5,"tag_list":["opensource","react","fastapi","supabase"],"tags":"opensource, react, fastapi, supabase","user":{"name":"Vadym Arnaut","username":"arvavit","twitter_username":null,"github_username":"ArVaViT","user_id":3896990,"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%2F3896990%2Ff229c67f-46a1-4ecf-b3f5-71e2dd14f1bc.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%2F3896990%2Ff229c67f-46a1-4ecf-b3f5-71e2dd14f1bc.jpg"}},{"type_of":"article","id":3644565,"title":"I built a silent, privacy-first file organizer that lives in your system tray and sorts your Downloads folder automatically","description":"I don't know about you, but my Downloads folder has always been a disaster zone. PDFs next to memes,...","readable_publish_date":"May 10","slug":"i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne","path":"/hsr88/i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne","url":"https://dev.to/hsr88/i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T12:22: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%2Fge05qazt4ays437w8umt.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%2Fge05qazt4ays437w8umt.png","canonical_url":"https://dev.to/hsr88/i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne","created_at":"2026-05-10T12:22:50Z","edited_at":"2026-05-10T12:24:06Z","crossposted_at":null,"published_at":"2026-05-10T12:22:49Z","last_comment_at":"2026-05-10T12:22:49Z","reading_time_minutes":3,"tag_list":["opensource","react","productivity","buildinpublic"],"tags":"opensource, react, productivity, buildinpublic","user":{"name":"Krystian","username":"hsr88","twitter_username":"hsrvibe","github_username":"hsr88","user_id":3646867,"website_url":"https://hsr.gg","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%2F3646867%2F2eeda811-b844-4cce-b164-ac08903c9d05.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%2F3646867%2F2eeda811-b844-4cce-b164-ac08903c9d05.png"}},{"type_of":"article","id":3647938,"title":"60 FPS with 600 Snakes: How I Got the Browser Client to Survive a Room Full of Snakes","description":"The server took me one week. The client took another. Phaser 3 + React 19 + Vite. I know there are...","readable_publish_date":"May 11","slug":"60-fps-with-600-snakes-how-i-got-the-browser-client-to-survive-a-room-full-of-snakes-4hb1","path":"/linmingren/60-fps-with-600-snakes-how-i-got-the-browser-client-to-survive-a-room-full-of-snakes-4hb1","url":"https://dev.to/linmingren/60-fps-with-600-snakes-how-i-got-the-browser-client-to-survive-a-room-full-of-snakes-4hb1","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-05-11T08:11:46Z","language":"en","subforem_id":1,"positive_reactions_count":4,"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%2F6ro73bw0qjxh520ucvdl.png","canonical_url":"https://dev.to/linmingren/60-fps-with-600-snakes-how-i-got-the-browser-client-to-survive-a-room-full-of-snakes-4hb1","created_at":"2026-05-11T08:11:46Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T08:11:46Z","last_comment_at":"2026-05-11T08:11:46Z","reading_time_minutes":9,"tag_list":["gamedev","javascript","performance","react"],"tags":"gamedev, javascript, performance, react","user":{"name":"monkeymore studio","username":"linmingren","twitter_username":null,"github_username":"linmingren","user_id":3842352,"website_url":"https://www.monkeymore.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%2F3842352%2F6557350d-89cc-4a08-82f7-fc8af3c06584.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%2F3842352%2F6557350d-89cc-4a08-82f7-fc8af3c06584.jpeg"}},{"type_of":"article","id":3521431,"title":"React.lazy() Route Code Splitting Explained","description":"React.lazy() makes a 5MB app's first load equal to just the landing route cost. Here is how route code splitting works and where it silently fails.","readable_publish_date":"May 11","slug":"reactlazy-route-code-splitting-explained-128d","path":"/helloashish99/reactlazy-route-code-splitting-explained-128d","url":"https://dev.to/helloashish99/reactlazy-route-code-splitting-explained-128d","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-05-11T00:30:00Z","language":"en","subforem_id":1,"positive_reactions_count":2,"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%2F36gum83bvwlqt56kbnd7.png","canonical_url":"https://renderlog.in/blog/react-lazy-route-code-splitting-guide/","created_at":"2026-04-19T05:05:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T00:30:00Z","last_comment_at":"2026-05-11T00:30:00Z","reading_time_minutes":7,"tag_list":["performance","react","bundling","javascript"],"tags":"performance, react, bundling, javascript","user":{"name":"Ashish Kumar","username":"helloashish99","twitter_username":null,"github_username":null,"user_id":3861766,"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%2F3861766%2F0b3f531d-15d0-4bfa-975a-ce54df37aac8.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%2F3861766%2F0b3f531d-15d0-4bfa-975a-ce54df37aac8.png"}},{"type_of":"article","id":3521430,"title":"Skeleton Screens vs Spinners: Perceived Load Time","description":"Perceived and measured performance diverge more than most developers expect. LinkedIn's skeleton screen research explains why, and when skeletons hurt.","readable_publish_date":"May 10","slug":"skeleton-screens-vs-spinners-perceived-load-time-1nlj","path":"/helloashish99/skeleton-screens-vs-spinners-perceived-load-time-1nlj","url":"https://dev.to/helloashish99/skeleton-screens-vs-spinners-perceived-load-time-1nlj","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-10T00:30:00Z","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%2F2moi5ajnhusum0rr64cu.png","canonical_url":"https://renderlog.in/blog/skeleton-screens-vs-spinners-perceived-performance/","created_at":"2026-04-19T05:05:04Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T00:30:00Z","last_comment_at":"2026-05-10T00:30:00Z","reading_time_minutes":6,"tag_list":["performance","frontend","ux","react"],"tags":"performance, frontend, ux, react","user":{"name":"Ashish Kumar","username":"helloashish99","twitter_username":null,"github_username":null,"user_id":3861766,"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%2F3861766%2F0b3f531d-15d0-4bfa-975a-ce54df37aac8.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%2F3861766%2F0b3f531d-15d0-4bfa-975a-ce54df37aac8.png"}},{"type_of":"article","id":3645476,"title":"TIL canvas.captureStream() is video-only — here's how I mixed voiceover + music into a MediaRecorder export\" published: true","description":"TL;DR — canvas.captureStream() only carries video tracks. To get audio into your MediaRecorder export...","readable_publish_date":"May 10","slug":"til-canvascapturestream-is-video-only-heres-how-i-mixed-voiceover-music-into-a-1c2d","path":"/robert_corn_2c1ef7ffc084b/til-canvascapturestream-is-video-only-heres-how-i-mixed-voiceover-music-into-a-1c2d","url":"https://dev.to/robert_corn_2c1ef7ffc084b/til-canvascapturestream-is-video-only-heres-how-i-mixed-voiceover-music-into-a-1c2d","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T17:31:07Z","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%2Ft7g5rqipvqy03aug9bgz.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%2Ft7g5rqipvqy03aug9bgz.png","canonical_url":"https://dev.to/robert_corn_2c1ef7ffc084b/til-canvascapturestream-is-video-only-heres-how-i-mixed-voiceover-music-into-a-1c2d","created_at":"2026-05-10T17:31:07Z","edited_at":"2026-05-10T17:33:38Z","crossposted_at":null,"published_at":"2026-05-10T17:31:07Z","last_comment_at":"2026-05-10T17:31:07Z","reading_time_minutes":5,"tag_list":["javascript","webdev","react","webaudio"],"tags":"javascript, webdev, react, webaudio","user":{"name":"Robert Corn","username":"robert_corn_2c1ef7ffc084b","twitter_username":"AetherCurrent26","github_username":"rocosfsintec-del","user_id":3923605,"website_url":"https://aethercut.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%2F3923605%2F91d95acb-18fe-489b-8fee-e1dee32d2ec9.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%2F3923605%2F91d95acb-18fe-489b-8fee-e1dee32d2ec9.png"}},{"type_of":"article","id":3646529,"title":"Scroll Restoration After Micro-Frontend Redirects: Double RAF + MutationObserver","description":"When building a micro-frontend app, I ran into a deceptively simple requirement: after a user...","readable_publish_date":"May 11","slug":"scroll-restoration-after-micro-frontend-redirects-double-raf-mutationobserver-3h77","path":"/yuki-uix/scroll-restoration-after-micro-frontend-redirects-double-raf-mutationobserver-3h77","url":"https://dev.to/yuki-uix/scroll-restoration-after-micro-frontend-redirects-double-raf-mutationobserver-3h77","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-05-11T02:41: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%2Fbw9jcjiahh9sck3ut6lj.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%2Fbw9jcjiahh9sck3ut6lj.jpeg","canonical_url":"https://dev.to/yuki-uix/scroll-restoration-after-micro-frontend-redirects-double-raf-mutationobserver-3h77","created_at":"2026-05-11T02:41:44Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T02:41:44Z","last_comment_at":"2026-05-11T02:41:44Z","reading_time_minutes":7,"tag_list":["javascript","react","webdev","frontend"],"tags":"javascript, react, webdev, frontend","user":{"name":"yuki uix","username":"yuki-uix","twitter_username":null,"github_username":"yuki-uix","user_id":2904651,"website_url":"https://yukiuix.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%2F2904651%2Faa86f88f-fbcf-4979-9288-391ac627213c.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%2F2904651%2Faa86f88f-fbcf-4979-9288-391ac627213c.jpg"}},{"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":3652314,"title":"React Doctor: Is This the Missing Health Check for Your React Codebase?","description":"If you have ever inherited a messy React codebase, or simply wondered whether your own project has...","readable_publish_date":"May 11","slug":"react-doctor-is-this-the-missing-health-check-for-your-react-codebase-5015","path":"/arshtechpro/react-doctor-is-this-the-missing-health-check-for-your-react-codebase-5015","url":"https://dev.to/arshtechpro/react-doctor-is-this-the-missing-health-check-for-your-react-codebase-5015","comments_count":1,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-05-11T21:09:29Z","language":"en","subforem_id":1,"positive_reactions_count":5,"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%2Fzlyc944oonbti84pbw87.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%2Fzlyc944oonbti84pbw87.png","canonical_url":"https://dev.to/arshtechpro/react-doctor-is-this-the-missing-health-check-for-your-react-codebase-5015","created_at":"2026-05-11T21:09:29Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T21:09:29Z","last_comment_at":"2026-05-11T21:12:02Z","reading_time_minutes":5,"tag_list":["ai","react","reactnative","programming"],"tags":"ai, react, reactnative, programming","user":{"name":"ArshTechPro","username":"arshtechpro","twitter_username":null,"github_username":null,"user_id":3258664,"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%2F3258664%2F7a2cc61a-0b4d-4cf8-884e-52f33905cac3.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%2F3258664%2F7a2cc61a-0b4d-4cf8-884e-52f33905cac3.png"}},{"type_of":"article","id":3644980,"title":"Building an Enterprise Dashboard : 3 Architecture Lessons That Clicked","description":"I’ve been learning React recently,and I build something that pushed me to learn a lot - an...","readable_publish_date":"May 10","slug":"building-an-enterprise-dashboard-3-architecture-lessons-that-clicked-4m05","path":"/vivekvohra/building-an-enterprise-dashboard-3-architecture-lessons-that-clicked-4m05","url":"https://dev.to/vivekvohra/building-an-enterprise-dashboard-3-architecture-lessons-that-clicked-4m05","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-05-10T17:11:22Z","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%2F25gpxq9l4nw5wuotdk51.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%2F25gpxq9l4nw5wuotdk51.png","canonical_url":"https://dev.to/vivekvohra/building-an-enterprise-dashboard-3-architecture-lessons-that-clicked-4m05","created_at":"2026-05-10T14:36:40Z","edited_at":"2026-05-10T17:20:45Z","crossposted_at":null,"published_at":"2026-05-10T17:11:22Z","last_comment_at":"2026-05-10T17:11:22Z","reading_time_minutes":3,"tag_list":["webdev","react","redux","typescript"],"tags":"webdev, react, redux, typescript","user":{"name":"Vivek Vohra","username":"vivekvohra","twitter_username":"VivekVohra1102","github_username":"vivekvohra","user_id":1422753,"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%2F1422753%2F000149b3-ce47-4349-8a4f-1537fe8d5ada.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%2F1422753%2F000149b3-ce47-4349-8a4f-1537fe8d5ada.jpg"}},{"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":3612114,"title":"Preventing unnecessary re-renders using React.memo, useMemo and useCallback hooks","description":"Preventing unnecessary re-renders in React is crucial for maintaining performance, especially in...","readable_publish_date":"May 10","slug":"preventing-unnecessary-re-renders-using-reactmemo-and-related-hooks-48f6","path":"/dhwang/preventing-unnecessary-re-renders-using-reactmemo-and-related-hooks-48f6","url":"https://dev.to/dhwang/preventing-unnecessary-re-renders-using-reactmemo-and-related-hooks-48f6","comments_count":4,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2026-05-10T01:11:10Z","language":"en","subforem_id":1,"positive_reactions_count":7,"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%2Foyxy61onxztgncp8v8l8.png","canonical_url":"https://dev.to/dhwang/preventing-unnecessary-re-renders-using-reactmemo-and-related-hooks-48f6","created_at":"2026-05-05T03:09:06Z","edited_at":"2026-05-10T01:14:18Z","crossposted_at":null,"published_at":"2026-05-10T01:11:10Z","last_comment_at":"2026-05-11T15:42:07Z","reading_time_minutes":3,"tag_list":["javascript","performance","react","webdev"],"tags":"javascript, performance, react, webdev","user":{"name":"Darren Hwang","username":"dhwang","twitter_username":null,"github_username":"dhwang","user_id":610402,"website_url":"https://linkedin.com/in/darren-hwang-sj","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%2F610402%2Fc5b43a35-32ca-46b1-8990-8ddf3e87c90b.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%2F610402%2Fc5b43a35-32ca-46b1-8990-8ddf3e87c90b.jpeg"}},{"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":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":3644949,"title":"I Built an Online Multiplayer Ludo Game","description":"So, this year I made a few resolutions — and sure, no one keeps to resolutions, but I decided to at...","readable_publish_date":"May 10","slug":"i-built-an-online-multiplayer-ludo-game-5dok","path":"/kenny-204/i-built-an-online-multiplayer-ludo-game-5dok","url":"https://dev.to/kenny-204/i-built-an-online-multiplayer-ludo-game-5dok","comments_count":2,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-10T14:27:19Z","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%2F4hfbogz2zf5x42aofjln.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%2F4hfbogz2zf5x42aofjln.png","canonical_url":"https://dev.to/kenny-204/i-built-an-online-multiplayer-ludo-game-5dok","created_at":"2026-05-10T14:27:19Z","edited_at":"2026-05-10T14:33:43Z","crossposted_at":null,"published_at":"2026-05-10T14:27:19Z","last_comment_at":"2026-05-11T08:49:49Z","reading_time_minutes":6,"tag_list":["react","mongodb","redis","typescript"],"tags":"react, mongodb, redis, typescript","user":{"name":"Kehinde Giwa","username":"kenny-204","twitter_username":null,"github_username":null,"user_id":3923121,"website_url":"https://kennyg.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%2F3923121%2F6eec22bd-a2b0-4979-88f7-bb8db30e48d5.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%2F3923121%2F6eec22bd-a2b0-4979-88f7-bb8db30e48d5.jpg"}},{"type_of":"article","id":3642329,"title":"# How to Build a Multi-Step Form Wizard in Next.js with TypeScript","description":"Liquid syntax error: Unknown tag 'endraw'","readable_publish_date":"May 9","slug":"-how-to-build-a-multi-step-form-wizard-in-nextjs-with-typescript-24jg","path":"/nnanyelugo/-how-to-build-a-multi-step-form-wizard-in-nextjs-with-typescript-24jg","url":"https://dev.to/nnanyelugo/-how-to-build-a-multi-step-form-wizard-in-nextjs-with-typescript-24jg","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-09T23:04:32Z","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%2Fwc9jk6xnxk66c8zfe54g.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%2Fwc9jk6xnxk66c8zfe54g.jpg","canonical_url":"https://dev.to/nnanyelugo/-how-to-build-a-multi-step-form-wizard-in-nextjs-with-typescript-24jg","created_at":"2026-05-09T23:04:32Z","edited_at":"2026-05-09T23:09:31Z","crossposted_at":null,"published_at":"2026-05-09T23:04:32Z","last_comment_at":"2026-05-09T23:04:32Z","reading_time_minutes":8,"tag_list":["nextjs","typescript","react","beginners"],"tags":"nextjs, typescript, react, beginners","user":{"name":"Meputaife Nnanyelugo","username":"nnanyelugo","twitter_username":null,"github_username":null,"user_id":3922539,"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%2F3922539%2F0df21d28-cbd6-4336-b23d-e4881e125c7c.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%2F3922539%2F0df21d28-cbd6-4336-b23d-e4881e125c7c.png"}},{"type_of":"article","id":3646986,"title":"Stop the White Screen of Death: Master Next.js Error Boundaries 🛡️","description":"The Fragility of the React Tree  One of the most dangerous behaviors of a React application is how it...","readable_publish_date":"May 11","slug":"stop-the-white-screen-of-death-master-nextjs-error-boundaries-729","path":"/iprajapatiparesh/stop-the-white-screen-of-death-master-nextjs-error-boundaries-729","url":"https://dev.to/iprajapatiparesh/stop-the-white-screen-of-death-master-nextjs-error-boundaries-729","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-11T05:13:05Z","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%2Fgr044h3qhfkqlmf1fa2k.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%2Fgr044h3qhfkqlmf1fa2k.png","canonical_url":"https://smarttechdevs.in/blog/nextjs-error-boundaries-app-router-resiliency","created_at":"2026-05-11T05:13:05Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T05:13:05Z","last_comment_at":"2026-05-11T05:13:05Z","reading_time_minutes":2,"tag_list":["nextjs","react","frontend","ux"],"tags":"nextjs, react, frontend, ux","user":{"name":"Prajapati Paresh","username":"iprajapatiparesh","twitter_username":null,"github_username":null,"user_id":3818348,"website_url":"https://smarttechdevs.in/","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%2F3818348%2F98e76f01-e2fd-4f05-bc05-ea804d4fc2a5.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%2F3818348%2F98e76f01-e2fd-4f05-bc05-ea804d4fc2a5.jpg"}},{"type_of":"article","id":3645840,"title":"I Built a Desktop App That Fixes Linux Dual-Boot Folder Access in One Click","description":"For years, every time I booted into Linux, I'd SSH into my own machine just to grab a file from my...","readable_publish_date":"May 10","slug":"i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-41i6","path":"/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-41i6","url":"https://dev.to/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-41i6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T20:17: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%2F4lofvzssza5nry0rkus8.png","canonical_url":"https://dev.to/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-41i6","created_at":"2026-05-10T20:17:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T20:17:03Z","last_comment_at":"2026-05-10T20:17:03Z","reading_time_minutes":2,"tag_list":["linux","rust","opensource","react"],"tags":"linux, rust, opensource, react","user":{"name":"Noel Paul","username":"zius","twitter_username":null,"github_username":null,"user_id":3908523,"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%2F3908523%2Fff0c0f9b-ba05-4ff5-a564-f6a5a1f650b1.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%2F3908523%2Fff0c0f9b-ba05-4ff5-a564-f6a5a1f650b1.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":3642749,"title":"🚀 React + Vite + Tailwind CSS + Shadcn UI Setup (vanillaJS)","description":"A complete step-by-step guide to quickly set up **React + Vite + Tailwind CSS + Shadcn UI* with clean...","readable_publish_date":"May 10","slug":"react-vite-tailwind-css-shadcn-ui-setup-js-version-3c7i","path":"/nabinkdl/react-vite-tailwind-css-shadcn-ui-setup-js-version-3c7i","url":"https://dev.to/nabinkdl/react-vite-tailwind-css-shadcn-ui-setup-js-version-3c7i","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T01:39:57Z","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%2Fmfxp9plr2z1mrjsclz09.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%2Fmfxp9plr2z1mrjsclz09.png","canonical_url":"https://dev.to/nabinkdl/react-vite-tailwind-css-shadcn-ui-setup-js-version-3c7i","created_at":"2026-05-10T01:39:57Z","edited_at":"2026-05-10T01:40:45Z","crossposted_at":null,"published_at":"2026-05-10T01:39:57Z","last_comment_at":"2026-05-10T01:39:57Z","reading_time_minutes":4,"tag_list":["javascript","react","tailwindcss","tutorial"],"tags":"javascript, react, tailwindcss, tutorial","user":{"name":"Nabin Kandel","username":"nabinkdl","twitter_username":null,"github_username":"nabinkdl","user_id":1150676,"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%2F1150676%2F49ded2f9-596a-4945-882b-5fd0811127db.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%2F1150676%2F49ded2f9-596a-4945-882b-5fd0811127db.png"}},{"type_of":"article","id":3645102,"title":"Don't trust the LLM with scripture: a canonical-text substitution layer for Bible quotes","description":"The problem   I'm building biblie-school, an open-source LMS for Bible schools. The product...","readable_publish_date":"May 10","slug":"dont-trust-the-llm-with-scripture-a-canonical-text-substitution-layer-for-bible-quotes-17cg","path":"/arvavit/dont-trust-the-llm-with-scripture-a-canonical-text-substitution-layer-for-bible-quotes-17cg","url":"https://dev.to/arvavit/dont-trust-the-llm-with-scripture-a-canonical-text-substitution-layer-for-bible-quotes-17cg","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T15:12:31Z","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%2Ftwbnw4vj52usziyes56m.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%2Ftwbnw4vj52usziyes56m.png","canonical_url":"https://dev.to/arvavit/dont-trust-the-llm-with-scripture-a-canonical-text-substitution-layer-for-bible-quotes-17cg","created_at":"2026-05-10T15:12:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T15:12:31Z","last_comment_at":"2026-05-10T15:12:31Z","reading_time_minutes":6,"tag_list":["opensource","react","fastapi","supabase"],"tags":"opensource, react, fastapi, supabase","user":{"name":"Vadym Arnaut","username":"arvavit","twitter_username":null,"github_username":"ArVaViT","user_id":3896990,"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%2F3896990%2Ff229c67f-46a1-4ecf-b3f5-71e2dd14f1bc.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%2F3896990%2Ff229c67f-46a1-4ecf-b3f5-71e2dd14f1bc.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":3643367,"title":"A small Vite plugin for moving heavy JSX attributes into comments","description":"Hi everybody, I'm a software engineer for as long as I can remember.  When working with web...","readable_publish_date":"May 10","slug":"a-small-vite-plugin-for-moving-heavy-jsx-attributes-into-comments-21dn","path":"/vo9312/a-small-vite-plugin-for-moving-heavy-jsx-attributes-into-comments-21dn","url":"https://dev.to/vo9312/a-small-vite-plugin-for-moving-heavy-jsx-attributes-into-comments-21dn","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T06:21:28Z","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%2Fvvupbqxuxqsdkcuv48pi.png","canonical_url":"https://dev.to/vo9312/a-small-vite-plugin-for-moving-heavy-jsx-attributes-into-comments-21dn","created_at":"2026-05-10T06:18:14Z","edited_at":"2026-05-10T06:23:26Z","crossposted_at":null,"published_at":"2026-05-10T06:21:28Z","last_comment_at":"2026-05-10T06:21:28Z","reading_time_minutes":1,"tag_list":["vite","jsx","react","javascript"],"tags":"vite, jsx, react, javascript","user":{"name":"Thanh Dat Vo","username":"vo9312","twitter_username":null,"github_username":"thanhdatvo","user_id":447015,"website_url":"https://datvo.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%2F447015%2Ff1e003bd-ba1d-4980-9f61-feeb6f340070.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%2F447015%2Ff1e003bd-ba1d-4980-9f61-feeb6f340070.jpeg"}},{"type_of":"article","id":3643751,"title":"I Built a Free Online Tools Website with Next.js - Here’s What I Learned","description":"I Built a Free Online Tools Website with Next.js — Here’s What I Learned   A few weeks ago,...","readable_publish_date":"May 10","slug":"i-built-a-free-online-tools-website-with-nextjs-heres-what-i-learned-4me2","path":"/danial_babar/i-built-a-free-online-tools-website-with-nextjs-heres-what-i-learned-4me2","url":"https://dev.to/danial_babar/i-built-a-free-online-tools-website-with-nextjs-heres-what-i-learned-4me2","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T08:23:17Z","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%2Far7xgxis8gu9bm33ddwc.png","canonical_url":"https://dev.to/danial_babar/i-built-a-free-online-tools-website-with-nextjs-heres-what-i-learned-4me2","created_at":"2026-05-10T08:23:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T08:23:17Z","last_comment_at":"2026-05-10T08:23:17Z","reading_time_minutes":2,"tag_list":["webdev","nextjs","javascript","react"],"tags":"webdev, nextjs, javascript, react","user":{"name":"Danial Babar","username":"danial_babar","twitter_username":null,"github_username":null,"user_id":3923014,"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%2F3923014%2F23e0740e-5842-4f2d-959c-1121c9d911f2.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%2F3923014%2F23e0740e-5842-4f2d-959c-1121c9d911f2.jpg"}},{"type_of":"article","id":3644606,"title":"Months of work on a 3-app Marvel ecosystem — React 19, Three.js globe, PWA, i18n, monorepo","description":"Hi everyone, hope y'all having a great day !  Side project I've been building for months during my...","readable_publish_date":"May 10","slug":"months-of-work-on-a-3-app-marvel-ecosystem-react-19-threejs-globe-pwa-i18n-monorepo-2pp","path":"/adsy/months-of-work-on-a-3-app-marvel-ecosystem-react-19-threejs-globe-pwa-i18n-monorepo-2pp","url":"https://dev.to/adsy/months-of-work-on-a-3-app-marvel-ecosystem-react-19-threejs-globe-pwa-i18n-monorepo-2pp","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T12:34:31Z","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%2F6cljm7i1qqg3j2oddk1r.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%2F6cljm7i1qqg3j2oddk1r.png","canonical_url":"https://dev.to/adsy/months-of-work-on-a-3-app-marvel-ecosystem-react-19-threejs-globe-pwa-i18n-monorepo-2pp","created_at":"2026-05-10T12:34:31Z","edited_at":"2026-05-10T12:37:56Z","crossposted_at":null,"published_at":"2026-05-10T12:34:31Z","last_comment_at":"2026-05-10T12:34:31Z","reading_time_minutes":1,"tag_list":["react","showdev","sideprojects","webdev"],"tags":"react, showdev, sideprojects, webdev","user":{"name":"Adrien SIMON","username":"adsy","twitter_username":null,"github_username":null,"user_id":3923272,"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%2F3923272%2Fdfec488a-15f1-434f-897c-dd4a74de43a5.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%2F3923272%2Fdfec488a-15f1-434f-897c-dd4a74de43a5.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3645841,"title":"I Built a Desktop App That Fixes Linux Dual-Boot Folder Access in One Click","description":"For years, every time I booted into Linux, I'd SSH into my own machine just to grab a file from my...","readable_publish_date":"May 10","slug":"i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-pi7","path":"/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-pi7","url":"https://dev.to/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-pi7","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T20:17: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%2F7f0j11a5aa6bxwu2zajv.png","canonical_url":"https://dev.to/zius/i-built-a-desktop-app-that-fixes-linux-dual-boot-folder-access-in-one-click-pi7","created_at":"2026-05-10T20:17:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T20:17:03Z","last_comment_at":"2026-05-10T20:17:03Z","reading_time_minutes":2,"tag_list":["linux","rust","opensource","react"],"tags":"linux, rust, opensource, react","user":{"name":"Noel Paul","username":"zius","twitter_username":null,"github_username":null,"user_id":3908523,"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%2F3908523%2Fff0c0f9b-ba05-4ff5-a564-f6a5a1f650b1.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%2F3908523%2Fff0c0f9b-ba05-4ff5-a564-f6a5a1f650b1.jpg"}},{"type_of":"article","id":3644014,"title":"🚚 GEMMAROUTE AI – AI Powered Last-Meter Delivery Navigation using Gemma 4","description":"This is a submission for the Gemma 4 Challenge: Build with Gemma 4           🚚 GEMMAROUTE AI – AI...","readable_publish_date":"May 10","slug":"gemmaroute-ai-ai-powered-last-meter-delivery-navigation-using-gemma-4-4mk1","path":"/sujitha_s_c0b9e671638c28a/gemmaroute-ai-ai-powered-last-meter-delivery-navigation-using-gemma-4-4mk1","url":"https://dev.to/sujitha_s_c0b9e671638c28a/gemmaroute-ai-ai-powered-last-meter-delivery-navigation-using-gemma-4-4mk1","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-10T09:57:54Z","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%2Fimages.unsplash.com%2Fphoto-1519003722824-194d4455a60c","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1519003722824-194d4455a60c","canonical_url":"https://dev.to/sujitha_s_c0b9e671638c28a/gemmaroute-ai-ai-powered-last-meter-delivery-navigation-using-gemma-4-4mk1","created_at":"2026-05-10T09:57:54Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-10T09:57:54Z","last_comment_at":"2026-05-10T09:57:54Z","reading_time_minutes":2,"tag_list":["ai","gemma","react","python"],"tags":"ai, gemma, react, python","user":{"name":"Sujitha S","username":"sujitha_s_c0b9e671638c28a","twitter_username":null,"github_username":null,"user_id":3922948,"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%2F3922948%2F9655f6fa-9c47-4248-91e5-0d58858e19e0.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%2F3922948%2F9655f6fa-9c47-4248-91e5-0d58858e19e0.png"}},{"type_of":"article","id":3647400,"title":"React 18: A Complete Guide to Every New Feature","description":"React 19 is already here.  But surprisingly, many React developers are still not familiar with the...","readable_publish_date":"May 11","slug":"react-18-a-complete-guide-to-every-new-feature-54e5","path":"/myogeshchavan97/react-18-a-complete-guide-to-every-new-feature-54e5","url":"https://dev.to/myogeshchavan97/react-18-a-complete-guide-to-every-new-feature-54e5","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-05-11T06:40:40Z","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%2Fon61r6ez06kri8qx2ybf.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%2Fon61r6ez06kri8qx2ybf.png","canonical_url":"https://dev.to/myogeshchavan97/react-18-a-complete-guide-to-every-new-feature-54e5","created_at":"2026-05-11T06:36:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T06:40:40Z","last_comment_at":"2026-05-11T06:40:40Z","reading_time_minutes":13,"tag_list":["react","javascript","nextjs"],"tags":"react, javascript, nextjs","user":{"name":"Yogesh Chavan","username":"myogeshchavan97","twitter_username":null,"github_username":"myogeshchavan97","user_id":361592,"website_url":"https://www.yogeshchavan.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%2F361592%2F385c82bb-b96c-4cd6-83a3-ffea25be1d8d.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%2F361592%2F385c82bb-b96c-4cd6-83a3-ffea25be1d8d.jpeg"}}]