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.
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.
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!