What the fleet runs on. 33 components across 7 layers — the frontend the team looks at, the databases the agents read, the models they think with, and the box they all live on. Nothing exotic: the interesting part of this stack is how few moving parts it has.
os_tech_stack, cross-checked against a live container sweep. One registry-vs-reality gap below.
Every other component on this page is either honestly green or honestly planned. This one is the exception, and it matters more than its single row suggests.
probed=13 ok=11 down=2 key_failing=['svc_n8n_made']. The n8n-twng-n8n-1 container is up (6 days), and its Postgres is healthy — so this is not a dead container. Something between the probe and the service is failing, and it has been flagged as a key target, meaning MEDIC is designed to escalate on it.
Why this is the most consequential tool row on the pageThree live agents name n8n as their harness — MADE BRAIN, KFSH EXEC TRAINER and PULSE. And 14 of the 32 unbuilt agents name n8n as their candidate harness. If n8n is unreliable, nearly half the roadmap is built on sand, and the three live ones are already exposed.
Decision neededDiagnose svc_n8n_made before committing further roadmap to n8n. If it can't be made reliable, the harness choice for those 14 should be revisited — several would work as cron-worker or Edge Functions instead.
WhatLovable is the primary frontend host and IDE. Vercel is registered as "secondary hosting / fallback" at health amber. Meanwhile the real serving layer for everything on this site — and for the regen apps, the client microsites, the agent services — is nginx + Traefik on bc-made, which does not appear in os_tech_stack at all.
Why it's amber not redNothing is broken. But the registry describes a two-host world (Lovable + Vercel) while the machine runs a three-host world (Lovable + Vercel + 27 containers behind Traefik). The most load-bearing piece of infrastructure Made has is missing from its own stack inventory.
os_tech_stackabsentActionAdd Traefik, nginx and Docker as infrastructure rows. Clarify whether Vercel is still a real fallback or a leftover.
Read top-down: what the team touches, what holds the data, what does the thinking, what it runs on, how it's watched, and what's outside the walls.
| Component | Role | Vendor | Note |
|---|---|---|---|
| Lovable | IDE + cloud host | Lovable | Known trap: the Secrets panel only injects Edge Function env vars — VITE_ build-time vars need code-level fallbacks or they silently arrive undefined. |
| React | UI framework | Meta | — |
| Vite | Build tool | Evan You | — |
| Tailwind CSS | Utility CSS | Tailwind | — |
| shadcn/ui | Component primitives | shadcn | — |
| @made-sci/design-system | MADE design tokens | MADE-SCI | Own package — the reason apps are on-brand by construction rather than by review. |
| Lucide React | Icon library | Lucide | — |
| Component | Role | Note |
|---|---|---|
| Supabase (made-ai-os) | AI OS master | Agent registry + config. Joe's authoring loop — canonical. |
| Supabase (Reporting) | Auth + data | SFDC and HubSpot land here. xyopyttkhoxvnyeyijzb |
| Supabase (BioCreative) | Auth + data | The BC hub side of the bridge. |
| Supabase (Revenue Forecasting) | Data warehouse | — |
| Supabase (Monday Sync) | Data sync | Monday boards mirror. |
| Supabase (Contracts) | Agreement DB | — |
| Supabase (RFP Intake) | Lead capture | — |
| Edge Functions | Serverless compute | Supabase/Deno. The harness for SCOUT and BIBLIOGRAPHER. |
| PostgreSQL (Neon) | Analytics read replica | — |
| Component | Role | Note |
|---|---|---|
| Claude Sonnet | Primary LLM | Generation across the fleet. SSO AGENT uses claude-sonnet-4-5; SCOUT uses claude-sonnet-5. |
| Claude Haiku | Fast / cheap | The validator tier — cheap enough to run as a second opinion on every generation. See SSO AGENT. |
| Firecrawl | Web scraping | Competitive intel, event scraping, SCOUT's company-site pass. |
| Langchain | LLM orchestration | Planned — under evaluation for RAG, not adopted. Correctly labelled; nothing depends on it. |
litellm-made (up 3 weeks) is the model proxy in front of Anthropic, and brain-api-made is the RAG service. Both are load-bearing and both are missing from os_tech_stack — same class of omission as Traefik in A-01.| Component | Role | Note |
|---|---|---|
| GitHub Actions | CI/CD | — |
| FFMPEG | Video/audio processing | Avatar and training pipeline. |
| launchd + Node.js | Agent scheduling | Local Mac agents. Worth flagging: anything scheduled on a laptop is off when the laptop is. |
| Vercel | Secondary hosting | Amber. Registered as fallback. See A-01 — unclear whether still real. |
| Component | Role | Note |
|---|---|---|
| Eyes Dashboard | System health | Status at a glance. Fed by MEDIC's monitor_* tables. |
| Build Tracker | Deploy tracking | Commit + status log. |
| Agent Cost Ledger | Per-run cost tracking | Planned. The one future item with a live consequence — see below. |
Current stateCost caps exist, but per agent. SSO AGENT enforces daily and monthly ceilings itself. FORGE carries a $15/month cap. SCOUT has a budget guard inside the Edge Function. Each is disciplined in isolation.
What's missingNobody can answer "what did the fleet cost last month, and which agent drove it." RESOLVER's last nightly run logged cumulative_cents: 0 — which either means it did no model work, or means the accounting isn't wired. Without a ledger, you cannot tell those apart.
planned and the caps that matter are enforced locally. The risk is slow drift, not a live failure.When to build itBefore the specialist ring goes live. Five new scheduled agents each doing model work is the point where per-agent caps stop being sufficient.
Missing from os_tech_stackTraefik · nginx · Docker · LiteLLM (litellm-made) · the brain API (brain-api-made) · the Transfer database itself. All six are running right now and several are load-bearing.
Why it matters modestlyAn inventory that omits its own serving layer and its own model proxy can't be used for capacity planning, incident response, or a vendor review. It's a good catalogue of choices and an incomplete catalogue of dependencies.
ActionOne pass to add the infrastructure rows. Low effort, and it makes the layer counts meaningful.
| Component | Role | Note |
|---|---|---|
| Salesforce | CRM source | Pipeline truth. RED line: the OS never writes here. |
| HubSpot | Marketing automation | Email + form data. 26 forms catalogued; individual submissions are not stored anywhere queryable — the finding that blocks BEACON. |
| Monday.com | Project management | OKR + board sync. |
| ElevenLabs | Text-to-speech | Training narration. |
| HeyGen | Avatar generation | Avatar videos. |
| Vimeo | Video hosting | Training delivery. |
Almost everything the fleet does runs on one VPS (bc-made, 27 containers behind Traefik) against Supabase for state and Claude for judgment, with Firecrawl for anything on the open web. That is a deliberately small surface, and it is the reason a single person can hold the whole system in their head.
The complexity that does exist is almost entirely in the seven database boundaries — which is a consequence of Made's real CRM history (Salesforce and HubSpot both being partial truth) rather than a design choice. It is also why identity resolution is the most engineered part of the skill library.
The invariant: the OS reads Salesforce, HubSpot and Monday. It writes proposals, briefs, messages and notes. It never writes pipeline, price or revenue. Every agent inherits that boundary.