Every app in the suite — retirement planners, the Excel add-in, Google Sheets — runs on the same Dockerized FastAPI platform. Here's what that actually buys you.
The entire backend ships as a single Docker Compose stack — FastAPI, Redis, Postgres — so standing up a new environment or shipping a change is a build-and-restart, not a deployment project.
Adding a brand-new capability doesn't mean a rewrite. A new Python function dropped into the right folder is auto-discovered and instantly callable from Excel, Google Sheets, the chat interface, and the API — no manual registration. A new gated web app is one app.mount() line plus a database row. That's the difference between a multi-week integration and a same-day one.
The Excel add-in, the Google Sheets client, and every web app in this suite all call the same FastAPI backend — the same function registry, the same AI routing, the same authentication. A calculation validated once behaves identically everywhere it's used.
That also means a bespoke build doesn't start from zero: a new client interface (a custom dashboard, an internal tool, a different spreadsheet platform) can be layered on top of infrastructure that already works, instead of re-implementing the logic underneath it.
The AI layer routes across Anthropic, OpenAI, Google Gemini, Groq, and AWS Bedrock out of the box. But the same routing also speaks to Ollama-compatible endpoints — meaning an organization's own internally hosted or air-gapped model can sit behind the exact same interface as any commercial provider, with no code changes, just a configured endpoint.
That matters most for firms that can't send client data to a third-party API at all. The model changes; the app built on top of it doesn't.
This is the part users never see, and the part that keeps the whole suite fast and affordable to run.
Every AI request is hashed by model + prompt and cached in Redis. A repeated question returns instantly instead of re-spending tokens on an answer already computed — with an in-memory fallback if Redis is unavailable.
Requests are classified by task type — quick lookup, financial analysis, complex reasoning, coding — and routed to the right-sized model for that task, with an ordered fallback chain if a provider is unavailable.
Every call is priced per-token against an actively maintained cost catalog, with output budgets capped by task type — a one-line lookup doesn't get billed like a multi-page analysis.
This is the same infrastructure a bespoke build or white-label deployment would run on — nothing to stand up from scratch.
Talk to us about a partnership →