examples Arkwell

SaaS B2B Illustrative

Arkwell

Cloud ERP for European small manufacturers

Illustrative example. A fictional organisation; its names, figures and domains are invented.

NORTH.md — Arkwell

Project purpose, ambition, and trade-off defaults. For how agents work, see AGENTS.md.

1. North Star

Make a one-day month-end close the norm for European small manufacturers by 2030.

A 20-person workshop should close its books the day after month end, with stock, purchases and sales already reconciled to the ledger. If month end still needs a week of spreadsheet work, we have not finished.

2. The Bar

Every change that reaches main:

  • Keeps the ledger balanced. Every posting is double-entry and idempotent, and a property test checks that debits equal credits.
  • Validates e-invoice output against the EN 16931 rules in CI, across the full fixture set. One validation failure blocks the release.
  • Passes typecheck, lint and the full test suite with zero warnings.
  • Ships every user-facing string in every supported locale. A missing key fails the build.
  • Holds p95 under 300 ms on stock, invoice and ledger screens, measured against a 50,000-item fixture catalogue.
  • Comes with a release note a bookkeeper can read. If we cannot explain it to them, it is not done.

3. Asymmetric Bets

Go 10x on:

  • Stock-to-ledger reconciliation. Every goods receipt, shipment and stock adjustment posts to the ledger automatically, and mismatches surface the same day.
  • E-invoicing correctness. EN 16931, PEPPOL BIS and Factur-X output that validates first time. These formats carry legal weight and are one-way doors.
  • Migration from the incumbent system. Importing two years of history, opening balances and the item master in an afternoon is what wins the switch.
  • Audit trail. Postings are append-only. Corrections are reversing entries, never edits.

Accept 1.1x on:

  • Admin settings UI.
  • Dashboard polish and chart styling.
  • Internal reports seen only by our own staff.
  • Locales beyond the launch markets; community translations are welcome.

4. Anti-Goals

  • We do not build a CRM. Mature CRMs exist; we sync customers and orders through the API instead of rebuilding contact management.
  • We do not offer on-prem installs. One deployment target keeps security patches and e-invoicing rule updates same-day for every customer.
  • We do not maintain customer-specific forks. Variation lives in configuration and extensions, or it does not ship.
  • We do not swallow errors in posting code. Every failure in tax, invoicing or ledger paths reaches the user or halts the job.
  • We do not build features without a documented user problem. The roadmap is pull-based.

5. Trade-off Defaults

Trade-offDefaultFlip when
Speed vs. safetySafety on anything that posts to the ledger; speed on internal toolingAn internal tool starts writing ledger or tax data; it inherits the safety default
Build vs. buyBuy infrastructure (database, payments, error tracking); build accounting and stock logicA vendor’s price or terms break unit economics
Breadth vs. depthDepth in manufacturing and wholesaleThree lost deals in a quarter cite the same missing feature for another segment
Backward compatibility vs. clean designVersion the public API; never break an integration silentlyThe endpoint is internal and has a single consumer
Generality vs. fitFit for small manufacturersA configuration option covers the next segment without new code paths

6. Ambition Triggers

  • “Would this still close the month in a day for a customer with ten times the volume?”
  • “Would an auditor accept this record without a follow-up question?”
  • “Can the customer do this without calling their accountant?”
  • “If we had three weeks instead of three days, what would we build — and why not now?“

7. Reversibility

One-way doors — decide deliberately:

  • E-invoice formats and signature handling.
  • Public API v1 response shapes (api.arkwell.example/v1).
  • Ledger posting schema and rounding rules.
  • Row-level access rules for financial records.
  • The product domain (arkwell.example).

Two-way doors — move fast:

  • Admin UI layout.
  • Internal module structure.
  • Choice of internal libraries.
  • Help-centre copy.

When in doubt: if it touches posted data, treat it as one-way; otherwise treat it as two-way and ship.

All examples View source on GitHub