[{"type_of":"article","id":3511464,"title":"From zero to 22K daily Google impressions: lessons building Hablaaa.com with Next.js 16 + Supabase","description":"ix months ago I started building Hablaaa, a collaborative Spanish slang dictionary covering 22...","readable_publish_date":"Apr 16","slug":"from-zero-to-22k-daily-google-impressions-lessons-building-hablaaacom-with-nextjs-16-supabase-pb1","path":"/alanlucena/from-zero-to-22k-daily-google-impressions-lessons-building-hablaaacom-with-nextjs-16-supabase-pb1","url":"https://dev.to/alanlucena/from-zero-to-22k-daily-google-impressions-lessons-building-hablaaacom-with-nextjs-16-supabase-pb1","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T16:30:10Z","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%2Fjb2p822ue28icnkn1bw7.png","canonical_url":"https://dev.to/alanlucena/from-zero-to-22k-daily-google-impressions-lessons-building-hablaaacom-with-nextjs-16-supabase-pb1","created_at":"2026-04-16T16:30:10Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T16:30:10Z","last_comment_at":"2026-04-16T16:30:10Z","reading_time_minutes":3,"tag_list":["nextjs","supabase","seo","webdev"],"tags":"nextjs, supabase, seo, webdev","user":{"name":"Alan","username":"alanlucena","twitter_username":null,"github_username":"Alan-Lucena","user_id":3882823,"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%2F3882823%2Fbe4f8046-1f35-46ee-a69c-94ba71acfdff.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%2F3882823%2Fbe4f8046-1f35-46ee-a69c-94ba71acfdff.png"}},{"type_of":"article","id":3511624,"title":"Shipping 30 locales at once taught me what Google actually tracks in hreflang","description":"The conventional wisdom on multi-locale rollouts is \"ship incrementally.\" I ignored it. I had a...","readable_publish_date":"Apr 16","slug":"shipping-30-locales-at-once-taught-me-what-google-actually-tracks-in-hreflang-4n9b","path":"/smart-calculators/shipping-30-locales-at-once-taught-me-what-google-actually-tracks-in-hreflang-4n9b","url":"https://dev.to/smart-calculators/shipping-30-locales-at-once-taught-me-what-google-actually-tracks-in-hreflang-4n9b","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T17:14:14Z","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%2Fmf33gfdp1aj7u54g1ay5.png","canonical_url":"https://dev.to/smart-calculators/shipping-30-locales-at-once-taught-me-what-google-actually-tracks-in-hreflang-4n9b","created_at":"2026-04-16T17:14:14Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T17:14:14Z","last_comment_at":"2026-04-16T17:14:14Z","reading_time_minutes":3,"tag_list":["nextjs","seo","i18n","webdev"],"tags":"nextjs, seo, i18n, webdev","user":{"name":"Smart Calculators","username":"smart-calculators","twitter_username":null,"github_username":null,"user_id":3882900,"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%2F3882900%2F8a95bf68-72f4-4cec-a4a8-e8d4c3a37faa.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%2F3882900%2F8a95bf68-72f4-4cec-a4a8-e8d4c3a37faa.PNG"}},{"type_of":"article","id":3496536,"title":"Too many AI interviews became architecture work, so I built this","description":"\"Cool. I just did discovery, systems design, and tool selection for free.\"   We'd spent most of the...","readable_publish_date":"Apr 16","slug":"too-many-ai-interviews-became-architecture-work-so-i-built-this-1fm7","path":"/yolaine/too-many-ai-interviews-became-architecture-work-so-i-built-this-1fm7","url":"https://dev.to/yolaine/too-many-ai-interviews-became-architecture-work-so-i-built-this-1fm7","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T13:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve3fsbfsiad2347axb6f.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%2Fve3fsbfsiad2347axb6f.png","canonical_url":"https://dev.to/yolaine/too-many-ai-interviews-became-architecture-work-so-i-built-this-1fm7","created_at":"2026-04-13T22:04:04Z","edited_at":"2026-04-14T14:11:15Z","crossposted_at":null,"published_at":"2026-04-16T13:00:00Z","last_comment_at":"2026-04-16T13:00:00Z","reading_time_minutes":6,"tag_list":["nextjs","typescript","startup","webdev"],"tags":"nextjs, typescript, startup, webdev","user":{"name":"Yolaine","username":"yolaine","twitter_username":null,"github_username":"TracyNgot","user_id":171426,"website_url":"https://yolaine.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%2F171426%2F61dfa9b6-3ea3-45cd-98fc-03ac293881ac.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%2F171426%2F61dfa9b6-3ea3-45cd-98fc-03ac293881ac.png"}},{"type_of":"article","id":3511200,"title":"Supply Chain Security in Next.js JavaScript Files with Subresource Integrity","description":"Understanding Subresource Integrity and Its Security Role   Subresource Integrity (SRI) is a...","readable_publish_date":"Apr 16","slug":"supply-chain-security-in-nextjs-javascript-files-with-subresource-integrity-4ifk","path":"/mericcintosun/supply-chain-security-in-nextjs-javascript-files-with-subresource-integrity-4ifk","url":"https://dev.to/mericcintosun/supply-chain-security-in-nextjs-javascript-files-with-subresource-integrity-4ifk","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T15:21:20Z","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%2Fpx43y8se1cagznil8wxf.png","canonical_url":"https://mericcintosun.com/blog/subresource-integrity-nextjs-supply-chain-security","created_at":"2026-04-16T15:21:20Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T15:21:20Z","last_comment_at":"2026-04-16T15:21:20Z","reading_time_minutes":9,"tag_list":["javascript","nextjs","security","webdev"],"tags":"javascript, nextjs, security, webdev","user":{"name":"Meriç Cintosun","username":"mericcintosun","twitter_username":null,"github_username":"mericcintosun","user_id":3854042,"website_url":"https://mericcintosun.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%2F3854042%2F4711d921-320e-44bc-a2a8-8aec225d1770.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%2F3854042%2F4711d921-320e-44bc-a2a8-8aec225d1770.jpeg"}},{"type_of":"article","id":3506628,"title":"Static and dynamic rendering of client components","description":"In the previous chapter, we looked into static and dynamic rendering. Rendering happens at route...","readable_publish_date":"Apr 16","slug":"static-and-dynamic-rendering-of-client-components-31aa","path":"/peterlidee/static-and-dynamic-rendering-of-client-components-31aa","url":"https://dev.to/peterlidee/static-and-dynamic-rendering-of-client-components-31aa","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:22: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%2Fqd84cds9u4tjo6rl7h2k.png","canonical_url":"https://dev.to/peterlidee/static-and-dynamic-rendering-of-client-components-31aa","created_at":"2026-04-15T18:50:35Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:22:03Z","last_comment_at":"2026-04-16T09:22:03Z","reading_time_minutes":9,"tag_list":["nextjs","caching"],"tags":"nextjs, caching","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3509252,"title":"50 Hours Building a Next.js Boilerplate So You Can Ship in 30 Minutes!","description":"The production-ready Next.js SaaS boilerplate with i18n, RBAC, OAuth, and modern architecture.","readable_publish_date":"Apr 16","slug":"50-hours-building-a-nextjs-boilerplate-so-you-can-ship-in-30-minutes-3cbk","path":"/salmanshahriar/50-hours-building-a-nextjs-boilerplate-so-you-can-ship-in-30-minutes-3cbk","url":"https://dev.to/salmanshahriar/50-hours-building-a-nextjs-boilerplate-so-you-can-ship-in-30-minutes-3cbk","comments_count":1,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-16T08:47:22Z","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%2Fz0erbpt4iuqs3m6tzbn7.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%2Fz0erbpt4iuqs3m6tzbn7.jpg","canonical_url":"https://dev.to/salmanshahriar/50-hours-building-a-nextjs-boilerplate-so-you-can-ship-in-30-minutes-3cbk","created_at":"2026-04-16T08:47:22Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T08:47:22Z","last_comment_at":"2026-04-16T08:48:21Z","reading_time_minutes":7,"tag_list":["nextjs","boilerplate","saas","opensource"],"tags":"nextjs, boilerplate, saas, opensource","user":{"name":"Salman Shahriar","username":"salmanshahriar","twitter_username":null,"github_username":"salmanshahriar","user_id":1951722,"website_url":"https://salmanshahriar.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%2F1951722%2F6c136fda-088e-4813-ba06-de1af03134ea.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%2F1951722%2F6c136fda-088e-4813-ba06-de1af03134ea.jpeg"}},{"type_of":"article","id":3509864,"title":"How I shipped 108 programmatic pages in 5 days and still ranked 74th","description":"I'm Marcelo, a solo founder shipping AI micro-SaaS tropicalized for Brazil. Last month I generated...","readable_publish_date":"Apr 16","slug":"how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik","path":"/marceloassis123/how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik","url":"https://dev.to/marceloassis123/how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T10:36:26Z","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%2F25ll3tcndo2xysosvgnj.png","canonical_url":"https://dev.to/marceloassis123/how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik","created_at":"2026-04-16T10:35:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T10:36:26Z","last_comment_at":"2026-04-16T10:36:26Z","reading_time_minutes":5,"tag_list":["seo","webdev","nextjs","indiehackers"],"tags":"seo, webdev, nextjs, indiehackers","user":{"name":"Marcelo Assis","username":"marceloassis123","twitter_username":null,"github_username":null,"user_id":3879528,"website_url":"https://marceloassis.com.br","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%2F3879528%2Fcc53c1ed-cc23-42b1-9770-87a523bf685d.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%2F3879528%2Fcc53c1ed-cc23-42b1-9770-87a523bf685d.jpg"}},{"type_of":"article","id":3510450,"title":"An AI-Ready NestJS + Next.js Boilerplate for 2026","description":"I built a NestJS + Next.js monorepo I'd happily start any new SaaS on today. It's on GitHub. The...","readable_publish_date":"Apr 16","slug":"an-ai-ready-nestjs-nextjs-boilerplate-for-2026-h4d","path":"/xiunotes/an-ai-ready-nestjs-nextjs-boilerplate-for-2026-h4d","url":"https://dev.to/xiunotes/an-ai-ready-nestjs-nextjs-boilerplate-for-2026-h4d","comments_count":0,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-16T12:24:26Z","language":"en","subforem_id":1,"positive_reactions_count":3,"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%2Fj3awpffspi5fwznfhq9r.png","canonical_url":"https://dev.to/xiunotes/an-ai-ready-nestjs-nextjs-boilerplate-for-2026-h4d","created_at":"2026-04-16T12:24:26Z","edited_at":"2026-04-16T12:25:57Z","crossposted_at":null,"published_at":"2026-04-16T12:24:26Z","last_comment_at":"2026-04-16T12:24:26Z","reading_time_minutes":5,"tag_list":["turborepo","nestjs","nextjs"],"tags":"turborepo, nestjs, nextjs","user":{"name":"xiu","username":"xiunotes","twitter_username":null,"github_username":"oNo500","user_id":1072562,"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%2F1072562%2F26b41132-5fb1-4e32-a589-268e39a87832.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%2F1072562%2F26b41132-5fb1-4e32-a589-268e39a87832.png"}},{"type_of":"article","id":3509501,"title":"Using Suspense in NextJs","description":"Before we move to the new model of caching (cache components), I want to take a look at how...","readable_publish_date":"Apr 16","slug":"using-suspense-in-nextjs-56i0","path":"/peterlidee/using-suspense-in-nextjs-56i0","url":"https://dev.to/peterlidee/using-suspense-in-nextjs-56i0","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:34:39Z","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%2Fw0lwhy20yaey3cjp4i8s.png","canonical_url":"https://dev.to/peterlidee/using-suspense-in-nextjs-56i0","created_at":"2026-04-16T09:33:30Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:34:39Z","last_comment_at":"2026-04-16T09:34:39Z","reading_time_minutes":6,"tag_list":["nextjs","suspense"],"tags":"nextjs, suspense","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506750,"title":"Router cache and request memoization","description":"We've covered full route cache, data cache and revalidation. Next, we look into router cache and...","readable_publish_date":"Apr 16","slug":"router-cache-and-request-memoization-3gi1","path":"/peterlidee/router-cache-and-request-memoization-3gi1","url":"https://dev.to/peterlidee/router-cache-and-request-memoization-3gi1","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:27:58Z","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%2Fr46boyd5rs9u8nfdc6uz.png","canonical_url":"https://dev.to/peterlidee/router-cache-and-request-memoization-3gi1","created_at":"2026-04-15T19:21:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:27:58Z","last_comment_at":"2026-04-16T09:27:58Z","reading_time_minutes":7,"tag_list":["nextjs","routercache","requestmemoization","caching"],"tags":"nextjs, routercache, requestmemoization, caching","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506743,"title":"Incremental Static Regeneration (ISR)","description":"We talked about incremental static regeneration before, it's when a statically rendered route is...","readable_publish_date":"Apr 16","slug":"incremental-static-regeneration-isr-3gma","path":"/peterlidee/incremental-static-regeneration-isr-3gma","url":"https://dev.to/peterlidee/incremental-static-regeneration-isr-3gma","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:27:29Z","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%2Fhj4ort9k68aqwuxh76hf.png","canonical_url":"https://dev.to/peterlidee/incremental-static-regeneration-isr-3gma","created_at":"2026-04-15T19:19:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:27:29Z","last_comment_at":"2026-04-16T09:27:29Z","reading_time_minutes":7,"tag_list":["nextjs","isr"],"tags":"nextjs, isr","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506588,"title":"Caching in NextJs","description":"I've never fully grasped caching in NextJS. When I recently came across a youtube vid about cache...","readable_publish_date":"Apr 16","slug":"caching-in-nextjs-5fl2","path":"/peterlidee/caching-in-nextjs-5fl2","url":"https://dev.to/peterlidee/caching-in-nextjs-5fl2","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:21:19Z","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%2F8jdx8henfjxavxgctzkf.png","canonical_url":"https://dev.to/peterlidee/caching-in-nextjs-5fl2","created_at":"2026-04-15T18:37:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:21:19Z","last_comment_at":"2026-04-16T09:21:19Z","reading_time_minutes":2,"tag_list":["nextjs","caching"],"tags":"nextjs, caching","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506647,"title":"Data cache in NextJs","description":"Until now, we've only worked with \"hard coded\" components, no external APIs. Why? Because of Next...","readable_publish_date":"Apr 16","slug":"data-cache-in-nextjs-9p4","path":"/peterlidee/data-cache-in-nextjs-9p4","url":"https://dev.to/peterlidee/data-cache-in-nextjs-9p4","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:22:55Z","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%2Fvz19b5mjipjk1uo085uk.png","canonical_url":"https://dev.to/peterlidee/data-cache-in-nextjs-9p4","created_at":"2026-04-15T18:55:54Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:22:55Z","last_comment_at":"2026-04-16T09:22:55Z","reading_time_minutes":8,"tag_list":["nextjs","caching","datacache"],"tags":"nextjs, caching, datacache","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506659,"title":"Time based revalidation in Next","description":"In time based revalidation, an expiry date is added to cache entries. However, when a cache entry...","readable_publish_date":"Apr 16","slug":"time-based-revalidation-in-next-3ndo","path":"/peterlidee/time-based-revalidation-in-next-3ndo","url":"https://dev.to/peterlidee/time-based-revalidation-in-next-3ndo","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:24:18Z","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%2Ft9q12qxi4apjg53dmoio.png","canonical_url":"https://dev.to/peterlidee/time-based-revalidation-in-next-3ndo","created_at":"2026-04-15T18:59:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:24:18Z","last_comment_at":"2026-04-16T09:24:18Z","reading_time_minutes":11,"tag_list":["nextjs","caching","timebasedrevalidation"],"tags":"nextjs, caching, timebasedrevalidation","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506615,"title":"Static and dynamic rendering and Full Route Cache","description":"Static rendering means that routes are prerendered at build time. The result is cached and can be...","readable_publish_date":"Apr 16","slug":"static-and-dynamic-rendering-and-full-route-cache-5hd3","path":"/peterlidee/static-and-dynamic-rendering-and-full-route-cache-5hd3","url":"https://dev.to/peterlidee/static-and-dynamic-rendering-and-full-route-cache-5hd3","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:21:38Z","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%2Fxh4e650d7cs2bmum7qro.png","canonical_url":"https://dev.to/peterlidee/static-and-dynamic-rendering-and-full-route-cache-5hd3","created_at":"2026-04-15T18:45:30Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:21:38Z","last_comment_at":"2026-04-16T09:21:38Z","reading_time_minutes":9,"tag_list":["nextjs","caching","fullroutecache"],"tags":"nextjs, caching, fullroutecache","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506735,"title":"revalidateTag \u0026 updateTag In NextJs","description":"We've been covering on-demand revalidation. Three functions allow you to revalidate on...","readable_publish_date":"Apr 16","slug":"revalidatetag-updatetag-in-nextjs-4j8b","path":"/peterlidee/revalidatetag-updatetag-in-nextjs-4j8b","url":"https://dev.to/peterlidee/revalidatetag-updatetag-in-nextjs-4j8b","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:26:22Z","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%2Fy9qjry00c728t2mozf28.png","canonical_url":"https://dev.to/peterlidee/revalidatetag-updatetag-in-nextjs-4j8b","created_at":"2026-04-15T19:17:54Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:26:22Z","last_comment_at":"2026-04-16T09:26:22Z","reading_time_minutes":7,"tag_list":["nextjs","revalidatetag","updatetag"],"tags":"nextjs, revalidatetag, updatetag","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506655,"title":"Revalidating cache in NextJs: intro","description":"We've covered 2 caches: data cache and full route cache. In most cases, these need to be updated...","readable_publish_date":"Apr 16","slug":"revalidating-cache-in-nextjs-intro-5dk4","path":"/peterlidee/revalidating-cache-in-nextjs-intro-5dk4","url":"https://dev.to/peterlidee/revalidating-cache-in-nextjs-intro-5dk4","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:23: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%2F6fv4ve90iv6tltkbm0cw.png","canonical_url":"https://dev.to/peterlidee/revalidating-cache-in-nextjs-intro-5dk4","created_at":"2026-04-15T18:58:01Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:23:53Z","last_comment_at":"2026-04-16T09:23:53Z","reading_time_minutes":2,"tag_list":["nextjs","revalidation"],"tags":"nextjs, revalidation","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3506714,"title":"On demand revalidation in Nextjs","description":"Revalidation is about updating stale cache. Three functions can trigger revalidation on...","readable_publish_date":"Apr 16","slug":"on-demand-revalidation-in-nextjs-18j8","path":"/peterlidee/on-demand-revalidation-in-nextjs-18j8","url":"https://dev.to/peterlidee/on-demand-revalidation-in-nextjs-18j8","comments_count":0,"public_reactions_count":0,"collection_id":38637,"published_timestamp":"2026-04-16T09:25:21Z","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%2F3k1vo20cbarvrs8v5oul.png","canonical_url":"https://dev.to/peterlidee/on-demand-revalidation-in-nextjs-18j8","created_at":"2026-04-15T19:12:19Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T09:25:21Z","last_comment_at":"2026-04-16T09:25:21Z","reading_time_minutes":8,"tag_list":["nextjs","performance","react","webdev"],"tags":"nextjs, performance, react, webdev","user":{"name":"Peter Jacxsens","username":"peterlidee","twitter_username":"lideebe","github_username":"peterlidee","user_id":869497,"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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.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%2F869497%2F478a370b-90f5-4fb1-a89b-dc2fd60c010b.png"}},{"type_of":"article","id":3508140,"title":"FastAPI + Next.js 15: The Full-Stack Nobody's Building","description":"Why pairing FastAPI with Next.js 15 gives you async Python, React 19, and a clean API boundary without the complexity.","readable_publish_date":"Apr 16","slug":"fastapi-nextjs-15-the-full-stack-nobodys-building-1hl9","path":"/alexmayhew-dev/fastapi-nextjs-15-the-full-stack-nobodys-building-1hl9","url":"https://dev.to/alexmayhew-dev/fastapi-nextjs-15-the-full-stack-nobodys-building-1hl9","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T04:47:05Z","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%2F6j0vv7hciibyvji3px9z.png","canonical_url":"https://dev.to/alexmayhew-dev/fastapi-nextjs-15-the-full-stack-nobodys-building-1hl9","created_at":"2026-04-16T04:47:05Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T04:47:05Z","last_comment_at":"2026-04-16T04:47:05Z","reading_time_minutes":4,"tag_list":["python","fastapi","nextjs","webdev"],"tags":"python, fastapi, nextjs, webdev","user":{"name":"Alex Mayhew","username":"alexmayhew-dev","twitter_username":"alexmayhewdev","github_username":"LecoMV","user_id":3736354,"website_url":"https://alexmayhew.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%2F3736354%2Fd5442dde-f7da-41f8-9348-9a447c8e4054.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%2F3736354%2Fd5442dde-f7da-41f8-9348-9a447c8e4054.png"}},{"type_of":"article","id":3509789,"title":"Build a Full-Stack App with Next.js and Supabase in 20 Minutes","description":"Build a complete full-stack app with Next.js and Supabase in 20 minutes. Step-by-step tutorial covering auth, database, CRUD, and deployment. Perfect for beginners.","readable_publish_date":"Apr 16","slug":"build-a-full-stack-app-with-nextjs-and-supabase-in-20-minutes-25pg","path":"/mahdi_benrhouma_fe1c6005/build-a-full-stack-app-with-nextjs-and-supabase-in-20-minutes-25pg","url":"https://dev.to/mahdi_benrhouma_fe1c6005/build-a-full-stack-app-with-nextjs-and-supabase-in-20-minutes-25pg","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T10:21:23Z","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-1555066931-4365d14bab8c%3Fauto%3Dformat%26fit%3Dcrop%26w%3D1200%26q%3D80","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-1555066931-4365d14bab8c%3Fauto%3Dformat%26fit%3Dcrop%26w%3D1200%26q%3D80","canonical_url":"https://iloveblogs.blog/post/build-fullstack-app-nextjs-supabase-step-by-step","created_at":"2026-04-16T10:21:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T10:21:23Z","last_comment_at":"2026-04-16T10:21:23Z","reading_time_minutes":7,"tag_list":["nextjs","supabase","fullstack","tutorial"],"tags":"nextjs, supabase, fullstack, tutorial","user":{"name":"Mahdi BEN RHOUMA","username":"mahdi_benrhouma_fe1c6005","twitter_username":null,"github_username":null,"user_id":3623634,"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%2F3623634%2F405ea568-6e7f-4cab-923a-240f9a44bf72.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%2F3623634%2F405ea568-6e7f-4cab-923a-240f9a44bf72.png"}},{"type_of":"article","id":3460948,"title":"Most LCP Fixes Come Down to One Image","description":"A Next.js app with next/image on every image component. Lighthouse image audit: no issues. LCP: 4.2...","readable_publish_date":"Apr 16","slug":"most-lcp-fixes-come-down-to-one-image-2i09","path":"/nosyos/most-lcp-fixes-come-down-to-one-image-2i09","url":"https://dev.to/nosyos/most-lcp-fixes-come-down-to-one-image-2i09","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T14:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78u6zcejyjw7yhq1p5hy.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%2F78u6zcejyjw7yhq1p5hy.png","canonical_url":"https://dev.to/nosyos/most-lcp-fixes-come-down-to-one-image-2i09","created_at":"2026-04-06T13:11:34Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T14:00:00Z","last_comment_at":"2026-04-16T14:00:00Z","reading_time_minutes":3,"tag_list":["react","performance","webdev","nextjs"],"tags":"react, performance, webdev, nextjs","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":3511106,"title":"Cursor + Claude: a repeatable refactor workflow","description":"I refactor with Cursor + Claude using a strict, diff-first loop. I add a “tripwire” test first, so...","readable_publish_date":"Apr 16","slug":"cursor-claude-a-repeatable-refactor-workflow-38c6","path":"/sathish_daggula/cursor-claude-a-repeatable-refactor-workflow-38c6","url":"https://dev.to/sathish_daggula/cursor-claude-a-repeatable-refactor-workflow-38c6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T15:01: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%2F1sl2e3qcq4fpjwsp9ws7.png","canonical_url":"https://dev.to/sathish_daggula/cursor-claude-a-repeatable-refactor-workflow-38c6","created_at":"2026-04-16T15:01:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T15:01:23Z","last_comment_at":"2026-04-16T15:01:23Z","reading_time_minutes":5,"tag_list":["javascript","webdev","typescript","nextjs"],"tags":"javascript, webdev, typescript, nextjs","user":{"name":"Sathish","username":"sathish_daggula","twitter_username":"Sathish_Daggula","github_username":"dvskr","user_id":3705649,"website_url":"https://dvskr.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%2F3705649%2Fc81bbb3f-cee7-4ffd-80f3-a0f5243c5779.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%2F3705649%2Fc81bbb3f-cee7-4ffd-80f3-a0f5243c5779.png"}},{"type_of":"article","id":3508569,"title":"Light Mode Was Lying to Us","description":"How we migrated 30 pages from hardcoded zinc colors to semantic CSS tokens — and what...","readable_publish_date":"Apr 16","slug":"light-mode-was-lying-to-us-217b","path":"/pavelbuild/light-mode-was-lying-to-us-217b","url":"https://dev.to/pavelbuild/light-mode-was-lying-to-us-217b","comments_count":0,"public_reactions_count":1,"collection_id":38616,"published_timestamp":"2026-04-16T06:34:23Z","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%2Ftunkw4qki24xihlnbcrx.png","canonical_url":"https://dev.to/pavelbuild/light-mode-was-lying-to-us-217b","created_at":"2026-04-16T06:34:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T06:34:23Z","last_comment_at":"2026-04-16T06:34:23Z","reading_time_minutes":4,"tag_list":["css","nextjs","tailwindcss","webdev"],"tags":"css, nextjs, tailwindcss, webdev","user":{"name":"Pavel Gajvoronski","username":"pavelbuild","twitter_username":null,"github_username":"Pha6ha007","user_id":3871429,"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%2F3871429%2F9ce51312-611e-4252-8caa-275a0bfeed3b.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%2F3871429%2F9ce51312-611e-4252-8caa-275a0bfeed3b.jpg"}},{"type_of":"article","id":3510197,"title":"How a Non-Technical Founder Built a Multi-Sport Prediction Platform (Lessons from Week 1)","description":"So I shipped SportzGenesis Arena last week. Sports prediction platform, covers cricket and football,...","readable_publish_date":"Apr 16","slug":"how-a-non-technical-founder-built-a-multi-sport-prediction-platform-lessons-from-week-1-12c7","path":"/praveen_sga/how-a-non-technical-founder-built-a-multi-sport-prediction-platform-lessons-from-week-1-12c7","url":"https://dev.to/praveen_sga/how-a-non-technical-founder-built-a-multi-sport-prediction-platform-lessons-from-week-1-12c7","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T11:43:44Z","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%2Fnxtmled4h73kqh12tuav.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%2Fnxtmled4h73kqh12tuav.png","canonical_url":"https://dev.to/praveen_sga/how-a-non-technical-founder-built-a-multi-sport-prediction-platform-lessons-from-week-1-12c7","created_at":"2026-04-16T11:43:44Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T11:43:44Z","last_comment_at":"2026-04-16T11:43:44Z","reading_time_minutes":5,"tag_list":["webdev","nextjs","startup","buildinpublic"],"tags":"webdev, nextjs, startup, buildinpublic","user":{"name":"Praveen T","username":"praveen_sga","twitter_username":null,"github_username":"tp6092000-g","user_id":3882333,"website_url":"https://www.sportzgenesisarena.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%2F3882333%2Fec024d3f-cb74-4f8d-9ad2-b0154dcd666c.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%2F3882333%2Fec024d3f-cb74-4f8d-9ad2-b0154dcd666c.jpg"}},{"type_of":"article","id":3509748,"title":"Notifying Admins When Users Confirm Their Email — The Right Way with Supabase and Next.js\"","description":"Full blog =\u0026gt; here Steps (Article Sections)   Hook / Problem Statement — Why polling or signup-time...","readable_publish_date":"Apr 16","slug":"notifying-admins-when-users-confirm-their-email-the-right-way-with-supabase-and-nextjs-23o6","path":"/frankmendez/notifying-admins-when-users-confirm-their-email-the-right-way-with-supabase-and-nextjs-23o6","url":"https://dev.to/frankmendez/notifying-admins-when-users-confirm-their-email-the-right-way-with-supabase-and-nextjs-23o6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T10:12:24Z","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%2Fstwkbqc5820po69e2mds.png","canonical_url":"https://dev.to/frankmendez/notifying-admins-when-users-confirm-their-email-the-right-way-with-supabase-and-nextjs-23o6","created_at":"2026-04-16T10:12:24Z","edited_at":"2026-04-16T11:37:08Z","crossposted_at":null,"published_at":"2026-04-16T10:12:24Z","last_comment_at":"2026-04-16T10:12:24Z","reading_time_minutes":2,"tag_list":["architecture","nextjs","postgres","tutorial"],"tags":"architecture, nextjs, postgres, tutorial","user":{"name":"Frank Mendez","username":"frankmendez","twitter_username":null,"github_username":"frank-mendez","user_id":851284,"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%2F851284%2F66782c4d-188c-4e01-8161-93796f702126.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%2F851284%2F66782c4d-188c-4e01-8161-93796f702126.png"}},{"type_of":"article","id":3509356,"title":"Power SEO Meta vs Next SEO: Which SEO Library is Better for Modern Next.js App Router?","description":"Disclosure: Power SEO Meta is built by our team at CyberCraft Bangladesh. This comparison reflects...","readable_publish_date":"Apr 16","slug":"power-seo-meta-vs-next-seo-which-seo-library-is-better-for-modern-nextjs-app-router-bba","path":"/alamin_c5eb10132845723c2b/power-seo-meta-vs-next-seo-which-seo-library-is-better-for-modern-nextjs-app-router-bba","url":"https://dev.to/alamin_c5eb10132845723c2b/power-seo-meta-vs-next-seo-which-seo-library-is-better-for-modern-nextjs-app-router-bba","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T09:06: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%2F94nhcqzrypovegwx1t1i.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%2F94nhcqzrypovegwx1t1i.jpg","canonical_url":"https://ccbd.dev/blog/power-seo-meta-vs-next-seo","created_at":"2026-04-16T09:06:05Z","edited_at":"2026-04-16T09:37:17Z","crossposted_at":null,"published_at":"2026-04-16T09:06:05Z","last_comment_at":"2026-04-16T09:06:05Z","reading_time_minutes":6,"tag_list":["nextjs","react","tooling","webdev"],"tags":"nextjs, react, tooling, webdev","user":{"name":"Alamin","username":"alamin_c5eb10132845723c2b","twitter_username":null,"github_username":null,"user_id":3862145,"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%2F3862145%2Fe8672387-2dd5-454a-b0e6-383da59126af.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%2F3862145%2Fe8672387-2dd5-454a-b0e6-383da59126af.png"}},{"type_of":"article","id":3511122,"title":"Next.js 14 Server Actions: The Patterns Junior Devs Always Get Wrong","description":"Next.js 14 Server Actions: The Patterns Junior Devs Always Get Wrong   As someone who's...","readable_publish_date":"Apr 16","slug":"nextjs-14-server-actions-the-patterns-junior-devs-always-get-wrong-1pla","path":"/apollo_ag/nextjs-14-server-actions-the-patterns-junior-devs-always-get-wrong-1pla","url":"https://dev.to/apollo_ag/nextjs-14-server-actions-the-patterns-junior-devs-always-get-wrong-1pla","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T15:05:45Z","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%2Fx8zrhosab6zb3bsff3ux.png","canonical_url":"https://dev.to/apollo_ag/nextjs-14-server-actions-the-patterns-junior-devs-always-get-wrong-1pla","created_at":"2026-04-16T15:05:46Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T15:05:45Z","last_comment_at":"2026-04-16T15:05:45Z","reading_time_minutes":4,"tag_list":["nextjs","react","webdev","javascript"],"tags":"nextjs, react, webdev, javascript","user":{"name":"Apollo","username":"apollo_ag","twitter_username":null,"github_username":null,"user_id":3866234,"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%2F3866234%2F5c481189-d2ce-4b7d-b713-d592bc691e8f.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%2F3866234%2F5c481189-d2ce-4b7d-b713-d592bc691e8f.png"}},{"type_of":"article","id":3511040,"title":"How I Built a National Wedding DJ Directory: Next.js 16, Meilisearch, and 9,400 Scraped DJs","description":"Last year I noticed a gap: couples searching for wedding DJs were stuck on Yelp, The Knot, or...","readable_publish_date":"Apr 16","slug":"how-i-built-a-national-wedding-dj-directory-nextjs-16-meilisearch-and-9400-scraped-djs-pip","path":"/cloudpeaklabs/how-i-built-a-national-wedding-dj-directory-nextjs-16-meilisearch-and-9400-scraped-djs-pip","url":"https://dev.to/cloudpeaklabs/how-i-built-a-national-wedding-dj-directory-nextjs-16-meilisearch-and-9400-scraped-djs-pip","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T14:46: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%2Ffgat67exbxm2trbgwm1t.png","canonical_url":"https://weddingdjfinder.com","created_at":"2026-04-16T14:46:31Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T14:46:31Z","last_comment_at":"2026-04-16T14:46:31Z","reading_time_minutes":4,"tag_list":["nextjs","webdev","startup","buildinpublic"],"tags":"nextjs, webdev, startup, buildinpublic","user":{"name":"Tony Ciovacco","username":"cloudpeaklabs","twitter_username":null,"github_username":null,"user_id":3879597,"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%2F3879597%2Fd585b092-7d1c-4b78-9779-2836d03ecd13.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%2F3879597%2Fd585b092-7d1c-4b78-9779-2836d03ecd13.png"}},{"type_of":"article","id":3511317,"title":"How I Optimize Next.js Apps to Get 90+ PageSpeed Score (Step-by-Step)","description":"Is your Next.js website scoring below 70 on Google PageSpeed Insights? You're not alone — and in this...","readable_publish_date":"Apr 16","slug":"how-i-optimize-nextjs-apps-to-get-90-pagespeed-score-step-by-step-1ank","path":"/dasun_madusanka/how-i-optimize-nextjs-apps-to-get-90-pagespeed-score-step-by-step-1ank","url":"https://dev.to/dasun_madusanka/how-i-optimize-nextjs-apps-to-get-90-pagespeed-score-step-by-step-1ank","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-16T15:47: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%2F2a7kyzkkde7evn0ovn4s.png","canonical_url":"https://dev.to/dasun_madusanka/how-i-optimize-nextjs-apps-to-get-90-pagespeed-score-step-by-step-1ank","created_at":"2026-04-16T15:47:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T15:47:00Z","last_comment_at":"2026-04-16T15:47:00Z","reading_time_minutes":2,"tag_list":["nextjs","webperf","webdev","typescript"],"tags":"nextjs, webperf, webdev, typescript","user":{"name":"Dasun Madusanka","username":"dasun_madusanka","twitter_username":null,"github_username":null,"user_id":3882717,"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%2F3882717%2Fd8b57945-9ee9-4beb-9c08-de53956d399f.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%2F3882717%2Fd8b57945-9ee9-4beb-9c08-de53956d399f.png"}},{"type_of":"article","id":3510525,"title":"Building a Simple Fashion Rental Platform Using Next.js","description":"I didn’t start with a big startup idea.  It actually started with a very simple observation.  Most of...","readable_publish_date":"Apr 16","slug":"building-a-simple-fashion-rental-platform-using-nextjs-1367","path":"/piggyalmari/building-a-simple-fashion-rental-platform-using-nextjs-1367","url":"https://dev.to/piggyalmari/building-a-simple-fashion-rental-platform-using-nextjs-1367","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-16T12:37:12Z","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%2F7o3na9mxo4t5sozuk6h0.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%2F7o3na9mxo4t5sozuk6h0.png","canonical_url":"https://dev.to/piggyalmari/building-a-simple-fashion-rental-platform-using-nextjs-1367","created_at":"2026-04-16T12:37:12Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-16T12:37:12Z","last_comment_at":"2026-04-16T12:37:12Z","reading_time_minutes":1,"tag_list":["nextjs","react","flutter","webdev"],"tags":"nextjs, react, flutter, webdev","user":{"name":"PiggyAlmari","username":"piggyalmari","twitter_username":null,"github_username":null,"user_id":3882435,"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%2F3882435%2F0b05356a-3777-40fe-913b-a6608bb5dadb.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%2F3882435%2F0b05356a-3777-40fe-913b-a6608bb5dadb.jpg"}}]