Skip to content

Roadmap

teemtape is built incrementally: ship the smallest useful increment, build a shared foundation once, and avoid re-work. Phase 1 (wireframes) is complete.

  1. Build the shared foundation once. Every client (CLI, desktop, mobile) talks to the same Worker API and the same anonymous notes/watchlist model, so each client stays thin and nothing is thrown away.
  2. Cheapest validation first. The CLI is the thinnest client — no rendering, no responsive layout, no app-store pipeline — so it’s the fastest way to prove the API and unblock the “agents post notes” use case.
  3. Then the primary human surface. Desktop web is where most people read the table and leave notes.
  4. Reuse, don’t rebuild. Mobile web reuses the desktop React components and design tokens; React Native reuses the shared API client + types.
  5. Each milestone is shippable on its own.
#MilestoneSurfaceStatus
M0Backend API foundationWorker + D1 + KVDone
M1CLICLIDone
M2Desktop web (read + notes)React webDone
M3Mobile webReact web (responsive)Planned
M4React Native appReact NativePlanned

The shared spine: a single Cloudflare Worker (modular monolith). Delivers the D1 schema for watchlists, notes, and handles; the quote proxy with a ~1-minute delay and KV cache; anonymous MD5 token generation; and the shared @teemtape/api-client package. Done.

The thinnest client. Lets agents and power users list, read notes, note, search, manage their handle, and get a share link — all built on the shared client, with --json for agents. Done.

The primary human surface: the stock table, note popup, anonymous share-link bar, “delayed ~1 min” badge, and a light/dark theme. Done.

A responsive pass on the web app (card list + bottom-sheet notes). Mostly layout and interaction reuse over M2 — a small delta. Planned.

A native shell reusing the shared API client and types. Highest packaging cost (app stores, native builds), lowest urgency — done once the web product is validated. Planned.

To avoid building “just in case”:

  • No accounts/auth — notes stay anonymous via the share token.
  • No real-time quotes — the ~1-minute delay is intentional.
  • No trading/order features — teemtape is for commenting only.
  • No multi-region, queues, or durable objects until there’s evidence we need them.