Skip to content

Comparison

Low-code and no-code vs Custom development

Visual platforms let you assemble working software quickly, often without professional developers. Custom code takes longer to start and has no ceiling. The deciding questions are how complex the logic will become, how many people will use it, and how long it has to live.

What the choice is actually between

The promise of low-code and no-code platforms is that software can be assembled rather than written: drag components onto a screen, connect a data source, describe the logic with rules and formulas, and publish. For a large class of problems that promise is kept. Internal tools, approval flows, simple data-entry apps and connections between common products are built this way every day, faster and more cheaply than they would be in code, and often by the people who understand the process best.

The two terms get used loosely, so it is worth separating them. No-code platforms are designed so that someone with no programming background can build an application entirely through visual configuration, and the platform decides what is possible. Low-code platforms aim at a mixed audience that usually includes professional developers, offering visual building plus the ability to write code where the visual tools stop. In practice the line blurs and many products sit in between. Custom development, also called traditional or full-code development, means engineers writing the application in a general-purpose language and framework and owning every layer of it.

Our position should be clear before you read further. Yarqat writes custom software for a living, so a page concluding that you should always write code would be predictable and of little use to you. We also set up hosted automation tools for clients where a ready-made connector does the job, and our advice is sometimes that a low-code tool is enough. The honest answer to this comparison depends on where your problem will be in two years rather than where it is today, and most of this page is about predicting that.

The short answer

Use low-code or no-code when the application is internal, the logic is moderate, the users are a known group, and speed matters more than a perfect fit. Approval workflows, departmental trackers, simple portals, data collection and glue between products you already own are the platforms’ home ground. In that territory they beat custom code on time and usually on cost, and the people closest to the process can change the application themselves without waiting in a development queue.

Choose custom development when the software faces customers or sits at the centre of the business, when the logic is complex and will keep growing, when performance or scale matters, when you need integrations the platform does not offer, or when per-user licensing across a large or external audience would make the platform the expensive option. Also choose it when you need to own the result. Being able to move the application, inspect it, test it properly and hand it to any competent engineer is worth a great deal over a system’s lifetime, and most visual platforms do not give you that.

The pattern that works for many organisations is sequential rather than either-or. Prove the idea quickly on a platform, learn what users actually do, and rebuild the parts that outgrow the platform in code once their shape is known. That works when it is planned: the data kept clean and ideally outside the platform, the business rules written down, and the rebuild triggered by specific signals rather than frustration. It fails when a prototype quietly becomes a critical system nobody owns, which is the most common way low-code goes wrong.

Side by side

DimensionLow-code and no-codeCustom development
Who can build itBusiness users and analysts on no-code platforms; developers and technically minded staff on low-code ones. The pool of potential builders is far wider than for code.Professional engineers. A smaller and more expensive pool, and usually further from the process than the people who would build it on a platform.
Speed to a first working versionVery fast for problems that suit the platform, often days for a useful internal app. Sign-in, hosting, forms and data storage come ready-made.Slower to start, because the scaffolding has to exist first. Modern frameworks, managed services and AI-assisted coding have narrowed the gap considerably for experienced teams.
Ceiling on logicFormulas, rules and visual flows handle moderate logic well. Heavy branching, intricate calculation and complex state become hard to read, hard to test and fragile to change.No practical ceiling. Complex logic is expressed in a general-purpose language, organised into modules and covered by automated tests.
Performance and scaleFine for departmental use. High data volumes, heavy concurrent use and latency-sensitive features meet limits you can work around but not fix, because the runtime belongs to the platform.Tunable at every layer: queries, caching, infrastructure and architecture. Performance problems are yours to cause and yours to solve.
IntegrationsExcellent for systems with a ready-made connector, which on mainstream platforms is a long list. Anything without one ranges from a custom connector to a dead end.Anything with an interface can be connected, including legacy systems, unusual protocols and partners’ bespoke APIs, at the cost of writing and maintaining each connection.
User experienceShaped by the platform’s components. Fine for internal tools where function matters more than polish; harder for customer-facing products where the interface is part of the brand.Whatever you design, on web and mobile, and accessible to whatever standard you set.
Pricing modelUsually per user, per app, per run or by consumption, with higher tiers for some connectors or features and separate terms for external users. Check the current rate card at your expected user count.Engineering time to build and change it, plus hosting that scales with load rather than headcount. More expensive up front, and often cheaper per user at scale.
Vendor lock-inHigh on most platforms. The application exists only inside the product, and many tools offer no way to export it as code you could run anywhere else.Lower. You own the source code and choose where it runs. The dependency moves to frameworks, cloud services and the people who understand the codebase, all of which can be managed.
Testing and change controlVaries widely. Enterprise platforms offer separate environments and deployment pipelines; many lighter tools make it easy to edit the live app directly, which is fast and risky.Version control, code review, automated tests and staged releases are standard practice, and they are what make frequent change safe.
MaintenanceThe platform maintains the runtime, hosting and its own security. You maintain the apps, and an app nobody remembers building is still yours to maintain.All yours, or your supplier’s: dependencies, frameworks, infrastructure and security updates. A real continuing cost that needs a budget.
Governance and visibilityThe central risk. Because building is easy, apps appear across the organisation without review of data access, security or ownership, unless the platform is governed on purpose.More visible by default, because the work passes through engineering. The risk runs the other way: a long backlog pushes people towards unofficial tools.
Data modelOften assembled quickly on spreadsheets, lists or the platform’s own tables, and grown without much design. Fine for small apps, painful when volumes grow or the app has to be rebuilt.Designed, versioned and migrated explicitly, in a database you choose and can query directly.
Skills and handoverPlatform-specific. Easy to find for the largest platforms, harder for niche ones, and the knowledge frequently sits with one enthusiastic builder.General-purpose skills in mainstream languages and frameworks, a large hiring pool, and a codebase any competent engineer can read.
Natural fitInternal tools, workflows, prototypes, departmental apps and connections between common products.Customer-facing products, core systems, complex or high-volume logic, and anything expected to live and grow for many years.

Choose Low-code and no-code when

  • The application is internal and the users are known. Approval flows, request forms, inspection checklists, asset registers, onboarding trackers and team dashboards are the platforms’ natural territory. A few dozen colleagues using a well-built internal app do not need a bespoke interface, and the speed advantage over code is decisive.
  • The person who understands the process can build it. Much of the cost of custom software is translation: a specialist explains the process to an engineer, who builds what they heard. When an operations lead or analyst can build and adjust the tool directly, that translation disappears, and a change takes an afternoon instead of waiting for the next sprint.
  • You already have a platform that can do the job. Many organisations have access to a low-code suite through a wider subscription, Microsoft Power Apps and Power Automate alongside Microsoft 365 being the common example, often working with data held in SharePoint. Using what you already have, inside a security model your IT team already manages, is often the most economical route. Check what your current licences actually include before assuming it is free.
  • You need to find out whether the idea is worth building. A working prototype in front of real users answers questions no specification can. If the platform version proves the idea, you rebuild later with a clear brief. If it disproves it, you have spent days rather than months finding out.
  • The logic is moderate and stable. Forms, validation, routing, notifications, simple calculations and status changes are expressed well by visual tools. If the whole process fits on one page and is not expected to become much more complicated, the platform’s ceiling is unlikely ever to matter.
  • You are connecting products that already have connectors. Moving data between common SaaS tools when something happens, keeping records in step, sending notifications and creating tasks is exactly what integration platforms such as Zapier and Make, or the automation tools inside larger suites, are built for. Writing and hosting code for the same job is usually poor value.
  • Engineering capacity is the bottleneck. When the development backlog runs months ahead, a governed low-code platform lets the business solve its smaller problems itself and keeps engineers on the work that needs them. That is a sensible division of labour, provided the platform is governed rather than left to grow wild.
  • The application has a short or uncertain life. Tools for a campaign, a project, a temporary process or an event rarely justify engineering investment. If the app will be retired within a year, the platform’s lock-in and ceiling are largely beside the point.
  • The user count will stay small. Per-user licensing is economical for a team or a department. For a tool used by a defined group of staff that will not grow into the thousands, the subscription is likely to stay well below the cost of building, hosting and maintaining an equivalent.

Choose Custom development when

  • The software faces customers and represents the business. Customer portals, products you sell, and anything where the interface and responsiveness shape how people see you need the control that code provides. Platform components that are perfectly good for internal use look and behave like platform components, and customers notice.
  • The logic is complex and will keep growing. Pricing engines, scheduling and allocation, multi-step calculations, detailed permissions and rules with many exceptions become unreadable in visual flows long before they become difficult in code. If the domain is going to deepen every quarter, start where depth is cheap.
  • You need scale or performance the platform cannot promise. Large data volumes, many concurrent users, heavy processing and latency-sensitive features run into platform limits you cannot tune past. In code, every layer can be measured and improved.
  • The audience is large or external. Per-user pricing that is modest for fifty staff can become the largest cost in the project for thousands of customers or partners. Check whether the platform has separate terms for external users, and model the cost at the scale you expect, not the scale you have.
  • You need to own and move the result. If the application is a long-term asset, you want source code in your repositories, deployable to infrastructure you choose, testable with standard tools and readable by any competent engineer. A platform app is configuration inside someone else’s product, and it goes wherever that product goes.
  • The integrations are unusual. Legacy systems without modern interfaces, partner APIs with non-standard authentication, file-based exchanges, hardware and real-time data streams are routine in code and awkward or impossible on platforms that depend on a connector library.
  • Testing and audit are non-negotiable. Regulated logic needs automated tests, reviewed changes and a clear history of who changed what and why. Software engineering workflows provide that as standard. Some enterprise low-code platforms come close; many lighter tools do not.
  • You have already hit the ceiling. If the team spends more time working around the platform than building on it, with external scripts bolted on, data copied out for processing and performance complaints nobody can fix, the platform has stopped being the cheap option. That is the signal to plan a rebuild of the parts that hurt through custom software development, rather than adding one more workaround.

No-code, low-code and where the line actually falls

The labels are marketing categories as much as technical ones, so it helps to describe what each kind of tool lets you do. No-code tools are built for people who do not write software. Everything happens through visual configuration: tables, forms, drag-and-drop screens and if-this-then-that automation. Spreadsheet-database hybrids such as Airtable, integration tools such as Zapier and Make, and visual web app builders such as Bubble are well-known examples. The ceiling is the platform’s feature set. If the platform cannot do something, neither can you.

Low-code platforms aim at a mixed audience that often includes professional developers. They offer the same visual building, plus a way to write code where the visual tools stop: custom functions, scripts, components or calls to external services. Enterprise platforms such as OutSystems and Mendix sit here, as do developer-focused internal tool builders such as Retool. Microsoft Power Apps spans both ends, with a formula language, Power Fx, that business users can learn and extension points for developers. Large business platforms also embed low-code tools for building on their own data, Salesforce and ServiceNow being familiar examples.

The distinction matters for two reasons. The ceiling is higher on low-code, because you can drop into code when you need to. The lock-in is usually similar, because that code runs inside the platform, against its runtime and data model, and does not come with you if you leave. A newer category complicates the picture: AI app builders that generate a whole application from a written description. These produce real code, often exportable, which changes the lock-in calculation, but they share the central no-code risk that the person who built the application may not understand how it works.

Custom development is the reference point for all of these. Engineers write the application in a general-purpose language and framework, keep it in version control, test it with standard tools and deploy it to infrastructure they choose. It is slower to start, and its only ceiling is the team’s skill and the budget.

Speed, and where it really comes from

The speed of low-code platforms is real, and it comes from what they hand you before you start. Sign-in, hosting, a database, form controls, an approval engine and a publish button already exist. On a typical internal app that scaffolding is a large share of the work, and the platform makes it disappear. A first version of a request-and-approve tool can be in users’ hands within days.

That advantage is front-loaded. Each additional feature on a platform tends to cost a little more than the last, because it has to fit around the platform’s model and around the workarounds already in place. In code the early effort is higher, but a well-structured codebase keeps each new feature roughly as costly as the one before. Simple apps never reach the point where those two curves cross, which is why low-code wins for them. Applications that keep growing usually do reach it.

The gap at the start has narrowed, too. Mature web frameworks, managed authentication services, hosted databases, component libraries and AI coding assistants mean an experienced team can stand up the scaffolding of a conventional application much faster than was typical a few years ago. Platforms are still quicker for the simplest apps. For anything moderately complex, the difference in time to a first version is smaller than vendor demonstrations suggest, and the difference in time to the tenth version can favour code.

The honest way to measure speed is across the life of the application. Ask how long the first version will take, and then how long the twentieth change will take, after the original builder has moved on and the requirements have grown. That second number is the one most comparisons leave out, and it is usually the one that decides whether the choice was right.

Who builds it, and who is still there to maintain it

The most attractive promise of these platforms is that the people who understand a process can build its software themselves. Staff who build applications without being professional developers are often called citizen developers, and when it works it removes the slowest part of software delivery, which is explaining the problem to somebody else. An operations manager who can fix a form or add a step to an approval flow in an afternoon is a genuine asset.

The weakness is continuity. Citizen developers have other jobs, change roles and leave. Their applications stay behind, often undocumented, sometimes running under a personal account, and occasionally critical to a process nobody realised depended on them. Platforms maintain their own runtime and security, but nobody maintains your app unless you assign someone to. Platform changes, such as a retired connector or altered behaviour, can quietly break an app whose builder is no longer around to notice.

Professional developers working on low-code platforms meet a different problem. The skills are platform-specific, the tooling is less flexible than they are used to, and practices they rely on, such as reviewing changes line by line and running automated tests, may be awkward or missing. Some enterprise platforms handle this well. Many lighter tools do not, and good engineers tend not to stay long in roles built entirely around them.

Whichever route you take, the rule that prevents most failures is the same: every application in use has a named owner, a documented purpose, and a successor if that owner moves on. For custom software the ownership question is who maintains the code, and it is usually asked. For platform apps it is who maintains the app, and it is asked far less often than it should be.

The ceilings: complex logic, performance and integrations

Platform ceilings are rarely a hard wall. They behave more like a slope, where each step beyond the platform’s comfortable territory costs more than the last and the workarounds accumulate. It is worth knowing where the slope starts in the three areas that cause most rebuilds.

Logic first. Visual flows and spreadsheet-style formulas handle forms, routing, notifications and simple calculations well. As branching multiplies, they become harder to read than code expressing the same thing, and much harder to review: you cannot easily see what changed between two versions of a diagram, or write a unit test for one branch of a flow. Complex pricing, allocation, scheduling and permission rules are where this bites, and the result is a form of technical debt that is harder to pay down than its equivalent in code.

Performance next. The runtime belongs to the platform, so you cannot tune it. Platforms set limits on how much data an operation processes, how long an automation may run and how often it may call other systems, and some only work efficiently when a query can be handed down to the underlying data source. These limits rarely show in a pilot with a few hundred records and a handful of users. They show at production volumes, when an app that felt quick becomes slow and the only fixes available are workarounds rather than optimisations.

Integrations last. Mainstream platforms ship long lists of connectors, and if every system you need has a good one, integration is a platform strength. The difficulty is the system without one: a legacy application, an unusual partner API, a file drop, a piece of hardware. Some platforms let you build custom connectors, which helps. Others leave you stuck, or push you towards a separate service written in code anyway, at which point you are maintaining custom software and a platform app side by side.

Lock-in and the economics of per-user pricing

Platform pricing comes in a few structural shapes, often combined: per user per month, per app, per automation run or task, by consumption of compute or storage, with higher tiers for premium connectors or features, and separate arrangements for external users such as customers or partners. Exact prices and plan boundaries change often, so check the current rate card. The structure is what matters for planning, because it decides how the cost grows.

For a small team on a few internal apps the cost is usually modest, and well below what building and hosting equivalent software would cost. It grows with the things that grow when an app succeeds: more users, more runs, more data, more connectors. An app that began as a departmental tool and spread across the organisation, or one opened up to customers, can move from the cheapest option to the most expensive without any single decision causing it. Model the cost at the scale you hope to reach, and agree in advance what level would prompt a rethink.

The lock-in is structural. On most platforms the application exists only as configuration inside the product. The data can usually be exported; the screens, logic and automations generally cannot be turned into code you could run elsewhere. Leaving means rebuilding the application, and that rebuild is the real exit cost. Some AI app builders and a few low-code platforms do generate exportable code, which is worth checking if portability matters to you.

Three habits keep the exit affordable. Keep important data in a system you control, such as a proper database or an established system of record, rather than in the platform’s own tables, so a rebuild only has to replace the application layer. Write the business rules down outside the platform, in plain language, as you build. And review the cost and the dependency once a year, while switching is still a choice rather than an emergency.

Governance and shadow IT

Shadow IT is software adopted or built without the knowledge of the people responsible for security and data. Low-code and no-code tools did not invent it, since spreadsheets and personal cloud accounts were doing the same long before, but they make it far easier to build something substantial without anyone in IT knowing. That is both the opportunity and the risk.

The risks are specific. Customer or employee data copied into an app nobody has reviewed. Automations running under one person’s credentials, which stop working when that person leaves or changes their password. Connectors sending data to services the organisation has never assessed. Business-critical processes running on an app with no owner, no backup and no record of how it works. None of these is unique to low-code, and all of them become more common as building becomes easier.

Banning the tools rarely works. Demand for small applications does not disappear; it moves to spreadsheets, personal accounts and tools nobody can see at all. The more effective approach is to provide a governed platform and make it the easy option: separate environments for experimenting and for production, data policies controlling which connectors may be used together, an inventory of apps and their owners, and service accounts rather than personal ones for anything important.

Governance should also define a route upwards. When an app becomes important to many people, handles sensitive data or starts hitting the platform’s limits, there should be a known path for it to be reviewed, properly supported or rebuilt by engineers. A good deal of business automation work begins at exactly that point: a process that has proved its value on a platform and now needs to run reliably at a larger scale.

AI-assisted coding and the changing cost of custom code

AI coding assistants have become a normal part of many engineering teams’ work. Tools such as GitHub Copilot, Cursor and Claude Code suggest code, write tests, explain unfamiliar codebases and carry out multi-step changes under an engineer’s direction. This affects the comparison on this page, and it is worth being careful about exactly how.

What has changed is the cost of writing routine code. The scaffolding of a conventional application, data-entry screens, integrations against documented APIs, test cases and repetitive changes can be produced faster by an experienced engineer working with these tools. That narrows the speed advantage platforms held for simple and moderately complex applications, and it lowers the point at which custom code becomes the economical choice.

What has not changed is the cost of everything around the code. Someone still has to understand the problem, design the data model, decide how the system behaves when things go wrong, review what was generated, secure it, host it, monitor it and maintain it for years. Generated code that nobody understands is a liability in the same way as a platform app nobody understands. The tools make good engineering practice faster. They do not replace it, and they make poor practice faster too.

The platforms are adding AI assistance of their own, and AI app builders that turn a description into a working application now sit between the two categories. For prototypes and throwaway tools those builders can be remarkably quick. For software that has to be maintained, the usual questions apply: who understands it, who owns it, and what happens when it needs to change. The boundary has moved rather than vanished. Custom development is now a reasonable option for smaller problems than it used to be, provided the team using these tools has the engineering discipline to own what they produce.

Prototype on a platform, then rebuild what outgrows it

The most common sensible path is sequential. Build the first version on a platform, put it in front of real users, learn what they actually do, and rebuild in code the parts that outgrow the platform once their shape is clear. A platform prototype is often a better specification than any document, because people have used it. Treated as an MVP, it answers whether the idea deserves engineering investment before that investment is made.

The path works when it is planned from the start. Keep the data model clean and, where you can, keep the data somewhere other than the platform’s own tables. Write the business rules down as they are decided. Agree in advance which signals will trigger a rebuild: user numbers that push the licence cost past an agreed level, an external audience, performance complaints that cannot be fixed, a regulatory need for proper testing and audit, or the discovery that one person is the only one who understands the app.

When the rebuild comes, rebuild the part that hurts rather than everything. Move the data to a proper database first if it is not already in one; many platforms can read from an external database, so the existing app keeps running against it in the meantime. Then rebuild the heaviest workflow in code, run it alongside the platform version, move users across and retire the old flow. Parts of the platform app that still fit can stay where they are. The screens and the documented rules carry over as a specification. The platform logic does not, and it should be read for rules rather than translated step by step.

The move occasionally runs the other way, and that is legitimate too. A custom internal tool nobody maintains, built for a process that has since become standard, may be better replaced by a platform app or an off-the-shelf product. The test is the same in both directions: put each application where the people who will own it can maintain it safely, at a cost that matches what it is worth to the business.

How we help

Common questions

What is the difference between low-code and no-code?

No-code platforms are designed for people who do not program. Everything is built through visual configuration, and what is possible is limited to what the platform offers. Low-code platforms provide the same visual building plus the ability to write code where the visual tools run out, such as custom functions, components or calls to external services. Low-code is usually aimed at a mixed audience including professional developers, and it has a higher ceiling. Many products sit between the two, and both usually keep your application inside the platform.

Is low-code cheaper than custom development?

For small internal applications with a limited number of users, usually yes, often by a wide margin, because the platform supplies hosting, security and scaffolding and the app is quick to build. The economics change with scale. Most platforms charge per user, per app, per run or by consumption, so the cost rises as the app succeeds, while custom software costs more up front and scales mainly with hosting. For large or external audiences, complex logic or long-lived core systems, custom development is often cheaper over the application’s life.

Can low-code applications scale?

Within limits that depend on the platform, and those limits matter more than the marketing suggests. Enterprise low-code platforms are built for substantial workloads, while lighter no-code tools are designed for smaller ones. Common constraints include caps on how much data an operation processes, how long automations run and how often they call other systems. Because the runtime belongs to the platform, you can work around these limits but not tune past them. Test with realistic data volumes and user numbers before committing a growing application.

What are the main risks of low-code and no-code platforms?

Three stand out. Lock-in, because the application usually exists only inside the platform and leaving means rebuilding it. Cost growth, because per-user and usage-based pricing rises as the app spreads. And ownership, because apps built quickly by busy staff often end up undocumented, running under one person’s account and critical to a process nobody mapped. Governance addresses the third: an app inventory, named owners, separate environments, data policies and service accounts. The first two are managed by modelling cost at scale and keeping data somewhere you control.

Will AI coding tools replace low-code platforms?

Probably not, but they are shifting the balance. AI coding assistants help experienced engineers write routine code faster, which narrows the speed advantage platforms held for simpler applications and makes custom development viable for smaller problems. They do not remove the cost of designing, reviewing, hosting and maintaining software, and code nobody understands is a liability whoever wrote it. Platforms still give non-developers a governed way to build, which coding assistants do not. Meanwhile the platforms are adding AI features, and AI app builders sit somewhere between the two.

Can we export a low-code app and turn it into custom code later?

Usually not directly. Most platforms let you export your data, but the screens, logic and automations exist only as configuration inside the platform and cannot be turned into code you could run elsewhere. A few low-code platforms and some AI app builders do generate exportable code, so check before you build if portability matters. In practice, moving to custom code means rebuilding, with the working app as the specification. That is much easier when the data lives outside the platform and the business rules were written down along the way.

Should professional developers use low-code tools?

Sometimes. Developer-oriented low-code tools are very effective for internal admin panels, dashboards and back-office screens over existing databases and APIs, where building the same thing in code is repetitive work with little value. They are a poor fit for core products and complex logic, where developers depend on version control, code review and automated testing that many platforms support only partly. A sensible split is to use platforms for internal tooling around the product and to write the product itself in code.

How do we know when an app has outgrown its platform?

The signs are consistent. Licence costs have risen with users or usage to the point where building looks cheaper. People spend more time working around the platform than building on it. Performance complaints keep arriving and the only fixes are workarounds. The app now needs to serve customers or partners, or to pass an audit that requires proper testing and change history. Or one person is the only one who understands it. Any one of these is a reason to plan a rebuild of the affected part; several together mean it is overdue.

Weighing Low-code and no-code against Custom development?

Tell us the volumes, the compliance position and who would run it day to day. We will tell you which one we would choose for your case, and say so plainly when it is not the one we sell.

  1. 01A senior engineer reads it. Not a form queue, and not an account manager.
  2. 02We reply either with questions or with a straight answer that we are not the right fit.
  3. 03If it looks like a fit, a technical call with the person who would actually run the delivery.
  4. 04Then scope, effort and risk in writing, before anyone signs anything.

Two fields required. We reply to real enquiries. No list, no sequence.