May 3, 2026

Scaffolding a forest

Day-one notes — three apps in one repo, and why the words came first.


ForestLynk got its first commits on a Saturday. Three apps in one repo: a mobile app, an API, and a small package in between carrying the type definitions both sides agree on.

The middle package matters more than it looks. ForestLynk uses its own words on purpose — a post is a node, a reply is a branch, a deep reply is a leaf, a thread is a tree, a place is a forest. The generated types are the contract. If the two sides ever drift on what a node is, the build doesn’t compile. That keeps the vocabulary honest before any UI is involved.

What landed

By the end of the second day the app could open:

  • A list of forests.
  • A tree of nodes within one of them.
  • A reply box that knew whether it was planting a root or branching off something else.

Everything ran from realistic data behind a mock client. Nothing real on the wire yet. The point was to feel the shape — not yet to host anything.

What didn’t

A lot. No identity. No realtime. The mobile app ran on mocks while the API was being scaffolded in parallel. The next several posts are about wiring the two together.


← All posts