Library & tooling
Start at the interesting part.
The part of every project you build before you build anything. Foundation is a library and a set of scaffolding tools that stand a new system up with the plumbing already in place, so the first week goes to the thing you actually set out to make.
01 / The situation
The same three weeks, every time.
Every new system starts in the same place. Someone has to sign in. Someone has to be an administrator. Passwords need resetting, invitations need sending, files need somewhere to live, and a permission check has to sit in front of everything that matters.
None of it is the reason the project exists, and all of it has to be right. Build it in a hurry and you live with the shortcuts for years. Build it carefully and the interesting work waits three weeks.
Foundation is that work, already done and carried forward from one project to the next.
02 / What comes with it
Everything a system needs before it needs anything else.
Every project
Accounts, access, and the everyday plumbing.
Account management
The whole lifecycle: invite, enable, disable, lock, unlock, reset. Sessions and the security policy that governs them.
Roles and permissions
Granular permissions grouped into roles, assigned to accounts, and checked wherever the work happens.
Email templates
The transactional mail every system sends, ready to edit rather than ready to write: invitations, resets, notifications.
Identity providers
Integration with the identity provider your customer already uses, instead of one more password for them to keep.
Asset storage
Somewhere for uploads to live, with the serving, addressing, and access control that goes with them.
Scaffolding
Generators that stand a new system up with all of the above wired together and running, not a checklist to work through.
Event-sourced projects
The tools you only need once nothing is overwritten.
System history
Everything that has happened, in order, filterable by tag and type, with the queries you run often saved for next time.
Projection management
See every read model, where each one has caught up to, and rebuild any of them without taking the system apart.
Time travel
Wind any projection back to see the exact state it held at a point in the past, which turns most arguments about what happened into a lookup.
03 / Why it exists
Built from real systems, not from a template.
Foundation is the accumulated answer to problems we hit building real systems, pulled out once the same solution had been written a third time.
A head start, not a cage
The scaffolding writes code into your project, where you own it and can change it. It gets you past the blank page rather than deciding how the rest of the system has to work.
Fewer places to get security wrong
Password policy, lockout, sessions, and permission checks are the parts nobody should be reinventing under deadline. They arrive already thought through.
At home in event-sourced systems
History, projections, and time travel are first-class here rather than bolted on, because that is how we build. See Show and Tally for a system standing on it.
Starting something?
Foundation is how we start, and it is how we get a client's system to something real quickly. Tell us what you are building.