← All courses

🧾 Build Your Own: ERP & CRM

The system a business actually runs on — contacts and a pipeline, the quote → order → delivery → invoice → payment chain, a stock ledger, and double-entry accounting underneath. Every series ends on a reconciliation rather than a feature, because the hard part of an ERP is not the schema, it is that the numbers have to agree.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Data Model Patterns — Series 1 and Series 2. This track applies the patterns rather than teaching them. Series 1 · 00 is the party model, Series 1 · 15 is effective dating and Series 2 · 10 is the order-to-cash chain — all three are assumed here from the first episode, and an episode that stopped to explain them again would be the wrong course.

Before you start: Learn SQL — Series 1. Every check in this track is a query. You need joins and GROUP BY well enough to write the reconciliation that proves the ledger agrees with the subledger, because that query is the artefact each series ends on.

Short on time? The 18 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.


Series 1 · The CRM — People, Pipeline and Who Can See What

a running system before a single number has to balance

  1. 01

    One Database, Several Departments — and the 5% You Are Actually Building

    coreintermediate#foundationalcoming soon
  2. 02

    Accounts and Contacts — the Party Decision You Have to Actually Make

    coreintermediate#partycoming soon
  3. 03

    The Pipeline — a State Machine, and the History Column You Cannot Add Later

    coreintermediatecoming soon
  4. 04

    The Timeline — Three Ways to Point at Anything, and What Each One Costs

    coreintermediatecoming soon
  5. 05

    Who Can See This Row — Ownership, Teams, and Why It Is Not a Login Problem

    coreintermediatecoming soon
  6. 06

    Custom Fields — a Column, EAV or JSON, and the Question That Decides

    intermediatecoming soon
  7. 07

    Project — a CRM With a Pipeline, a Timeline and a Visibility Rule That Holds

    intermediatecoming soon

Series 2 · Quote, Order, Delivery, Invoice

the document chain, and the two rules that make it trustworthy

  1. 01

    Products, Units and Price Lists — Why a Price Is Never a Column

    coreintermediatecoming soon
  2. 02

    The Document Chain — and Why an Invoice Must Never Join to the Price

    coreintermediatecoming soon
  3. 03

    Posted Is Immutable — Why an ERP Barely Has a DELETE

    coreintermediatecoming soon
  4. 04

    Invoice Numbers — Why a Sequence Is the Wrong Tool for an Unbroken Series

    intermediatecoming soon
  5. 05

    Partial Delivery, Partial Invoice, Partial Payment — Where Naive Schemas Die

    coreintermediatecoming soon
  6. 06

    Credit Notes and Returns — Four Corrections That Are Not the Same Thing

    intermediatecoming soon
  7. 07

    Project — Ten Ordered, Six Shipped, One Payment, and a Report That Agrees

    intermediatecoming soon

Series 3 · The Ledger That Has to Balance

double entry, money, tax and a trial balance you can defend

  1. 01

    Double Entry — a Data Structure With an Invariant, Not Accountancy

    coreintermediate#foundational#accountingcoming soon
  2. 02

    Accounts and Journal Entries — the Constraint That Sums to Zero

    coreintermediate#accountingcoming soon
  3. 03

    Posting — the Subledger, the Control Account, and the Query That Proves It

    coreintermediate#accountingcoming soon
  4. 04

    Money — Integers, Allocated Rounding, and the Exchange Gain Nobody Models

    coreintermediate#moneycoming soon
  5. 05

    Tax — Per Line, As of the Date, and Copied Onto the Document

    intermediatecoming soon
  6. 06

    Closing a Period — Three Reconciliations, and a Trial Balance That Is Zero

    coreintermediate#accountingcoming soon
  7. 07

    Project — Post a Month, Close It, Then Break the Ledger on Purpose

    intermediatecoming soon

Series 4 · History, Stock and Going Live

the parts that decide whether anyone will rely on it

  1. 01

    History Against Truth — Two Different Time Axes, and Why You Need Both

    coreintermediatecoming soon
  2. 02

    Stock — Movements Are the Truth, On-Hand Is a Sum, and Costing Is the Hard Part

    coreintermediatecoming soon
  3. 03

    Going Live — the Opening Journal, and Why Open Invoices Cannot Be One Lump

    coreintermediatecoming soon
  4. 04

    When Reports Start Hurting — Four Rungs, and Where This Course Hands Over

    intermediatecoming soon
  5. 05

    What You Left Out — and the Rule for Deciding What to Buy Instead

    coreintermediatecoming soon
  6. 06

    Project — a Full Cycle, a Closed Month, and a Reconciliation Pack That Passes

    intermediatecoming soon

Not here, on purpose

  • The patterns themselves — party, roles, effective dating, order-to-cash, hierarchies — covered in Data Model Patterns. In this course, Series 1 · 05 and Series 2 · 05 apply them and argue the concrete choice for a system you will maintain, which is a different exercise from learning what they are
  • How ERPNext, Odoo, Dolibarr and InvoiceNinja modelled it, and where they diverge — covered in Schema Teardowns, Series 2 · 05 and Schema Teardowns, Series 2 · 10. This track builds one rather than reading theirs — go and look at their schemas when a decision is hard, which is what that track teaches you to do
  • Deciding what the tables should be, keys and normalization — covered in Data Modeling. This track starts after that decision, from a domain whose shape has been settled by fifty years of people getting it wrong
  • Building an invoicing app from three schemas you took apart — covered in Schema Teardowns, Series 3 · 05, which is a smaller build and a different exercise — that one is informed by reading, this one is informed by the ledger having to balance
  • Warehouse and reporting layers, star schemas and OLAP — covered in Data Warehousing. In this course, Series 4 · 15 covers only the moment your reports start hurting the transactional database, and hands over
  • Running the database in production — backups, tuning, connection pooling — covered in Data Ops, Series 2. This track builds the system; keeping it up is that course's subject
  • Manufacturing, payroll, project accounting and per-country statutory filing — not covered, deliberately. In this course, Series 4 · 20 names each one and explains why it is the point where a sensible team stops building and buys — which is the useful lesson, and the one nobody writes down
  • Tax advice, or the rules of any particular jurisdiction — not covered and never will be. This track teaches the machinery that applies a rate as of a document's date; which rate, and which rules, belongs to the reader's accountant