Full-lifecycle proof
We conceived, built and still run LutinRouge.
A complex multi-tenant SaaS platform, taken from a blank page to production and kept there ever since: specification, architecture, development, operations and front-line support, all of it ours.
We are not selling you nursery software. We are showing you what our delivery model produces when we own every decision and carry every consequence, including the two AI systems that now build and support it.
One product, five phases, no hand-offs
Jump to a phase, or keep scrolling
The product
An ERP for a business that runs on dates.
LutinRouge covers the full operating cycle of a nursery: enrolment, parent contracts, attendance, invoicing, staff management, and multichannel communication with families. Each subscribing setting runs in its own isolated tenant.
The difficulty is not the feature list. It is that every number reconciles to a date. Attendance is recorded against a day, contracts define hours per week, invoices are computed per month, and closures, absences and medical exemptions all move the arithmetic. At the end of the month it has to add up in front of a parent who will notice if it does not.
Phase 1 / 5 · Conceived
The specification is the deliverable.
There was no template to start from. The domain was modelled from nothing: what a contract is, how attendance relates to it, what an invoice may and may not charge for, which documents expire and what happens when they do, and who in a group operator is allowed to see whose data.
Childcare software looks simple from outside. It is a scheduling, billing and compliance system with no tolerance for being wrong, used by people who did not choose a career in software. That is decided in specification, not in code. An ambiguity left in a spec becomes a billing dispute with a parent eleven months later.
So specifications are written to be executable: precise enough that an agent can build against them without inventing behaviour, and structured enough that a human who has to sign off can actually review them. That standard is not an aesthetic preference. It is the precondition for everything in Phase 3. Agents cannot compensate for a vague requirement; they multiply it.
Phase 2 / 5 · Architected
Isolation, dates, and no convenient window.
A Symfony back end and API carry the domain. Flutter builds both mobile applications: the one staff use on the floor and the one parents hold to follow their child's day, message the team and receive invoices. Realtime messaging connects settings and families. The infrastructure is ours to run.
Three architectural constraints shaped the rest. Per-tenant isolation, because a group operator needs shared administration and roll-up reporting that never leaks between its own settings. The largest runs roughly twenty sites from one account structure. Billing that reconciles, because invoices are computed from contracted hours against recorded attendance and a parent notices an error immediately.
And time. The platform runs from mainland France to New Caledonia, French Guiana, Martinique, Algeria, Côte d'Ivoire, Senegal and Madagascar. Eight time zones means “today” is not a fact the server can assume: it has to be resolved per setting, on every query that touches a day. That is an architectural decision made once, early, and paid for in every date-bounded feature since.

Web · back office
LutinRouge Administration
Managers and owners
Everything that has to be right on paper. The setting is run from here — who is enrolled, what they contracted, what they owe, and whether the numbers reconcile at the end of the month.
- Enrolment
- Prospect requests, proposals, and the move to a signed contract.
- Contracts
- Weekly day patterns, amendments, copies, terminations — each with its own validity window.
- Attendance
- Clock-ins and corrections, deductible and non-deductible absences, occasional days.
- Invoicing
- Monthly generation from contracted hours, PDFs, payments and balances, SEPA mandates and direct-debit files.
- Occupancy & planning
- Children’s planning, staff planning, capacity and free places per section.
- Documents
- What each child and contract must provide, with expiry tracking.
- Reporting
- FILOUE and the statutory returns, occupancy, effort rates — colour-coded by who receives them.
- Structure
- Sections and capacities, closure calendar, news, partners.
Screenshot pending
Tablet · staff
LutinRouge Pro
Staff, on the floor
What happens during the day, recorded as it happens. Designed for one hand and ten seconds, often while holding a child — anything slower gets written on paper and typed up later, which is how days go missing.
- Attendance
- Expected, not expected, present, left — and clocking in or out with the time.
- Care
- Naps down and woken, nappy changes, meals.
- Transmissions
- The day’s log entries and photos, per child.
- Health
- Weight and growth tracking.
- Context
- Guardians’ contact details, birthdays, and what the day is meant to look like.

Phone · parents
LutinRouge Family
Parents
The same day, seen from the other side. Each nursery decides when parents see what staff record — in real time, at closing, at checkout, or the next morning — so the same entry has to arrive correctly under four different release rules, in order, with the right times on it.
- Journal
- The day as a timeline — arrival, departure, activities, photos, navigable by date.
- Siblings
- Switch between several children on one account.
- Contracts & invoices
- The contract and the invoices.
- The setting
- Its information, its news, and when it is closed.
- Account
- The guardian’s own details.
What the spread actually costs
Every territory below runs its own working day. The map is here to show the overlap: read across it and there is no common window in which the platform is idle everywhere at once.
Phase 3 / 5 · Built
AI writes the change. A human merges it.
Development runs through ATLAS, the delivery system we built for our own engineering: specialised agents driven through a fixed pipeline with mandatory human gates. A human merges. Always. ATLAS never merges, never pushes to a protected branch, never force-pushes, enforced as hard denials in a permission layer rather than as instructions in a prompt.
That matters more here than on most products. Every change reaches families' contracts, invoices and children's records, so the standard is not "does it work" but "can it be defended", and LutinRouge is one tenant among several the same pipeline serves.
Integration belongs to this phase rather than a later scramble: Stripe for billing, Twilio for the messaging channels families actually use, and a document pipeline that knows what expires and when.
Phase 4 / 5 · Operated
There is no hour when every nursery is closed.
We run it: infrastructure, deployments, incidents. Consultancies recommend architectures they will never have to operate. When a deployment goes wrong at seven in the morning, nurseries cannot open and parents cannot see their child's day, and it is our phone that rings.
The eight-zone spread above is also an operational fact: across those settings there is no hour when the platform is idle, so there is no natural maintenance window to hide a risky change in. Deployment has to be uneventful by design, which is a constraint on how Phase 3 works rather than a matter of choosing a quiet time.
In production
Read the screen.
Captured from the platform as it runs — a demo tenant, because the real ones hold children's records.
Contracts — what was agreed

Dashboard — what it computes

What was agreedPlanning hebdo
Each contract carries the weekdays it covers and the dates it runs between. The second contract alternates fortnightly, so the pattern itself depends on which week you are in.
What the platform computesprésence théorique − absences déclarées
The reconciliation, printed on the screen by the product: patterns resolved against the calendar, minus declared absences, closures and exemptions.
The two figures that must agreePrévu / Réel
Booked occupancy against capacity, and recorded occupancy against capacity. The manager plans on one and invoices on the other.
Phase 5 / 5 · Automated
It answers the easy questions and makes the hard ones faster.
A platform serving thousands of parent accounts receives questions all day, and they arrive on whatever channel the sender already uses: email, WhatsApp, SMS, voice notes, photographs of documents. Nobody installs a support portal to ask what time the crèche opens.
Weiwei is an n8n-orchestrated agent sitting across every inbound channel, working at two tiers with two different jobs. At tier 1 it answers — functionality, navigation, opening calendars, how-to — multimodal by necessity rather than ambition. At tier 2 it stops answering and assists: with direct access to platform data, it assembles the relevant contract, attendance and invoice context and proposes an answer, so the human replies faster and gets it right first time.
The three misses were all the same failure, which is more useful than three unrelated ones: ordinary behaviour written up as a confirmed bug. So the weakness is not in answering, it is in classifying, and the fix is a guardrail rather than a better model: describe the symptom, do not assert a bug or a priority, let triage decide.
The hard part was never the language model. The two tiers need opposite dispositions from one system: conservative to the point of unhelpfulness at tier 1, where a confident wrong answer about a medical document does real damage, and expansive at tier 2, precisely because a human validates before anything reaches a family.
And the point was never deflection. One in four requests never reaching a person means the team has time to talk to clients about the things only a person can do, the first work to disappear when a queue grows.
Why it matters to you
The same standard, a different regulator.
Five phases, one team, one product, and no phase handed to someone else. That is the claim this page exists to support, and the reason it can be checked is that the product is live and the numbers above are measured, not projected.
The disciplines it forces — correctness under time-zone spread, billing that reconciles, per-tenant isolation, uneventful deployment, and AI-assisted delivery that produces reviewable work rather than plausible work — are the same disciplines an airworthiness data platform or an export-control workflow demands. This is where they are proven at production scale, with real consequences, before they reach a certified environment.