Architecture

How LinkBreeze is built — Next.js, Drizzle, SQLite.

Tech Stack

  • Framework: Next.js 16 (App Router)
  • Database: SQLite via better-sqlite3
  • ORM: Drizzle ORM
  • Styling: Tailwind CSS v4
  • Icons: lucide-react
  • Fonts: next/font/google (9 families)

Structure

src/
  app/
    (admin)/     # Admin routes (dark aurora UI)
    (public)/    # Public link pages (user-themed)
    api/         # API routes
  components/
    ui/          # Primitives (Button, Input, Card)
    admin/       # Admin composites
    aurora/      # Background atmosphere
    public/      # Public page components
  lib/           # Shared utilities, theme system
  server/
    actions/     # Server actions
    queries/     # Database queries
  db/            # Drizzle schema, migrations

Database Schema

  • users: admin accounts
  • pages: multi-page support with SEO, analytics, custom CSS
  • links: 8+ types with scheduling, click counts, auto-favicon
  • themes: granular theme tokens (30+ fields)
  • analytics: pageviews and clicks with geo/device/referrer
  • subscribers: email capture

Performance

  • Server Components by default, client only when needed
  • ISR for public pages
  • SQLite is fast enough for single-tenant self-hosted use
  • No external services or CDNs required