Skip to content
d3 Wiki
02.01

Approved stack and when to deviate

Fewer technologies, deeper knowledge, easier handoffs.

Updated
Oct 3, 2026
On this page

Purpose

Fewer technologies, deeper knowledge, easier handoffs.

The standard

Layer

Default

Notes

Web framework

Next.js (App Router), TypeScript

React server components by default

Styling

Tailwind + shadcn/ui

Design tokens per repo tailwind.config

Database / auth / storage

Supabase (Postgres)

One project per tool per environment

Hosting

Vercel

Preview deploys on every PR

3D on web

Three.js / React Three Fiber, GLTF

See 12.03

Scripting & data

Python 3.11+ (uv), pandas/polars

Rhino tooling

Rhino 8 Python 3 (CPython) or C#

See 10.03

Revit tooling

C# .NET, Revit API; pyRevit for lightweight scripts

See 11.02

Charts

Chart.js (web), see 09.08

AI

Claude via Claude Code / Cursor / API

See 05.x

Deviating

Allowed when the default cannot do the job or an ADR (01.06) shows a clear win. "I know X better" is not a reason. A deviation without an ADR is tech debt owned by whoever introduced it.

Owner: Matt · Last reviewed: 2026-09