> Server is loading......
How I use shadcn/ui as a starting point: consistent tokens, composable components, and accessible primitives.
shadcn/ui is a component generator, not a package lock-in. That matters because you own the code.
Use cn() (clsx + tailwind-merge) everywhere you compose classes — it prevents a ton of visual bugs.
Next.js App Router SEO Checklist (2025)
A practical checklist for shipping pages that rank: metadata API, OG/Twitter cards, sitemap, robots, and content structure.
Dark mode done right with next-themes
A clean approach to theme toggling in Next.js: class-based themes, CSS variables, and persisting preferences.
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.