Decisions, reasoning, and work-in-progress notes from the team building Pouch at Pointegrity. We publish what we figure out as we figure it out — including the tradeoffs, the rejected options, and the things we changed our mind about.
An AI assistant writes the code in seconds now, and the obvious conclusion is that everyone is faster. Writing was never the whole job — deciding whether the code is right used to come bundled with typing it, and now it doesn't. The awkward part: the slowdown is very hard to feel from the inside, and better models make the mistakes that survive harder to see rather than fewer.
A grounded notebook over your own sources — NotebookLM made that surface general. This is about the harder half: generalizing the depth. Structure-aware parsing instead of blunt chunks, typed entities projected from a stable layer and re-projected when the schema changes, answers that cite their sources, and a model that stays in the building. We borrowed the shape; the box was the part worth keeping.
Several of our recent chat-and-canvas apps kept showing up with the same bones — different domain, same scaffold. liugent (liu as in 流, flow) is the scaffold factored out: a small Go bench plus a plugin slot where the domain lives. First plugin is internal, used live during TWSE hours. Notes from the workshop, not a product announcement.
A short break from the serious mini-apps. We dug two small math games out of the drawer and rebuilt them clean — Domino Solver, a partition puzzle, and Cat and Mouse, the 19th-century pursuit game Conway analysed in Winning Ways. Both a small collaboration with the Chiu Chang Mathematics Education Foundation, and a reminder of what a break is for.
A new piece of the family: attic, the backup layer behind pouch, mytraces, and the rest. A polite email from the cloud provider about high outbound traffic turned into a small forensic dig — a few hundred megabytes of actual data was producing several hundred gigabytes of cross-region traffic a week. The mismatch was in how we'd set up the safety net, not in any of the apps.
Notes from rebuilding the bottom sheet in mytraces, a trip-companion app shipping soon. A back-button gesture that opened a Discover modal turned out to be a follow-up tap landing on an invisible chip — and the chase exposed a deeper pattern in how state was scattered across modules. Three architectural slices later, a lesson about where view-coordinated state should live.
A few days reshaping the pouch home view on the phone. Stream-bound drops collapse into pockets, pinned items sit at the top without a label, search moved to a corner icon. Plus a small affordance — a gear on each stream card — that pays the biggest dividend.
A passing note about poi, the typed knowledge index our codebase has been quietly accumulating about itself. Gotchas with file-glob triggers, decisions you stop re-litigating, boundaries that are real gates. Internal dogfood for now — notes from the workshop, not a product announcement.
The same architecture we use in mytraces (travel) shipped first as SC PreAlgebra (math), and now in a third domain — SC Programming. Why this shape keeps showing up in our work, and what it deliberately doesn't try to be.
A status report from inside mytraces, our internal trip-planning project. Why we're building it around two pillars — a curated ontology and an LLM — and how that decision is shaping the work. Internal dogfood for now, design notes worth writing down.
Ten days off the journal. A status report from the workshop floor: a visual-identity system shared across our app family, schema housekeeping in the auth library, real test coverage for previously-untested layers, and the honest answer to the marketing question. Plus a real subscribe form below.
The "free tier, then upsell" playbook is the indie-SaaS default. We chose the opposite — paid-only, 14-day trial, no credit card. The reasoning, the 14-day number specifically, and the real downside of giving up viral free-tier growth.
We needed typography that works for both pouch's UI chrome and long-form writing (this journal, future tutorials, legal pages). System fonts were the cheap default; Inter was the indie-SaaS pick. We went with Plex — and here's the reasoning.
Folders came up early as the obvious way to organize drops. We said no. The alternative is streams — a dimension orthogonal to tags, where the grouping unit carries policy (TTL, retention, eventually replication). This is the decision that keeps pouch from drifting into note-app shape.
We kept getting pulled toward "note app" and "dropbox for small files" as default framings. Neither was right. Pouch is a personal data relay — ephemeral by default, durable by opt-in, yours to own. The positioning decisions that cascade from that framing.
Follow along. A monthly letter from the workshop — what shipped, what we're thinking about, links to the month's posts. No tracking, no third-party tools. Unsubscribe via a one-click link in any letter.
Prefer RSS? Same posts, no email.