AstroFabric started life as a dashboard: charts, feeds, galleries, queues. It worked. It was even pretty. And every week of building it made one thing clearer: the people we want to serve were never going to live in another tab.
Developers embed capability. They call functions, they wire webhooks, they hand tools to AI assistants. The dashboard sat between our engine and their code like a lobby you are forced to walk through, so we removed the lobby. One commit deleted the pages, the components, the report builders and the feed machinery. What remains on the web is a console: keys, usage, webhooks, billing, approvals.
What survived
- The data layer: company and person lookups, waterfall enrichment, verification, signal feeds, list and audience operations, each a metered endpoint with a JSON schema and provenance on every value.
- The agent layer: outcome-shaped endpoints that plan across the catalog and return typed lists, records and reports, with a hard credit cap per run and an approval gate on every external write.
- The standing missions: list refreshes, signal monitors and audience rebuilds that run on our schedulers and report to your webhooks and channels.
The lesson we keep relearning: an interface you have to visit is a cost, and an interface your code can call is an asset. We chose the asset.
Every playbook on this blog ships as a runnable mission.
Open a workspace and the playbook library is waiting - describe the outcome and the agents carry it end to end, on your plan's monthly credits.