Docs / Decisions / 0003 · Server-rendered Flask, no build step
Decision record For everyone

0003 · Server-rendered Flask, no build step

  • Status: Accepted
  • Date: 2026-08-04

Context

The pages are tables of short strings and a few forms. A JavaScript toolchain would have to be kept current for the life of the project and buys nothing against that.

Decision

Flask and Jinja, one stylesheet per lane with Blueprint's design language expressed as CSS custom properties, one small script, no bundler. Asset URLs carry a content fingerprint, so a deploy never serves new markup with an old script.

Consequences

git clone plus pip install is the whole setup, and deploys are a restart. Rich client-side interaction costs more to build. CSS has one global namespace, so lane sheets prefix their private classes (tests/test_css_namespace.py enforces it).

Documentation for version 0.2.0 Reviewed 2026-10-04