Skip to main content

Tech Stack

Core Technologies​

LayerTechnologyVersion
ServerFastify5.x
ClientReact19.x
Client RoutingReact Router7.x
DatabaseSQLite (via better-sqlite3)--
ORMDrizzle ORM0.45.x
BundlerWebpack5.x
StylingCSS Modules--
TestingJest (unit/integration), Playwright (E2E)30.x / 1.59.x
LanguageTypeScript~6.0
RuntimeNode.js24 LTS
ContainerDocker (DHI Alpine)--
Monoreponpm workspaces--

Key Design Decisions​

Each major technology choice is documented in an Architectural Decision Record (ADR) on the GitHub Wiki:

  • ADR-001: Server Framework (Fastify)
  • ADR-002: Frontend Framework (React)
  • ADR-003: Database and ORM (SQLite + Drizzle)
  • ADR-004: Bundler (Webpack)
  • ADR-005: Testing Framework (Jest + Playwright)
  • ADR-006: Styling (CSS Modules)
  • ADR-007: Project Structure (npm workspaces)

Dependency Policy​

Cornerstone follows strict dependency policies:

  • No native binary frontend tooling -- tools like esbuild, SWC, and Tailwind v4 ship platform-specific binaries that fail in certain environments. Cornerstone uses pure JavaScript alternatives (Webpack, Babel, PostCSS).
  • Pinned versions -- exact versions rather than caret ranges (^) to prevent unexpected upgrades.
  • Zero known fixable vulnerabilities in the runtime image -- npm audit --omit=dev must report 0 before merging. Dev, test and docs tooling may carry accepted vulnerabilities when fixing them would require downgrades or brittle dependency pinning.

Further Reading​

For detailed technical documentation, visit the GitHub Wiki: