Work
9 min read


In this piece
When did low-code stop being a compromise?
Low-code did not become the future on the day someone built a website by dragging a box onto a canvas.
Visual tools have existed for decades. Templates have existed for decades. Content management systems, form builders, spreadsheets, and desktop database software were already helping people create useful systems without beginning from a blank code file.
What changed was not the existence of abstraction.
What changed was the amount of the job that abstraction could responsibly carry.
For a long time, visual building came with an implied trade: you could move quickly or you could have control. You could create the first version yourself or build the serious version with developers. You could choose convenience or professional quality.
That trade has not disappeared. Every platform still has boundaries. But during the 2010s, a set of tools began to make the old bargain less accurate. They combined visual interfaces with structured data, responsive layout, cloud infrastructure, reusable components, integrations, deployment, permissions, and ways for professional developers to extend the result.
Low-code stopped looking like a shortcut when it started becoming a system.
The idea is older than the label
Software development has always moved through layers of abstraction.
Machine code gave way to assembly languages. Higher-level languages let programmers express more with fewer instructions. Frameworks packaged recurring decisions. Cloud platforms reduced the need to operate physical infrastructure. Each layer made some forms of work easier by deciding or hiding more underneath.
Low-code belongs to that same history.
The difference is partly who can use the abstraction. Instead of only helping experienced programmers work faster, visual platforms bring designers, operators, marketers, subject-matter experts, and founders closer to the act of building.
That does not mean everyone suddenly becomes an engineer. It means the distance between understanding a problem and creating a working response becomes shorter.
By 2011, Bubble’s founders were working on a visual system for building functional web applications rather than only brochure sites. Bubble’s own history notes that “no-code” was not yet a clear category when the work began; website builders and content systems existed, but a visual tool for application logic, data, and workflows was a different ambition. Bubble’s origin story
Webflow, founded in 2013, approached another boundary: giving visual builders direct access to responsive web design and production rather than treating the visual canvas as a mock-up that still needed to be recreated in code. Webflow describes its first decade as part of the no-code and visual-development movement and frames the product around the building blocks of the web itself. Webflow’s company history, Webflow’s account of its first decade
In 2015, Microsoft introduced PowerApps around a related organisational problem. Employees understood local business processes, but creating mobile, connected software for those processes usually depended on scarce development resources. Microsoft positioned the platform as a way to let people closer to the business need build applications while retaining connections, access controls, and room for professional development. Microsoft’s 2015 PowerApps announcement
These products did not invent visual building. They helped make the category credible by expanding what happened after the first screen looked right.
A prototype is not a platform
Early visual tools were often judged by what a user could place on a page.
Could you add text? Create a form? Choose a template? Move an image? Publish without FTP?
Those capabilities were useful, but they did not solve the full problem of maintaining a serious digital product or website. The hard questions appeared later:
Can the design adapt across screen sizes?
Can content be structured instead of manually duplicated?
Can multiple people work without destroying consistency?
Can the system connect to external data and services?
Can teams manage access and publishing responsibility?
Can developers extend what the visual tool does not support?
Can the result be monitored, revised, and governed after launch?
Low-code became strategically interesting when platforms began answering enough of those questions inside one environment.
The shift can be compressed into five layers:
Interface → Logic → Data → Delivery → Governance
A visual interface is the visible beginning. Logic determines what happens. Data gives the system memory. Delivery turns the project into something people can reliably use. Governance allows a team to change it without losing control.
The more of this sequence a platform can support, the less useful it becomes to dismiss it as a toy.
The first change: visual work moved closer to production
Traditional digital workflows often divide representation from implementation.
A designer creates an image of the website. A developer interprets it. Differences emerge because the design tool and the browser obey different rules. Responsive behaviour, content edge cases, animation, accessibility, and performance arrive as implementation details—often after the central visual decisions have already been approved.
Visual development reduces that gap.
In Webflow, for example, the builder is not merely arranging an image of a page. It is working with concepts derived from HTML structure and CSS layout, then publishing to the web. That does not guarantee good structure or accessible output; a visual tool can make poor decisions easier too. But it changes the artefact under discussion from a picture of the site to the site itself.
This matters because feedback becomes more honest.
You can resize the page, test real content, inspect a hover state, and feel the pace of an interaction before handing the idea to another discipline. The visual decision and the production constraint meet earlier.
For agencies like Stixe, this is one reason Webflow became more than a delivery tool. Strategy, content, design, and implementation could stay in contact for longer instead of moving through a one-way handoff.
The value was not “designers no longer need developers.”
It was that fewer decisions needed translation before they could be tested.
The second change: visual tools gained logic and data
A landing page builder becomes much more useful when it gains structured content. An app builder becomes much more useful when it can connect actions, rules, data, and permissions.
This is the point where low-code stops being mostly about appearance.
Modern Power Apps, for example, combines visual app creation with data connections, workflow logic, Dataverse, custom connectors, and programmatic extension for professional developers. Microsoft’s documentation describes it as both a rapid environment for business apps and an extensible platform. Power Apps overview
The presence of a language inside a low-code platform is revealing. Microsoft introduced Power Fx as a formula-based language because point-and-click interfaces are useful for assembling flows, but real systems often need logic that would become awkward as a maze of visual connections. Its design draws on the familiarity of spreadsheet formulas while remaining open to more advanced expressions. Microsoft’s Power Fx overview
That is not a failure of low-code.
It is an admission that abstraction has levels.
A good platform does not pretend complexity has vanished. It lets people begin at a higher level, descend when the problem requires it, and involve specialists where the risk becomes consequential.
The third change: the platform carried more of the boring work
Building software is not only writing the feature people see.
It includes hosting, deployment, authentication, backups, updates, monitoring, browser behaviour, permissions, performance, integrations, and the maintenance of everything around the feature.
Much of low-code’s practical value comes from standardising this surrounding work.
When a team publishes a Webflow marketing site, it is also choosing a managed hosting and content environment. When it creates a Power Apps solution, it can use established organisational identity, data, and policy systems. When it builds on Bubble, the visual logic and data model run inside a hosted platform.
This can reduce operational burden. It also creates dependency.
The platform decides part of the architecture, pricing, limits, release cadence, and migration difficulty. A team gains speed partly by accepting decisions it did not make.
That is the real low-code trade—not serious versus unserious, but custom control versus managed constraint.
Sometimes that trade is excellent. A marketing team should not need to operate a bespoke publishing stack merely to test a landing page. An internal operations team may prefer a governed platform connected to existing company data over a custom application it cannot maintain.
Sometimes the trade is wrong. A product with unusual performance requirements, deep custom logic, strict portability needs, or a highly specialised interface may outgrow the platform’s assumptions.
Low-code became credible not because those boundaries disappeared, but because more teams learned to evaluate them against the actual job.
The fourth change: extension replaced the purity test
The least useful debate asks whether a project is “really” no-code.
Real projects mix layers.
A Webflow site may use its CMS and visual layout system while connecting to third-party services through APIs. Webflow’s developer documentation includes data APIs, webhooks, apps, and Designer extensions—evidence that the platform expects developers to expand the visual environment rather than remain outside it. Webflow developer documentation
A Power Apps project may begin with standard connectors, then add a custom API or a component created by a professional developer. A Bubble application may combine visual workflows with plugins and external services.
This hybrid model is not a compromise layered on top of low-code.
It is one of the reasons low-code works.
The visual layer handles repeatable structure. Code handles the edge that is genuinely specific. Specialists spend less time rebuilding solved infrastructure and more time on the part that differentiates the system.
The strategic question becomes: where does custom code create unique value, and where does it merely recreate a capability the platform can carry more cheaply?
AI did not invent the future. It changed the interface again
Natural-language generation has created another abstraction layer.
Instead of constructing every element or formula manually, builders can describe an intended result and receive a starting point. Power Apps now includes natural-language and AI-assisted creation. Webflow has introduced AI-assisted site building inside its visual environment. Bubble describes an emerging combination of AI generation and editable visual systems.
It is tempting to see this as the end of low-code: if a prompt can generate code, why use a visual platform?
But generation solves only part of the lifecycle.
The difficult work begins when the first version needs to be understood, corrected, governed, extended, and maintained by more than the person who prompted it. A visual system can make the generated result inspectable to people who would be lost inside an unfamiliar codebase.
AI lowers the cost of beginning.
Low-code can lower the cost of continuing.
So when did the compromise end?
It did not end on one date, and it did not end for every kind of project.
The change happened gradually as visual tools moved through five thresholds:
they represented real production behaviour rather than static mock-ups;
they combined interface work with logic and structured data;
they carried more deployment and infrastructure responsibility;
they supported collaboration, permissions, and ongoing publishing;
they allowed specialists to extend the system when abstraction reached its limit.
By the late 2010s, enough platforms had crossed enough of those thresholds that “we used low-code” stopped explaining the quality or seriousness of the result.
It only explained part of the implementation choice.
The right evaluation is the same one we should apply to any technical system:
Does it fit the problem?
Can the team understand and maintain it?
Are its constraints acceptable?
What happens when the organisation or product changes?
Which risks have been removed, and which have merely moved into the platform?
Low-code is not the future because code no longer matters.
It is the future because software keeps moving towards higher levels of expression—and because more people can now participate in turning knowledge into working systems.
The compromise did not disappear.
We simply became better at choosing which complexity deserves to remain ours.