featkpr

Your app's features live in people's heads. featkpr maps them.

From your code and a running copy: modules, features, the flows they form and the goals they reach. Your team keeps or drops each, one question at a time.

Whatever your team runs next can build on the map.

BookStack, an open-source wiki we don't own: 312 features in 13 modules · 149 flows to 88 goals, each waiting on a person's verdict

A goal featkpr drafted, on the real screens that reach it

A drafted goal, Create a book, in words, and its flow's real BookStack screens left to right: follow Books, follow Create New Book, type the name, the path ends on the new book

Your team's review of it

The review panel: read the goal, walk the steps, see the result, decide. Does this path get a person to the goal? Keep as a flow, Not a flow, or rewrite the goal in your words

The app screens on this page run on sample data, so the numbers inside them are examples. BookStack's own numbers are in the lines under the headings, each with where it was read.

What your team is approving #

A map is built from features, which make up goals, which make up flows, and a layer of services grows on top. Here is one BookStack feature, followed from its module to its goal and the flows that reach it. Open any of them.

  1. the module Entities, on the Map Every route is grouped into a module and a feature, each one a mark. The three lit marks are the revision features; ours is one of them. Open
  2. the feature its page See what changed on a page The words it is known by in the code, each with its file and line, the screens it lives on, and the flows that end on it. Open
  3. the goal the goal it serves Read a page's history What a person is trying to get done, in words. This one has no draft yet, so it carries the route's name until someone rewrites it. Open
  4. the flows the flows that reach that goal Two steps, on BookStack's real screens A flow is the screens a person walks, left to right, drafted from the crawl. Each goal can have several. Open
  5. the next layer built on all four What grows on the map
    • Tests, per route and rolelive
    • Tests in any framework: TypeScript, Selenium, Cucumberplanned
    • Telemetry, and what each test changedbeing built
    • Feature flags and errors you already trackplanned
    • A user guide, written from the mapan idea
    • Any stack: Node and Python readersplanned
    Each service reads the map your team approved. The services

In one lineModule Entities · feature “See what changed on a page” · goal “read a page's history” · 2 flows reach it

Every screen of the map, in the product tour

How your team answers #

One question at a time, over the real screen it is about. Nothing stalls: until someone answers, a default is in force.

  1. Keep or drop a flow #

    Keep as a flow makes it a recorded flow. Not a flow is never offered again.

    Keep: it becomes a recorded flow, and what must be checked becomes its test. Not a flow: never offered again. Then the two buttons
    keep or drop, on Flows
  2. Rewrite a goal in your words #

    When a draft is close but wrong, say what a person is trying to get done. The record's own words stay beside yours.

    A goal rewritten by its owner: a new person signs up with their email and gets in; below it, what the record said before
    a goal rewritten, on Flows
  3. Answer what the code can't decide #

    The card shows the screen and what each answer would mean. The default holds until someone chooses, and Ask engineer hands it over.

    A question card: two answers, each showing who would see the page; the default is in force until someone answers; Ask engineer
    a question card, on Questions
  4. Answer a change's verdict #

    When a change breaks a goal it may have meant to change, say intended, flaky or rerun, on the page or in a reply.

    The Decisions rail of a verdict's page: nothing waiting yet, and the three replies a person can give, one a line: intended, flaky, rerun, each with what it does
    a verdict's decisions, on its page

Every answer is kept, with who and when #

A later answer supersedes the old one, and both stay in the record.

The history of answers, newest first, each with its week, time and who answered, and which answer it supersedes
the history, on Questions

How questions work, in the product tour

Built on the map, today #

The map and your review are the product. These run on top of it, and more can.

  • 497 tests written from the map: from templates, with no model calls, none by hand.featkpr's records, exported 28 Sep 2026 How tests are written
  • 276 of 311 tests proven by the wrong-user check: each test is sent again as someone who should get the opposite answer, and it must then fail. 49 were refused to a user without the permission, 216 were let through for the Admin, 7 end on a mail BookStack sends (a password reset, an invite, a comment or page notification), and 4 on another kind of answer.the run of 28 Sep 2026, 06:33 UTC, on BookStack v26.09's code Read the BookStack report
  • 19 held when a change's own code ran: BookStack pull request #6213, run beside the development tip: 0 broke, 5 not proven. Its first verdict, on 27 Sep 2026, had run nothing.the run of 28 Sep 2026 What a change reaches
  • 605 of 2,372 things featkpr missed, said out loud: counted against an answer key built from BookStack's own route list, templates and seed.the audit of 26 Sep 2026 Every step's misses
  • then anything any test framework, tracing, analytics: next on the plan, tests through a browser (planned, not dated), and every state change traced during a run (from 19 Oct). The plan

See BookStack's map on a call, then yours #

Half an hour with Tim on the live app and BookStack's real records. Bring the questions you would ask about your own app.

Ask for a private demo
  1. You askOne email is enough. Tim reads each one and writes back.
  2. A live half hour on BookStackTim shows you the real app and the map of BookStack, your questions first.
  3. Your app nextToday we set up each app ourselves, from your repository and a throwaway copy. We take a few teams at a time.
  4. A private read-only demo, for your teamFor people you invite, behind a one-time code, once the proof is worth showing; until then, the call is the demo: decided 27 Sep, not built yet.

Open original

↑ ↓ to move, Enter to open, Esc to close