Beacon VTS · Growth
How Beacon grew
Every merged branch, decision record, pull request and release since the first vanilla JavaScript folder in May 2025, grown into one tree. The seed is the original idea. The tip is today.
- commits in git
- 1,523
- decision records
- 199
- branches merged
- 175
- releases
- 232
- dated backups of the original
- 10
Reading the tree
Height is time, squeezed so the busy months stay readable. The thin lower trunk and the seed are the vanilla JavaScript app; the thick upper trunk is the rebuild, tracked in git. Each family of branches is one area of the product.
- Ring on the trunk
- a release
- Octahedron
- a merged branch
- Small pyramid
- a decision record (ADR)
- Hexagon
- a pull request
- Cube
- a dated backup or a file in the original app
- Icosahedron
- a branch that was never merged
- Ember
- the tip
Drawing the tree
The same story in words
beacon-vts-app created
The vanilla JS project folder is created. This is the seed.
First files on disk
Earliest surviving file dates: logos, Firestore indexes, the login network-animation.js.
Source data gathered
Open Builds tracker PDF, a customer materials sheet and attendance workbook land in VTS project tools and files, plus two OneDrive zips of about 400 MB.
Data transform tool
Data_tool.html: a standalone page for reshaping the workbooks before they go into Beacon.
Refactoring Tool splits build-schedule.js
A 129 KB build-schedule.js is cut by script into 12 modules (table view, calendar view, upload handler, data service and more).
Nine screen recordings
VTS Recording holds nine mp4 walkthroughs of the app from this day.
Passdown App starts
Sibling shift-handoff app created on the same vanilla stack.
Material system upgrade
Plain table replaced by a Tabulator grid with server-side pagination (MaterialService). The write-up claims about 95% faster first load.
Cloud Functions + sign-up flow
functions/index.js reaches 68 KB; password-change and registration scripts added.
beacon-vts-v2: first Next.js scaffold
15 files: materials page, auth hook, Zustand store, tenant provider. Three weeks later the work restarts as app-rebuild.
app-rebuild begins
Next 15 + TypeScript + Firebase. By 26 Oct it has 19 dashboard routes and 16 services, including Checkpoint, Coverage Analyzer and Executive Dashboard.
Vanilla history.js still edited
history.js reaches 204 KB and index.html 512 KB on the same day the rebuild is running in parallel.
Git begins
The first commit in the repository. Everything before it is known only from dated backup folders.
v2.0.0
TypeScript Rebuild
v2.10.0
Labor Planner Redesign
v2.20.0
Line Layout Builder
v2.30.0
Access-control release
v2.40.0
Stock Ages Between Uploads
v2.50.0
Peak Headcount Now Means People
v2.60.0
The Headcount Ceiling Now Actually Holds
v2.70.0
The Price You Agreed Is the Price You Bill
v2.80.0
Switch Off a Role You Do Not Use
v2.90.0
Put a SKU’s Rate on Its Engineering Standards
v2.100.0
Add a New Candy or Corrugate Without Leaving the Material
v2.110.0
Things That Arrived And Were Quietly Dropped
v2.120.0
Every Order Shows Its Own Plan
v2.130.0
Change A Step's Frequency Right In The Dossier
v2.140.0
Run Ahead Of The Plan: Pull Forward And Overrun Trims
v2.150.0
Pull Forward by Hours, and Fill the Week
v2.160.0
Each SKU Opens at Its Own Quote Quantity
v2.164.0
Stages Run on the Floor: Checkpoint Live, Boards and Shift Review
What the tree leaves out
- The vanilla JavaScript app had no git. Its dates come from backup folders and file modified times, so a file “first seen” on a date may be older than that backup.
- Nothing was found between the last rebuild builds in November 2025 and the first commit on 24 February 2026.
- Branches and decisions are sorted into families by keyword, so some sit on the wrong limb. Sign-in and access-control items keep their number and date but their wording is withheld.