On this page
In short
- Low-code fits simple, departmental apps: forms, lists and approvals for a known group of users, built on data the platform handles well.
- A custom web app fits when the logic is real, several systems are involved, many people use it, or you need full control over data, testing and change.
- Before choosing, check four things: how licensing scales with users, where the data lives, who maintains the app, and what the platform can connect to.
- Plan the exit either way. Low-code apps generally can't be exported as code that runs outside the platform, so outgrowing one usually means a rebuild.
What low-code is good at
Low-code platforms let people build apps by assembling screens, forms and workflows visually, with formulas and connectors in place of most hand-written code. Microsoft Power Apps (with Power Automate for workflows) is the one many mid-sized companies already have access to through Microsoft 365. Others, such as Retool, OutSystems, Mendix and Appian, have their own strengths, hosting options and licensing models.
They're at their best when the app is mostly data entry and review, the users are a known group inside the company, and the data sits in something the platform handles natively, such as a SharePoint list or the platform's own database. A departmental request tracker, an equipment checkout log or a simple approval form can be live quickly, often built by someone close to the process. Our guide to replacing shared-drive document approvals looks at where document approvals sit on that line.
Low-code and custom side by side
How a low-code app and a custom internal web app compare
Who builds it
- Low-code platform
- A power user, IT staff or a platform specialist
- Custom web app
- Developers, in-house or from a firm
How cost scales
- Low-code platform
- Mostly licensing, often per user or per app, with premium tiers for some features
- Custom web app
- Mostly the build and maintenance; hosting grows with usage, not with headcount
Where the data lives
- Low-code platform
- In the platform's cloud storage or lists, or reached through connectors and gateways
- Custom web app
- In a database you choose and control, in your cloud account or data center
Logic and screens
- Low-code platform
- What the platform's components and formulas support
- Custom web app
- Whatever the process needs, including complex rules and custom interfaces
Integration
- Low-code platform
- The platform's connectors; anything else through custom connectors or APIs
- Custom web app
- Direct access to databases and APIs, within your security rules
Testing and change control
- Low-code platform
- Platform environments and packaging; varies by product
- Custom web app
- Source control, automated tests, code review and a deployment pipeline
Users outside the company
- Low-code platform
- Usually a different product or license
- Custom web app
- Designed in from the start if needed
Leaving
- Low-code platform
- Apps generally can't be exported as code that runs elsewhere; leaving means rebuilding
- Custom web app
- You own the code and can move hosting or developers
| Question | Low-code platform | Custom web app |
|---|---|---|
| Who builds it | A power user, IT staff or a platform specialist | Developers, in-house or from a firm |
| How cost scales | Mostly licensing, often per user or per app, with premium tiers for some features | Mostly the build and maintenance; hosting grows with usage, not with headcount |
| Where the data lives | In the platform's cloud storage or lists, or reached through connectors and gateways | In a database you choose and control, in your cloud account or data center |
| Logic and screens | What the platform's components and formulas support | Whatever the process needs, including complex rules and custom interfaces |
| Integration | The platform's connectors; anything else through custom connectors or APIs | Direct access to databases and APIs, within your security rules |
| Testing and change control | Platform environments and packaging; varies by product | Source control, automated tests, code review and a deployment pipeline |
| Users outside the company | Usually a different product or license | Designed in from the start if needed |
| Leaving | Apps generally can't be exported as code that runs elsewhere; leaving means rebuilding | You own the code and can move hosting or developers |
Check 1: how licensing scales with users
Low-code pricing is usually tied to people: per user, per app or per use. That works well for a small team and can change the economics when the app spreads to a whole plant, a sales force or occasional users who open it twice a month. Custom apps have the opposite shape: most of the cost is up front, and adding users mostly doesn't change it.
- What's included vs. premium. With Power Apps, the limited rights included in some Microsoft 365 plans are meant for Microsoft 365 data and standard connectors such as SharePoint and Outlook. Premium connectors such as SQL Server, custom connectors, the on-premises data gateway and Dataverse need premium licensing for every user of the app. Microsoft revises these terms periodically, so confirm the current rules for your plan.
- Who needs a license. Every person who uses the app, not only the people who build it, usually needs appropriate licensing. Count occasional and future users, not just today's pilot group.
- Storage and capacity. Some platforms license database storage, API calls or workflow runs separately. Ask what happens when the app's data or activity grows.
- Renewals. Licensing is a recurring cost the business will see every year. Price it over several years alongside a custom build.
Check 2: where the data lives
An app is only as trustworthy as the place its data is kept. Ask where the records will physically sit, who can reach them outside the app, and how they're backed up.
- Lists are not databases. A SharePoint list is convenient but isn't designed for large volumes, relational data or heavy reporting. Power Apps also has delegation limits: queries it can't pass to the data source only work on a limited number of rows (500 by default, adjustable up to 2,000), which can make results quietly incomplete as a list grows.
- The platform's own database. Options such as Dataverse behave more like a real database, but they sit in the vendor's cloud under the vendor's licensing, and reporting on them from other tools goes through the platform.
- On-premises data. Reaching SQL Server or Oracle in your data center typically needs a gateway: software you install on a server, keep patched and keep running. It's part of the app even though it isn't in the app.
- Audit and retention. If the process needs an audit trail of who changed what, or records kept for a set period, confirm how the platform does that before you build, not after an auditor asks.
Check 3: who maintains it
Many low-code apps are built by one capable person in a department. That's a strength while they're there and a risk when they move on, because the logic often lives in formulas and flows that nobody else has read. Settle ownership before the app goes live:
Ownership questions for any internal app
- Who is the named owner, and who is the backup?
- Is there a separate test environment, or are changes made directly in the live app?
- Are versions kept, and can a bad change be rolled back?
- Is the logic documented somewhere other than inside the app?
- Does IT know the app exists, what data it touches and which connectors it uses? (Power Platform's admin tools, including data policies that control which connectors apps can use, help here.)
- Who handles platform changes, such as retired connectors or new licensing rules?
A custom app answers these with source control, automated tests, a deployment pipeline and a handover package. Our software handover checklist lists what that package should contain, whoever builds the app.
Check 4: what it can connect to
Low-code platforms are strongest when every system involved has a ready-made connector. The harder cases are the ones mid-sized companies tend to have: an ERP with a limited API, a line-of-business database, a plant-floor system or an older app with no API at all.
- Connector coverage. List every system the app must read from or write to, and check each against the platform's connectors, including whether the connector is standard or premium.
- Volume and speed. Connectors often have throttling limits and are designed for moderate volumes. Bulk imports, nightly syncs of large tables or near-real-time data can hit those limits.
- Complex writes. Updating several records across systems in one transaction, with rollback if a step fails, is hard to do reliably in visual flows.
- Security review. Connectors often run under a user's or a shared account's permissions. Check that the resulting access matches least privilege, as described in securing internal apps with SSO and least privilege.
If the app's main job is connecting systems, that's usually a sign it wants to be custom. Our guide to integrating two business systems when one vendor's API is poor covers doing that reliably.
Signs a low-code app has outgrown the platform
- Formulas and flows have become long enough that only one person dares to change them.
- Users report missing records, slow screens or timeouts as the data grows.
- Workarounds appear: exports to Excel, duplicate lists, or a second app to cover what the first can't do.
- Licensing costs have grown with adoption to the point where finance is asking about them.
- The process now needs external users, a mobile app with offline use, or integration the connectors can't provide.
None of these mean the original choice was wrong. A low-code app that proved a process is valuable is a good starting point for a custom build: the screens, fields and rules are already known. Treat it the way you would a department spreadsheet or Access database: inventory what it actually does, then move the data with a repeatable, reconciled migration.
Using both
The choice isn't all-or-nothing. A few combinations work well:
- Prototype in low-code, build custom. Use a quick low-code version to confirm the process and the fields, then build the lasting version once the requirements are proven.
- Custom core, low-code edges. Put the data and business rules in a custom app with a proper API, and let departments build simple forms or approval flows against that API.
- Low-code for the simple, custom for the critical. Keep departmental trackers in the platform, and build the handful of apps that carry key processes, many users or sensitive data as custom apps.
Making the call
Take this to the department and IT
- How many people will use the app now, and how many in two or three years, including occasional users?
- Which licenses would each of them need under the platform's current terms, and what premium features does the design rely on?
- Where will the data be stored, how much of it will there be, and how will it be reported on and backed up?
- Which systems must the app connect to, and does each have a suitable connector?
- Who owns and maintains the app, and how are changes tested before they reach users?
- Does the process need external users, offline mobile use or an audit trail?
- If the app outgrows the platform, what would moving off it involve?
Weighing low-code against a custom build?
Tell us what the app needs to do and which systems it touches. On a scoping call we'll talk through whether a custom web app makes sense, and if it does, what a fixed-price build would cover.
Not ready to talk yet? Draft a project brief first
Our experience includes full-stack web applications in React, Next.js, TypeScript and Node.js, database design and optimization on SQL Server, PostgreSQL and MySQL, and OAuth and OIDC sign-in. Projects are senior-led, quoted at a fixed price against a written scope, and you own the code. See web application development for what we build.
Sources
- Licensing overview for Microsoft Power Platform and Power Apps licensing FAQs (Microsoft)
- Understand delegation in a canvas app (Microsoft)
- Data policies (Microsoft)
See it applied
- Illustrative sample. Not client work.See a sample scope for an internal tool →An invented request and approval portal that replaces a spreadsheet and email, on an existing SQL Server database with the company's existing single sign-on.
- Illustrative sample. Not client work.See a sample handover package →The handover index for an invented plant-floor dashboard: repositories, infrastructure as code, the pipeline, runbooks, a data dictionary, the credential handover list, alerts, known limitations and sign-off.
Share this guide
Related services
- Web application development Internal web apps, portals and dashboards built with React, Next.js and TypeScript.
- Custom software development Internal tools and integrations built around the systems you already run.
- AWS cloud & DevOps Hosting, deployment pipelines and monitoring in your own AWS account.