Decide the Abstraction Layer Before You Build

Core Idea

The first decision in building a tiny tool is not “what feature” — it is “at what layer.” Coding versus command line versus no-code platform versus app wrapper versus native skill. The choice constrains everything that follows: speed of iteration, cost, reversibility, who can maintain it, what can be extended later. This is the architecture-framing facet of Insight - Build Tiny Tools That Remove Real Friction: where you build the tool determines what kind of tool it can become.

Why This Matters

Dirk shared a useful story. He was working quickly on a pre-seed pitch, getting investor feedback faster than expected, and trying to define a CTO search workflow. In the middle of that, Claude suggested building an app for part of the process. Dirk’s reaction was important: it felt too fast. He pulled back to a simpler output he could immediately use. That tension is real. AI can now jump from advice to implementation so quickly that many people have not caught up psychologically. They are still asking for instructions while the machine is offering infrastructure.

That said, this session also offered a useful caution. Just because AI can build an app does not mean every suggestion should be followed immediately. Dirk’s instinct to simplify was not resistance — it was sequencing. Sometimes the right move is to take the easier version first, especially if the surrounding team, permissions, accounts, or infrastructure are not ready. Sustainable growth comes from matching the sophistication of the solution to the readiness of the environment.

The abstraction-layer decision is the lever that operationalizes that judgment. A markdown file you read manually is one layer. A bash script you run on demand is another. A local desktop app with a UI is another. A hosted SaaS-style tool with auth is another. Each layer up adds capability and cost: setup complexity, brittleness, dependency surface, ongoing maintenance. The right layer is the lowest one that solves the actual problem — anything higher is premature investment.

The mature frame is this: build tiny tools where friction is real, repeated, and private enough that generic software is overkill. Keep them lightweight. Let them earn their place. If the tool becomes core to the business, you can later professionalize it, wrap it in a cleaner interface, or turn it into a skill or mini-app library. But do not wait for perfection. Let utility come first.

Practical Application

Run the Layer Ladder before building any tiny tool:

  1. State the problem in one sentence: input → desired output → frequency.
  2. Walk up the abstraction ladder one rung at a time, asking “would this be enough?”
    • Rung 1: a markdown checklist or template
    • Rung 2: a single shell command or CLI script
    • Rung 3: a prompt + structured output in a chat interface
    • Rung 4: a local script with a tiny UI (Streamlit, AppleScript, etc.)
    • Rung 5: a hosted micro-app
  3. Stop at the first rung that genuinely solves the problem. That is your build target.
  4. Build it. If you need to climb a rung later, the lower-rung version will tell you exactly why.

Coaching question: “What is the lowest abstraction layer that would actually remove this friction — and am I about to overshoot it because the AI made the higher layer feel cheap?”

Evolution Across Sessions

This is a sub-insight extracted from Insight - Build Tiny Tools That Remove Real Friction (2026-04-05) when the hub crossed the 15-inbound threshold and was split per the Hub Split Protocol in schema.md. This page owns the architectural framing facet: the upstream decision that determines what kind of tool you are building before you write a line of it.