Skip to content

πŸš€ Next.js + Tailwind v4 personal site: MDX blog πŸ“, RSS πŸ“‘, projects 🧩, themes 🎨, and a ⌘K command palette

Notifications You must be signed in to change notification settings

4thel00z/personal

Repository files navigation

personal-site

Demo

personal-site

A tokenized, themeable Next.js (App Router) landing page template built with Tailwind CSS v4. Includes an MDX blog, changelog, and command palette search.

Quickstart Β· What's included Β· Theming Β· Customize content

Quickstart

bun install
bun dev

Open http://localhost:3000.

What's included

  • Theme tokens: semantic Tailwind tokens powered by CSS variables (bg-canvas, text-fg, border-border, …).
  • Theme + mode controls: theme picker + dark/light/system toggle (persisted in localStorage).
  • Blog: MDX posts, tags, RSS, and full-text search + command palette.
  • Personal home: intro, latest posts, and projects.

Theming

The whole UI is driven by semantic tokens. Theme selection is controlled at the root <html> element:

  • data-theme: default | indigo | (optional DaisyUI-style aliases)
  • data-mode: dark | light | system

Configure via env vars (no code changes)

Defaults come from:

  • NEXT_PUBLIC_THEME
  • NEXT_PUBLIC_MODE

Example:

NEXT_PUBLIC_THEME=indigo NEXT_PUBLIC_MODE=light bun dev

If you pick a theme/mode in the UI, the persisted selection wins on the next load.

Add a new theme

  1. Add a new html[data-theme='…'] block in app/globals.css.
  2. Assign semantic tokens:
    • --color-canvas, --color-surface, --color-border
    • --color-fg, --color-muted, --color-subtle
    • --color-accent, --color-accentHover
  3. Keep components using semantic tokens only β€” everything updates automatically.
Theme names (DaisyUI aliases)
  • light, dark, cupcake, bumblebee, emerald, corporate, synthwave, retro, cyberpunk, valentine, halloween, garden, forest, aqua, lofi, pastel, fantasy, wireframe, black, luxury, dracula, cmyk, autumn, business, acid, lemonade, night, coffee, winter, dim, nord, sunset

Feature Flags

You can enable or disable specific features using environment variables.

Variable Description Default
NEXT_PUBLIC_FEATURE_BLOG Enable blog routes and links true
NEXT_PUBLIC_FEATURE_SEARCH Enable command palette search true
NEXT_PUBLIC_FEATURE_THEME_SWITCHER Enable theme/mode controls true
NEXT_PUBLIC_FEATURE_LANDING_* Enable landing page sections (e.g. NEXT_PUBLIC_FEATURE_LANDING_PRICING) true

Supported landing sections: HERO, LOGO_CLOUD, FEATURES, HOW_IT_WORKS, TESTIMONIALS, PRICING, FAQ, CTA.

Customize content

Edit src/config/personal.ts to update:

  • Navigation
  • Features
  • Steps
  • Testimonials
  • Pricing tiers
  • FAQs

Notes

  • Tailwind base palette comes from tailwindcss/colors (see tailwind.config.ts).
  • Theme overrides use Tailwind v4 color variables (--color-*) so alpha utilities like bg-surface/40 keep working.

About

πŸš€ Next.js + Tailwind v4 personal site: MDX blog πŸ“, RSS πŸ“‘, projects 🧩, themes 🎨, and a ⌘K command palette

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published