A working diagnosis

What are you tired of?

Twelve specific dysfunctions of the modern software development stack. For each one, the architectural principle in Frames Studio that removes it — not manages it, not smooths it, removes it.

Tap any pain point to see the fix.

01 Tired of watching CI/CD churn for eight minutes to change a button label.

The pain

It is 4:47 PM on a Thursday. You have changed the color of a button. You are watching a CI pipeline run for the seventh minute of the eight it will take before your change reaches the browser. This is not unusual. This is Thursday.

Why the industry accepted it

CI/CD exists because the file-based deployment model requires compilation, packaging, and orchestration. Every minute of that pipeline is compensating for the gap between the source you wrote and the artifact the server runs.

The principle that removes it

Deployment is an INSERT.

Code lives in the substrate as a row. Changing the button label is one INSERT into code_repository. The next request fetches the new row. There is no pipeline to run, no artifact to package, no cache to invalidate. The change is live the moment the transaction commits.

02 Tired of code living in files while data lives in tables — and the ORM between them being where every second bug is.

The pain

You debug a null-reference exception. The root cause is that a nullable column in Postgres maps to a non-nullable field in the C# model, and the migration that was supposed to backfill it silently skipped 2,300 rows.

Why the industry accepted it

The separation of code and data is a 1970s accident, from a time when storage was cheap and RAM was expensive. Every ORM, migration tool, and DTO layer is compensating for that split. Half of every backend’s complexity is glue between two things that should be one thing.

The principle that removes it

Code and data belong in the same substrate.

Every artifact of every application — UI markup, business logic, schema definitions, configuration, tenant data — lives as versioned rows in the same database. There is no ORM because there is no gap for an ORM to bridge.

03 Tired of deployment being a release event instead of a keystroke.

The pain

The release calendar has a Wednesday deploy window. You finished the fix on Monday. It has waited 48 hours to reach a user, because deployment is a ceremony with a run book, an on-call, and a Slack channel.

Why the industry accepted it

File-based deployments carry risk proportional to their scope. Rolling changes together, gating them, and coordinating the release is the industry’s coping mechanism for how expensive a single deploy became.

The principle that removes it

Every change is a row. Every promotion is a click.

Because a change is one INSERT, promotion between environments is one UPDATE tenantid. There is no window, no batch, no ceremony. Ship the row when you finish the row.

04 Tired of paying three cloud vendors, four SaaS tools, and a DevOps consultant to keep a five-page application in production.

The pain

Your five-page internal tool has: a container registry, a Kubernetes cluster, an S3 bucket, a CDN, a queue, a secrets vault, a monitoring stack, a logging stack, an APM, and a DevOps consultant who understands how they connect. The application itself is 400 lines.

Why the industry accepted it

Each tool solved a real problem when isolated. The bill and the cognitive load appear only in aggregate, and by then everyone owns something.

The principle that removes it

One substrate. One dispatcher. One database bill.

Frames Studio applications run on a Flask process and a database. No registry. No cluster. No queue you own. No CDN in front of static assets that don’t exist. The five-page application costs what five pages should cost.

05 Tired of a Git repository only your five most senior developers can navigate.

The pain

A new hire asks where the login page component lives. The answer requires four folder traversals, one grep, and a Slack message to the person who wrote it in 2022. The repo is the map of the codebase, and the map is illegible.

Why the industry accepted it

Filesystems have no schema. Naming conventions and folder structures are the only way to enforce meaning, and every team’s conventions are a wiki page nobody reads.

The principle that removes it

The application’s structure is queryable, not compiled.

“Where is the login page?” is SELECT * FROM code_repository WHERE codename LIKE ‘login%’. The repository is a database. The database is indexed. The junior developer finds it in one query.

06 Tired of framework upgrades that break your application twice a year.

The pain

React 18 came out. Next.js 14 came out. The app router replaced the pages router. Your team spent two sprints migrating. Then Next.js 15 arrived.

Why the industry accepted it

Frameworks are the only thing between raw platform APIs and productive developers, and framework authors have every incentive to change them. The upgrade tax is the cost of not writing a framework yourself.

The principle that removes it

The runtime is the framework. And it doesn’t rev.

Frames Studio’s runtime is a dispatcher plus a schema. There is no framework layer to upgrade because there is no framework layer. The dispatcher was the same in 2008 as it is now. Your application does not break because the substrate does not change.

07 Tired of multi-tenancy being an afterthought bolted onto a single-tenant architecture.

The pain

Sales sold a multi-tenant deal. The app was written single-tenant. Now every query needs a tenant_id, every table needs a filter, every test needs a fixture, and someone is going to forget one of them in a way you will find out about from a customer.

Why the industry accepted it

Most applications start single-tenant because that’s what the tutorials cover. Multi-tenancy gets retrofitted, imperfectly, once revenue depends on it.

The principle that removes it

Tenancy is a column in the substrate, not a feature you add.

Every row in code_repository has a tenantid. The dispatcher’s single SELECT applies tenant precedence on every request. There is no bolt-on because it was never off.

08 Tired of staging environments that exist only to compensate for how slow production deploys are.

The pain

Staging drifts from production. Staging drifts from local. The bug you need to reproduce only shows up in production, and getting a test through to production takes 40 minutes.

Why the industry accepted it

Staging exists because pushing a bad artifact to production is expensive and slow to reverse. The environment is the safety net for the deploy cost.

The principle that removes it

Cheap deploys make staging optional.

When promoting a change is UPDATE tenantid, rollback is another UPDATE. The safety net doesn’t need to be an entire environment. Staging becomes a per-tenant preview, not a parallel universe.

09 Tired of onboarding a new developer taking two days because the local dev environment is its own product.

The pain

Day one, the new hire clones the repo. They install Node. They install a specific Node. They install Docker. They run docker-compose up. They read six pages of setup docs. They finish setup on day three. They ship their first commit on day nine.

Why the industry accepted it

Modern dev environments are microcosms of production, and production has become complex enough to require its own onboarding.

The principle that removes it

The interface belongs in the browser.

Frames Studio’s dev environment is a URL. Open the browser. Sign in. You are looking at the desktop your users see. There is nothing to install because there is nothing on your machine. Day one is the same as day one hundred.

10 Tired of “AI-native” being pasted onto every platform launched in the last twelve months as if it means something.

The pain

Every developer tool now claims to be AI-native. Most are file generators with an LLM in front. The AI writes code onto the same toolchain you already had. You still install the dependencies. You still wait for the build. AI-native was applied to marketing, not architecture.

Why the industry accepted it

Naming is cheap. Rearchitecting for AI is not. So most tools re-labeled.

The principle that removes it

Accelerators are tenants of the platform, not defining features of it.

Frames Studio’s AI component builder writes rows to code_repository. So does a human. So does an ETL job. The substrate does not care what wrote the row. If AI disappears tomorrow, the platform is unchanged. That is the difference between AI as a tenant and AI as a hostage situation.

11 Tired of rollback being an operational event instead of a SELECT statement.

The pain

The deploy broke prod. Rollback requires re-running the previous build, waiting for it, and verifying it deployed. Twelve minutes with the site down while a Slack thread coordinates who has the right permissions.

Why the industry accepted it

Because deployment is an event, rollback has to be an event. Symmetry demands it.

The principle that removes it

Rollback is a SELECT.

Every version of every artifact is a row in the substrate, ordered by createdat. Rolling back is asking for the second-newest row. It is ?version=previous on the URL. It is one query. The site was never down.

12 Tired of the gap between the whiteboard and production being measured in weeks.

The pain

You sketch a workflow on a whiteboard in a meeting. The architect maps it to services. The engineer scaffolds three repos. The DevOps engineer writes the pipelines. Six weeks later the workflow is live, and the business asks why it took so long.

Why the industry accepted it

Each step is legitimate work in a file-based world. The distance is real, and the industry has confused “this is hard” with “this must be hard.”

The principle that removes it

Describe it. See it. Ship it.

Type the description into the AI component builder. Watch the component appear on the desktop. Edit it in place. It is live. The whiteboard sketch and the production system are separated by one keystroke, not one sprint.

If any of these look like your Tuesday, watch the platform.

Ninety seconds. One take. Sign in, describe a component, watch it get built, ship it to production.