From idea to working system in an afternoon
A walkthrough of how a small ops team replaced three SaaS tools with a single Turbofy workspace — schema, pages, and dynamic logic in one place.
Jens Dressler
By Turbofy®
Last month an operations lead at a mid-size manufacturer told me they were paying for three SaaS tools that did almost the same thing. A form builder for the intake. A spreadsheet sync for the data. A no-code app for the customer-facing handoff. Each one solid in isolation. Together: a maze.
We sat down at 2pm. By dinner they had a single Turbofy workspace replacing all three.
Here is what that afternoon actually looked like.
1. Schema first, everything else second
We wrote down what the business actually tracked — three tables, a dozen fields each. No frameworks, no migrations, no opinions about hosting.
const Customer = builder.table("Customer", { name, email, region });
const Inquiry = builder.table("Inquiry", { topic, status, customerId }, { firstParent: Customer });
const Quote = builder.table("Quote", { lineItems, total, status }, { firstParent: Inquiry });
Three tables. Done.
2. A page is just a route plus blocks
The ops team needed:
- An internal inquiry queue for the team
- A public quote viewer for customers, behind a one-time link
- An admin customer detail view
Each one is a Turbofy page. Each page is a list of blocks. Each block reads from the schema — no API plumbing, no GraphQL files, no resolvers to define.
3. The logic lives next to the data
The hard part was always the cross-stitch — if the inquiry is high-value, route it to the senior rep; if a quote sits unread for 48h, send a nudge.
In Turbofy this is a dynamic field on the record itself. A few lines of server-side JavaScript that runs whenever the record is read or changed. No microservice. No Lambda. No deploy step.
const hot = $$self.value > 50000;
({ priority: hot ? "high" : "normal" });
That's it. The logic ships with the data.
4. Sharing is the same as building
The public quote viewer is just a page with one specific block type and a public-read directive on the Quote table. Same workspace. Same data. The customer sees only what we mark visible.
No separate frontend project. No second deployment. No CORS to configure.
What actually shipped that afternoon
- Three tables, schema validated and live.
- Five pages — three internal, two customer-facing.
- Twelve block instances composed from seven block types.
- One dynamic field that handled the inquiry-routing rule.
- Zero pieces of infrastructure provisioned.
The three SaaS subscriptions got cancelled the next morning.
What I keep coming back to: the bottleneck was never the model or the framework. The bottleneck was the number of separate places a small team had to keep their thinking. Turbofy collapses those places. The work that's left is the work that actually matters.
Want to try the same exercise on your own ops? Start a workspace and the first three apps are on the house.