Open-source starter

The production stack, installed in one command.

Building user interfaces should not restart every project. Celestia is a full-stack monorepo starter with a real architecture: a Next.js 16 frontend that stays pure UI, a Hono backend that owns auth and data, and a feature installer so you only carry what you use.

$npx @celestia-project/create my-app
The stack

The box comes full

Every piece is a package you can open and read. Nothing is generated behind a service, and nothing you remove leaves a hole.

better-auth

Authentication

Email/password, Google OAuth, and 2FA. Sessions live in PostgreSQL, handled by Better Auth on the backend.

hono-rpc

Typed API

Hono routes with an RPC client — call the backend from React with end-to-end types and no codegen.

drizzle

Data layer

Drizzle ORM over PostgreSQL in a shared workspace package. Type-safe from schema to query.

feature-manager

Feature installer

pnpm add-feature <name> copies templates, wires imports, installs dependencies. Removing is one command too.

turborepo

Monorepo

Turborepo pipeline and pnpm workspaces. UI, configs, and types shared across apps without duplication.

One command

Install the whole stack

Clones the template, then walks you through feature selection, env files, and the schema push. Removing a feature later is one command too.

$npx @celestia-project/create my-app
Architecture

Two apps. One boundary. Enforced by structure

The frontend never touches the database. The backend never renders a pixel. Requests cross the boundary only through the /api/* rewrite — so secrets stay server-side by construction, not by convention.

apps/web

Pure UI

  • Next.js 16 App Router — pages, components, client-side auth only
  • No database access, no server secrets, ever
  • Talks to the API through the same-origin proxy
apps/api

Owns the truth

  • Hono server on port 4000 — business logic and CRUD
  • Better Auth server — sessions, OAuth, 2FA
  • Drizzle ORM — the only code that talks to PostgreSQL
Get started

From npx to pnpm dev

One command clones the template, then walks you through the rest: pick features, write env files, install dependencies, push the schema. You land in a repository you already understand.

Features are optional — auth, dashboard, blog
Dependencies and env vars keyed per package
Git initialized on the last step
celestia — zsh

$ npx @celestia-project/create my-app

✔Cloning monorepo template

✔Features selected: auth, dashboard, blog

✔Dependencies installed in 42s

✔Environment files written

✔Database schema pushed

✔Ready. cd my-app && pnpm dev

Start building

Start from architecture, not setup.

Create an account and take the dashboard for a spin, or run the installer and make it yours.