Colophon

What Orbital is built with

Every dependency earns its place. If it doesn't make the product faster, simpler, or more reliable, it doesn't ship.

Rendering architecture

Next.js 15 with the App Router. Server Components by default — client JavaScript only loads where interactivity requires it.

StaticHybridInteractiveServer-only
/ (Homepage)Static
Server ComponentNav + cookie banner
/aboutHybrid
Server + ClientFramer Motion
/terms, /privacyStatic
Server ComponentNav only
/stackStatic
Server ComponentNav only
/dashboardInteractive
Client ComponentFull SPA
/login, /signupInteractive
Client ComponentAuth forms
/api/*Server-only
Route HandlersNone

Core stack

Next.js

15.2

Framework

App Router with React Server Components. Marketing pages ship zero JS; the dashboard hydrates as a full client SPA.

React

18.3

UI Library

Server Components for static marketing pages, client components for the interactive dashboard, modals, and charts.

TypeScript

5.9

Language

Strict mode enabled. Every component, hook, and API route is fully typed with zero any escapes in production code.

Tailwind CSS

4.1

Styling

v4 with OKLCH color variables, custom glass-card utilities, and a responsive-first approach. No external CSS files beyond globals.

Shadcn/ui

Latest

Component Library

52 Radix-based primitives copied into the codebase. Fully customizable, zero runtime overhead from a package registry.

Lucide

0.454

Icons

Tree-shakeable SVG icons used throughout the UI. Consistent 24px grid, 1.5px stroke weight, and semantic naming.

Motion

11.18

Animation

Scroll-triggered reveals on marketing pages, layout transitions in the dashboard, and spring physics for modals.

Recharts

2.15

Data Visualization

Category donut, renewal load bars, historical trend lines, and summary tiles powering the analytics dashboard.

Infrastructure

Render

Hosting

Standalone Node.js build, zero-downtime deploys, health check endpoint.

Cloudflare

DNS & Email Routing

DNS management, email forwarding for support@, legal@, hello@.

Supabase

Database & Auth

PostgreSQL with Row Level Security, auth with email verification, admin client for elevated operations.

Stripe

Payments

Checkout sessions, subscription management, webhook-driven status updates, in-place plan upgrades.

PostHog

Analytics

Privacy-friendly product analytics, event tracking, and session replay.

Resend

Transactional Email

Founder reservation confirmations, auth emails via custom SMTP for Supabase.

Design system

Typography

Orbital

Georgia · Headings & brand

The quick brown fox jumps over the lazy dog.

Geist Sans · Body text

const orbital = "colophon"

Geist Mono · Code & data

Color palette

OKLCH color space — perceptually uniform lightness across all hues.

Primary

--primary

Purple

--accent-purple

Orange

--accent-orange

Green

--accent-green

Red

--accent-red

Background

--background

Card

--card

Border

--border

Why this stack

Server-first, JS-last

Marketing pages ship zero client JavaScript. The dashboard loads as a client SPA. Every page gets the rendering strategy it actually needs.

Open primitives over frameworks

Shadcn/ui components live in the codebase, not a package registry. Radix handles accessibility; we handle design. Nothing is a black box.

Perceptual color with OKLCH

Every color is defined in OKLCH — perceptually uniform lightness means consistent contrast ratios and predictable dark mode inversions.

AI-native from day one

The AI import feature isn't bolted on. The data model, API design, and onboarding flow were all built around paste-and-go service detection.