App development Denmark

App development in Denmark with product thinking and technical discipline.

UnderStack turns app ideas into products people can use: web apps for teams and customers, and mobile apps where the device itself matters.

If you would prefer to talk through more details, we can find a time that works.

01

Who it is for and what it fixes

An app is rarely the goal. The goal is that a technician can close a job on site, that a customer can follow an order without calling, that a member can book and pay in one place, or that a field inspector can record findings with photos while offline. Companies come to us in three situations. Some have an internal process that has to work on a phone or tablet, away from a desk. Some want to give customers a self-service product instead of email and phone support. And some are founders with a product idea who need a first version that can be put in front of real users. The common mistake in all three is to start with a feature list and two native apps. We start with the one task the app must make easier and choose the smallest product that does it.

02

Web app or native app

This is the decision with the largest effect on cost. A web app runs in the browser on every device, is updated instantly and needs no store approval, so it is the right first product for most business cases. A native app is justified when the product depends on the device: camera and text recognition, on-device storage, notifications, sensors or working without a connection. Our own Android products, UnderStack Pocket AI and Life, are native for exactly that reason: they keep personal data on the phone and use the camera, OCR and local storage.

  • Web apps for internal teams, with roles and permissions
  • Customer-facing apps: booking, ordering, accounts and status
  • Mobile-first tools for field work and inspections
  • Android apps with local-first data handling
  • Product prototypes for testing an idea with real users
  • Backends and APIs shared by web and mobile clients

03

From idea to released app

The phases are short, and each one produces something you can put in front of users.

  1. 1Product scope: we define the user, the core task and what the first release leaves out. You receive a written scope, a platform recommendation and a quote.
  2. 2Flows and prototype: the main screens are designed as a clickable prototype. You receive a prototype you can test with future users before development is paid for.
  3. 3Development: the app and its backend are built in iterations. You receive a test version after each iteration, in a preview environment or as a test build on the device.
  4. 4Release: final testing, store listing where relevant, and production deployment. You receive the released app; for mobile apps the store review is part of the schedule.
  5. 5Iteration: features are added from what users actually do, not from the original wish list.

04

Technology and technical decisions

Web apps are built with React and TypeScript, with a Node.js backend and PostgreSQL, the same stack as our business software, so an app can share data and logic with an existing system. For mobile products we decide early where the data lives. Local-first apps store information on the device and ask for explicit permission before using the calendar, contacts, camera or files, which simplifies privacy because the data does not leave the phone. Apps that need shared data use an API with authentication and role-based access. We keep the first version to one platform unless there is evidence that the second is needed, because two native codebases double the maintenance.

React
TypeScript
Node.js

05

After release: updates and maintenance

An app is not finished at release. Operating systems and browsers change, users report things nobody predicted, and the first real usage shows which features matter. We plan for that from the start: the first version is built so that changes are cheap, issues are reported through a ticket portal with an urgency level, and improvements are delivered in small releases rather than large rewrites. For web apps an update reaches every user immediately. For mobile apps each update passes store review, so fixes are grouped and scheduled.

06

Budget and timeline

Cost depends on the platform, the backend, the number of user roles, the design depth and the integrations. A web app with one clear workflow is a different project from a native app with offline storage and store distribution. We do not publish price ranges. The guide to software development costs in Denmark describes the drivers that also apply to apps, and you receive a quote for a defined first release before development starts. For mobile apps, plan time for store review in addition to development.

Questions and answers

Should we build a web app or a native mobile app?

Start with a web app unless the product depends on device features such as the camera, offline storage, notifications or sensors. A web app is cheaper to build and maintain and works on every device from the first day.

What does it cost to develop an app?

The price follows the platform, the backend, user roles, design and integrations. We define the first release, quote it, and extend the app based on use. We do not give a figure before the scope is known.

Have you released mobile apps yourselves?

UnderStack has built two Android products, UnderStack Pocket AI and Life. Both are completed and currently in Google Play review. They are described on the cases page.

Can the app connect to our existing systems?

Yes. Apps usually read and write data through an API. If your current system has one, the app uses it. If not, we build a small backend between the app and the system.

What does local-first mean, and when is it useful?

Local-first means the app stores its data on the device and works without a server. It is useful for personal or sensitive information and for work in places with poor coverage.

Can you help test a product idea before we commit to a full build?

Yes. The prototype phase exists for that. A clickable prototype or a narrow first version is tested with real users, and the result decides what is built next.