How Dadama grew in one day

Dadama went from an empty repository to a deployed static site in a single day. This article measures that growth from the project's own git history, so every number below can be checked by anyone with a copy of the repository.

Code at each milestone

Each bar is the number of lines of TypeScript in the repository at the commit that closed the milestone.

Lines of TypeScript at each milestone

The first chart (M1) was the biggest single step: D3 rendering, CSV loading and the chart block syntax arrived together.

Where the code lives today

src/ is the server and the build, client/ is the code that draws charts in the browser, and tests/ is the test suite.

Lines of TypeScript by area, at the deploy commit

Tests make up more than a quarter of the code. The browser side stays small because the server does the heavy lifting: it parses the CSVs, checks the chart specs and inlines only the columns each chart needs.

Method

Milestone Commit Lines
Setup 45e7b1b 19
M0 Skeleton b38dcbc 513
M1 First chart 83d733d 1,460
M2 Live reload 42a2377 1,782
M3 Static build 02ee2a9 2,085
Deploy 330e2a7 2,251

Lines were counted in every .ts file under src/, client/ and tests/ at each commit, blank lines and comments included. Configuration, CSS, markdown and data files are not counted.

Neat!