Founder letter
The value of constraints
Constraint as a design tool
When there is not enough
There is a version of building where you start with everything: the budget, the team, the runway, the infrastructure. Where you can reach for the best tool without thinking about cost, commission the best people without thinking about fit, and make decisions without consequence because the margin is always there to absorb the mistake.
That version does not exist for most builders, and in the long run, it is probably the worse version anyway.
When you are working with what you actually have, a small number of people, a specific set of tools, a hard deadline, a budget that does not flex, you are forced into a different kind of thinking. You cannot solve problems by adding resources. You have to solve them by thinking more clearly.
That pressure, genuinely applied, is one of the most useful conditions in which to do serious work.
The test constraints apply
A constraint does one thing very well: it eliminates the option of keeping everything. You cannot build every feature. You cannot serve every user type. You cannot use every framework or pursue every opportunity. The constraint makes you choose, and choosing is where most of the real thinking lives.
This is not a comfortable insight. The appeal of keeping options open is powerful, especially early in a project when possibility feels like momentum. But there is a difference between preserved optionality and deferred decision-making. Most of the time, "we haven't ruled that out yet" means "we haven't done the thinking required to rule it out."
Time constraints are the most ruthless version of this. A fixed deadline asks a question that cannot be avoided: if you can only do one thing before this date, what is it? The answer to that question, honestly given, tells you more about your priorities than any strategy document. It strips away the things you think matter and reveals the things that actually do.
Resource constraints work differently but achieve something similar. When the budget or the team size cannot grow, every choice has an opportunity cost that is impossible to ignore. Adding scope to one area means removing it from another. This enforces a discipline that abundance actively undermines: everything is a trade-off, and trade-offs require clear thinking about value.
The designer's version
In design and engineering, constraints have a specific reputation: they are where creativity begins rather than where it ends.
The cleaner formulation of this is that truly open briefs are often the hardest to answer well. When there is no restriction on colour, material, format, tone, or structure, the decision space is effectively infinite, and infinite decision spaces produce paralysis as often as they produce brilliance. The constraint is what makes the problem solvable.
This is observable in disciplines outside of software. Architects who work within awkward sites, tight budgets, or unusual planning rules often produce more interesting buildings than those working on blank canvases with generous allowances. The constraint forces a response that is specific to the problem rather than generic to the brief.
In product work, the equivalent is the constraint that forces a specific answer to a general question. "What should this screen do?" is nearly impossible to answer well without constraints. "What is the one thing a first-time user needs to understand from this screen, given that they will likely see it on a small mobile display with limited connectivity?" is tractable. The constraint converts an open question into a design problem.
What we have learned building within limits
Building within genuine constraints, not artificial ones imposed for philosophical reasons but real ones arising from circumstance, has been clarifying at MSG in ways that easier conditions would not have been.
Orbit is being built to handle the full commercial workflow of a product company: from early lead through to launched product. That scope is significant. Without hard constraints on what it addresses in each phase, the product would collapse under its own surface area. The constraint of "what does a specific user type actually need right now to close work" forces a level of specificity that broad ambition cannot. The operating surface grows because the foundation is precise, not because the brief is generous.
TUXX works in a version of this constantly. Building custom systems for client environments means working with what those environments already have: existing tools, existing teams, existing processes, existing technical debt. The constraint is not chosen; it is given. But working within it requires the kind of problem-specific thinking that is genuinely difficult to replicate when you can simply reach for a new dependency or a better toolchain. The solution has to fit the environment rather than ask the environment to change to fit the solution.
Benediction Lab operates with a different kind of constraint: research focus. Working on agents, memory systems and GUI control is a set of deliberate restrictions on the scope of inquiry. It would be easy to follow every interesting question that appears in the research literature. The constraint of a defined research direction means that findings compound rather than scatter.
Constraint as information, not obstacle
There is a reframe available here that is worth making explicit.
When something cannot be done because of a budget limitation, or a timeline, or a technical boundary, the instinct is to treat that as a problem to be overcome. Sometimes it is. But often, the constraint is information. It is telling you something about the actual scope of the problem, the actual priority of the thing you were going to do, or the actual value it carries.
A feature that cannot be built within the current development window without displacing something else is a feature whose relative priority is being tested by the constraint. If it wins that trade-off clearly, it gets built. If it does not win clearly, the ambiguity was already a signal.
This is not fatalism. It is not an argument for accepting every limit without pushback. Some constraints are worth breaking through: they are artificial, arbitrary, or the product of inertia rather than actual cost. The skill is in distinguishing between constraints that are load-bearing and constraints that are merely comfortable.
The load-bearing constraint is the one that, if removed, would not actually improve the quality of the outcome: it would just expand the number of options. The arbitrary constraint is the one that exists because no one has challenged it, and removing it would genuinely change what is possible.
Learning to tell the difference is one of the more underrated skills in building. Most teams get this backwards: they challenge the load-bearing constraints (the deadline, the scope, the cost) and accept the arbitrary ones (the process, the structure, the inherited tools) without examining either closely.
The essential from the optional
Perhaps the most direct test of a constraint is this: does it reveal what is essential?
If you must choose one thing, what do you choose? If you have one week instead of three, what does the week contain? If the budget is half of what was hoped, what survives the cut?
The answers are not always obvious in advance, but they are rarely arbitrary. They reflect a set of embedded priorities, about users, about quality, about what the product is actually for, that are often clearer under pressure than they are in planning.
The constraint does not create those priorities. They were always there. What the constraint does is force them into the open, where they can be examined, tested, and acted on.
Working with constraints is not the inferior version of building. In many cases, it is the version that produces the most considered, specific, and resilient outcomes. The limitation shapes the thinking, and the thinking, when it is honest, produces work that knows what it is for.
That is worth more than the alternative.