> Server is loading......
A clean approach to theme toggling in Next.js: class-based themes, CSS variables, and persisting preferences.
A lot of dark mode implementations are just “invert colors”. The result:
Use CSS variables for tokens (background, foreground, border, etc.) and switch a .dark class.
next-themes makes this easy:
suppressHydrationWarning)prefers-reduced-motionNext.js App Router SEO Checklist (2025)
A practical checklist for shipping pages that rank: metadata API, OG/Twitter cards, sitemap, robots, and content structure.
Markdown + reading time in the App Router
A simple pipeline: Markdown in /content, gray-matter for frontmatter, and reading-time to show estimate on cards.
Building a design system with shadcn/ui
How I use shadcn/ui as a starting point: consistent tokens, composable components, and accessible primitives.