Colophon

The tools, services, and decisions behind Scribefully. Built by one developer who believes the best stack is the one you actually ship with.

Architecture

Next.js 15 App Router with a server-first approach. Pages are server-rendered by default — client JavaScript only ships for interactive islands like voting, auth, and navigation.

Layout
Homepage (data)
Article pages
Author pages
Legal pages
This page
Feed & voting
Auth modals
Submission dialog
Header & nav
Theme switching
Comments
Server Component (no JS shipped)
Client Component (interactive)

Stack

Next.js

v15
Framework

App Router with server components, ISR, and streaming. The backbone of every page you see.

React

v19
UI Library

Server and client components working together. Server for speed, client for interactivity.

TypeScript

v5
Language

Strict mode, end-to-end type safety from database queries to UI props.

Tailwind CSS

v3.4
Styling

Utility-first CSS with a custom design token system. Dark mode via class strategy.

Radix UI

v1.x-2.x
UI Primitives

Accessible, unstyled component primitives. Dialogs, dropdowns, tabs, tooltips, and more.

Framer Motion

vlatest
Animation

Page transitions, layout animations, and the hero text cycle. Smooth without the bloat.

Zod

v3
Validation

Schema validation for form inputs and API payloads. Pairs with React Hook Form.

Lucide

v0.454
Icons

Clean, consistent icon set used throughout the interface. Supplemented by React Icons for brand logos.

Infrastructure

Supabase

Database & Auth

PostgreSQL, Row Level Security, Auth, Storage

Render

Hosting

Auto-deploy from main branch, managed Node.js

Resend

Email

Transactional emails for notifications and verification

PostHog

Analytics

Product analytics, session replay, feature flags

Design System

Typography

Inter

Primary typeface · UI, body text, headings

Dancing Script

Script accent · Decorative elements

Color Palette

Primary

#7c3aed

Background

#ffffff

Foreground

#020617

Muted

#f1f5f9

Destructive

#ef4444

Chart accent palette

Why this stack

Server-first

Pages load fast because most rendering happens on the server. JavaScript only ships where interactivity demands it.

Type-safe end to end

TypeScript from database queries to UI props means bugs get caught at build time, not in production.

Ship fast, stay small

One developer, one branch, auto-deploy. No staging environment, no release trains. Main is production.

Built with care

Every dependency earns its place. Radix for accessibility, Supabase for simplicity, Tailwind for speed.