Internal Tools
The software your team uses all day and nobody demos. Operator consoles, admin surfaces, content pipelines, and the review queues that sit between an automated system and the person accountable for it.
Most operator surfaces are a 2–4 week sprint once the data model exists.
An internal tool is software whose users already know the domain and use it for hours a day. That inverts the usual priorities: density beats whitespace, keyboard paths beat onboarding, and the fastest path to the task beats the most discoverable one. Optimising it like a consumer product makes it worse.
- TYPICAL SPRINT
- 2–4 weeks
- FROM
- €5,000
- AUDIT TRAIL
- FULL
- CMS COST
- €0
HOW IT RUNS
WEEK 1 → WEEK 4- WEEK 1
Shadow the work
Watch the job actually being done, across whatever spreadsheets and tabs it currently lives in. The tool follows the work.
- WEEK 2
The one screen
The surface an operator can live in all day, built against real data from the first version onward.
- WEEK 3
Actions and audit
Every state change recorded with who did it, when, and why — because somebody eventually asks.
- WEEK 4
Roles and rollout
Permissions, a review queue for anything needing a second pair of eyes, and the team using it in production.
HOW IT IS BUILT
- Built for the person who lives in it
- An internal tool is used for hours a day by people who already know the domain. Keyboard paths, dense information, and no onboarding wizard — speed matters more than first-run polish.
- Review queues for automated systems
- Where AI proposes and a human approves, the approval surface is the product. Saldo's import pipeline and Resolo's escalation queue are both this shape: the automation is only as good as the veto.
- Content without a CMS tax
- Content can live in the repository as typed files and ship through git, with no database and no admin login to maintain. This site works that way — every section is a YAML file.
- Auditable by construction
- Who changed what, when, and what it was before. Internal tools touch production data, so the log is not a feature request — it is the difference between a question and an incident.
SHIPPED
Not a capability list — software in market that this work produced.
- FINTECHSALDOTwo-phase orchestration — AI proposes, hardened executor applies. Self-healing import configs, vision-augmented parsing, pluggable e-invoicing connectors.Next.js · Vercel AI · Postgres · RedisCASE STUDY
- CUSTOMER SUPPORTRESOLOCustom orchestration engine with confidence tags and explicit handoff markers. pgvector knowledge layer, Redis-backed escalation, billing tied to plans.TypeScript · pgvector · RedisCASE STUDY
WHAT YOU GET
- Operator console scoped to the roles that actually use it
- Review and approval queues with full audit trail
- Bulk actions with dry-run previews before anything is written
- Role-based access wired to the same permission model as the product
- Keyboard shortcuts for the paths used dozens of times a day
- TypeScript
- Next.js
- Postgres
- Redis
- YAML/git content
THE ARTIFACT
IS THIS THE RIGHT FIT
- Someone on your team is doing a repetitive job in a spreadsheet
- An automated system needs a human check before it writes
- Support or ops keeps asking engineering to run queries
- A workflow better solved by an off-the-shelf tool you have not tried yet
- A dashboard nobody has agreed the metrics for
QUESTIONS
Should this be a build or an off-the-shelf tool?
Off-the-shelf, if one fits — we will say so. Custom is worth it when the tool has to reach into your own data model and permission system, which is exactly where generic admin panels stop being useful.
Do internal tools need the same quality bar as customer-facing ones?
The same engineering bar, a different design bar. Type safety, audit trails, and permissions matter more, because these tools write to production. Visual polish matters less than density and keyboard speed.
Can you build the admin side of an existing product?
Yes, and it is a common starting point. It uses the same schema and permission model as the product, so it is usually the fastest useful thing we can ship into an existing codebase.
Got something in this shape?
A scoped sprint starts at €5,000 and runs two to four weeks. Every engagement is priced before work starts.
