BLUEHORIZON INNOVATIONS BlueHorizon Innovations
A brushed-steel workbench on a London studio build floor at 3pm, cold daylight raking across shipping glass

Work & Case Studies

Representative web and mobile builds from our studio

We are a small London studio, so this page shows the kinds of problems we take on and how the work was approached, rather than an endless logo wall. Each example describes the situation, the stack decision and what changed.

Eight representative builds · web, mobile and platform work

Delivery stages

  1. Spec
  2. Build
  3. Test
  4. Ship
A brushed-steel bench seen at an oblique angle from just off the floor, with two machined aluminium rails running out of frame

How to read this page

The problem, the stack, and what changed

None of the eight projects below started with a framework preference. Each started with a question about what the product was supposed to prove or replace, and the stack followed from that. In most cases the client's real problem was a process held together by manual work, and the software was the way of removing it.

Where a client prefers not to be named, the project is described without attribution. Some engagements answer a build question, some answer whether a build is needed at all — both are useful when you are judging whether our delivery style suits what you're planning. If you would rather start from capability than from a past project, our services list what we take on.

Case studies

Eight builds we can talk through

Read them as representative rather than exhaustive — each one stands for a class of problem we take on regularly. Every plate below carries the same five fields: the situation, the stack we chose, the work, what changed, and the caveat worth knowing.

Rebuild · Next.js

A booking platform rebuilt on Next.js

The client ran a services booking business on a website that had grown into something its original developer no longer maintained. Bookings were handled by a form that emailed someone, who then entered it into a calendar manually. We rebuilt the booking flow as a Next.js application with server-side rendering, a proper availability model and an admin view for the staff who had been doing the manual work.

Situation
A booking business running on an unmaintained site and a manual calendar entry.
Stack
Next.js with server-side rendering, an explicit availability model, and a staff admin view.
Changed
Staff stopped re-entering bookings; the informal scheduling rules they applied by hand moved into code.
MVP · Bubble, then code

A marketplace MVP on Bubble, then code

A two-person team wanted to test whether a niche marketplace had demand before raising money. We built the first version on Bubble, since a visual platform with a built-in database and workflows covers validation extremely well and gets to first users fast. Payments and messaging were deliberately manual at the start. When listings and transactions proved the model, we rebuilt the parts that needed to scale, kept the data model and behaviour we'd learned, and migrated.

Situation
A two-person team testing demand for a niche marketplace before raising money.
Stack
Bubble first for validation, then a code rebuild of the parts that needed to scale.
Changed
The MVP answered the question cheaply — no wasted build on an unproven model.
Mobile · offline-first

Cross-platform mobile for a field team

A facilities company had staff logging job completion on paper, then handing it to an office administrator to type up. We built a cross-platform mobile app with one codebase serving iOS and Android, offline-first, with photo capture attached to each job record. Offline behaviour was the bulk of the engineering, not the screens. The app syncs when signal returns, so a job logged in a basement doesn't vanish.

Situation
Paper job logs handed to an office administrator to re-type into an office system.
Stack
One cross-platform codebase for iOS and Android, offline-first, photo capture per job.
Changed
Jobs logged in a basement sync when signal returns; admin re-typing left the process.
Shared logic · Kotlin Multiplatform

Kotlin Multiplatform for a product with two faces

A product team had a working iOS app and a growing Android requirement, with no appetite for maintaining two full codebases. We moved shared business logic into Kotlin Multiplatform while each platform kept its native UI. It's a gradual approach by design, and that suited them: no big-bang rewrite, no lost month.

Situation
A working iOS app, a growing Android requirement, and no appetite for two full codebases.
Stack
Kotlin Multiplatform for shared business logic, native UI retained per platform.
Changed
Shared logic where it made sense, native UI where it mattered, no lost launch window.

Caveat: the middle path between pure native and full cross-platform UI is right for teams in this position, but it does assume Kotlin familiarity on the team or a budget to build it.

Internal tool · API-first

An internal dashboard that removed a spreadsheet

An operations team ran a key process through a shared workbook that had grown to sixteen tabs and broke roughly weekly. We replaced it with an API-first web application: a Postgres backend, a defined API contract, and a frontend built on components so new views didn't mean new styles. The contract came first, which meant we could build and test the backend independently.

Situation
A key operational process running through a sixteen-tab shared workbook.
Stack
Postgres backend, a defined API contract, and a componentised frontend.
Changed
The spreadsheet left the process; new views stopped meaning new styles.
Process · automated testing

Fixing a release process, not an app

A client came to us with an app that worked but shipped nervously. Testing happened in the final week, on whichever devices were nearby, and releases regularly needed a follow-up patch. We didn't touch the feature set. We introduced automated UI tests with Maestro for the critical flows, established a device matrix tied to their actual user base, and wrote a short release checklist including a tested rollback.

Situation
A working app that shipped nervously, tested in the final week on nearby devices.
Approach
Maestro UI tests for critical flows, a real device matrix, and a short release checklist with a tested rollback.
Changed
Release anxiety dropped because the process stopped depending on individual memory.
Regulated · audit trail

A web app for regulated data flows

A professional services firm needed a client portal where documents moved between parties with a clear audit trail. The constraints drove the architecture more than the features did: retention rules, access logging and a defined approval step before anything was shared. We built an API-first web application with the audit model designed before the interface.

Situation
A professional services firm needing a client portal with a defensible audit trail.
Stack
API-first web application; audit model designed before the interface.
Changed
Retention, access logging and the approval step became architectural facts rather than a later rebuild.
Prototype · fast tooling

Voice-led interfaces piloted on a prototype

One client wanted to explore voice as an input method for a hands-busy workflow. We built a browser-based prototype quickly using a cloud development environment to test the interaction before committing to an app build. It's a good example of using fast tooling for what it's good at: answering a design question cheaply.

Situation
A hands-busy workflow, and a client asking whether voice was a useful input at all.
Approach
A browser-based prototype built quickly in a cloud development environment.
Changed
The prototype answered the design question before any app build commitment.

What we look for first

The questions behind each project

Read left to right: what we tend to ask on the first call, and what the answer usually tells us about the build.

What happens today when this process runs?

Manual work, exports, or a shared file is often the honest answer.

Tells us whether the fix is a rebuild or a smaller move.

Who touches it, and how often?

The number of roles in the loop shapes the admin view and access model.

Small teams and large both fit; the shape of the tool changes.

What does the current setup cost you in a bad week?

Late bookings, lost entries, apologies to clients — real costs, not estimates.

Sizes the value of a fix against the cost of building it.

Is there a device or connectivity constraint in the field?

The Android spread across a field team is why offline-first is often the project.

Decides whether offline sync is a feature or the whole build.

What has to be provable — retention, access, approvals?

Compliance rules end up dictating the data model, not the screens.

Changes the order of work: model first, interface after.

Does this need to ship, or does it need to prove something first?

A prototype or a no-code MVP is often the right answer before a build.

The cheapest correct scope is the one the question actually asks for.

The first question we ask on a project call — how we open most engagements at the studio.
Top-down view of a brushed-steel studio bench with a closed matte notebook, a steel carabiner and a relaxed paracord cord

Named on request

Facilities operator, cross-platform field app

Named on request

Professional services firm, client portal with audit trail

Under NDA

Two-person marketplace team, MVP then code migration

We do not list client logos here — several of these engagements are described without attribution at the client's request, and a logo wall would misrepresent them as opt-in endorsements.

What these have in common

A process held together by hand, priced

The pattern shows up repeatedly: a business process living in a fragile shared file, or in someone's memory, until the cost of a rebuild is priced. The software is the way of removing the manual step — not the point of the engagement.

That framing tends to produce better builds than a feature list, because it makes the point of the project explicit before any technical decision.

How we'd approach your project

Describe the situation, not the feature list

If you want to judge fit, tell us what happens today, who does it, what goes wrong and what it costs. From there we can usually say whether it's a build, a rebuild, or something a cheaper tool should handle first. If we don't think we're the right studio for it, we'll say that too — a mismatched build is expensive for everyone involved.

Describe your project

The studio

1 Canada Square
London, England, E14 5AA

Monday to Friday
9:00 AM – 6:00 PM

+44 20 7837 4011
[email protected]