We're hiring Head of Marketing, and always listening for the next →

Web App Development: For the Part of the Business No Product Quite Fits

Next.js, React, TypeScript and the integrations underneath. We will also tell you when you should just buy something.

Built by a senior team in Ho Chi Minh City for clients across the US, UK, Australia and Europe. You own the repository from the first commit.

THE SERVICE

What web app development covers

A web application is software that runs in a browser and does a job, rather than a website that presents information. We build portals, assessment platforms, internal tools, dashboards and the integrations that tie existing systems together, typically in Next.js and React with TypeScript, with NestJS behind them. The work starts with establishing that building is the right answer at all, then ships one complete workflow into production before scoping the rest. You own the code, the documentation and the environments from the first commit.

Custom software is a liability until it is an advantage

Most business problems should be solved with software someone else maintains. Custom development is worth it when the process genuinely is your differentiator, when the integration between systems is the product, or when no vendor covers the workflow you actually run.

When that is true, we build it: portals, assessment platforms, internal tools, dashboards and the API work that ties existing systems together. Typically Next.js and React with TypeScript, because a typed codebase is far cheaper to maintain than a clever one.

The BVIS VAR reading assessment platform is a good example, a tool that had to exist because nothing on the market did the specific job. See the BVIS case study.

When to build, and when not to

BUILD WHEN
✓The process is the thing you are actually better at than your competitors. Encoding it in software makes the advantage durable.
✓The integration between systems is the product, and no vendor sits across all of them.
✓You are paying per seat for something that covers 30% of what you need, and the workarounds have become the process.
✓The data is the asset and you cannot get it out of the tool holding it.
BUY WHEN
→A vendor already covers the workflow and you are mostly objecting to the interface.
→The requirement is common enough that someone has built it better than you will, because they only build that.
→Nobody on your side will own the thing after launch. Software without an owner rots faster than most people expect.
→The honest reason for building is that procurement is slow. That is a procurement problem with a very expensive solution.

We run this assessment before scoping anything, and we have talked clients out of builds more than once. It costs us a project and saves a relationship, which is the better trade in both directions.

METHOD

How we actually do it

Scope hard, ship small.

01

Challenge the build before scoping it.

The first job is establishing that custom is genuinely warranted. We would rather lose the build and keep the relationship than ship software you did not need to own.

02

Scope to a thin first slice.

One complete workflow, end to end, in production. Real users on a narrow slice teach you more in two weeks than six months of specification, and it de-risks the rest of the budget.

03

Build on boring, typed foundations.

Next.js and React with TypeScript, conventional patterns, tests where they earn their keep. Interesting architecture is a maintenance cost paid by whoever comes next.

04

Plan for the handover from day one.

Documentation, environments and deployment set up so the thing is maintainable whether we run it or your team does. Ongoing help via hosting and maintenance.

The stack, and why it is deliberately dull

Next.js and React on the front, TypeScript throughout, NestJS behind it, with MongoDB or Postgres depending on the shape of the data, deployed on AWS. BVIS runs on exactly that.

None of this is novel, and that is the point. A typed codebase built on conventional patterns can be picked up by any competent engineer, which means you are not dependent on the specific people who wrote it, including us. Every unusual choice is a bill somebody pays later, usually the team that inherits it.

We write about this stack publicly rather than just claiming it, which is a reasonable way to check whether an agency actually uses what it says it uses.

FRONTENDReact, Next.js, Tailwind CSS
LANGUAGETypeScript throughout
BACKENDNestJS, Node
DATAMongoDB or Postgres, depending on the shape of the data
CMSWordPress, HubSpot, Sanity, Shopify, Strapi, Prismic
CLOUDAWS

OUR DEVELOPMENT PROCESS

How we develop

01

Strategy plan

Before anyone builds anything, we map what your site actually has to do: the content, the integrations, the things that absolutely cannot break. Most surprises in a build are just questions nobody asked early. We ask them early.

Technical auditTimeline planningStakeholder alignment
02

Component library build

We build a component system, and pages come out of it. Your team assembles new layouts from pieces that already match, without booking a developer to do it.

Design system translationReusable componentsVariables & design tokensStandardized patterns
03

Development

Your designs, implemented to the pixel: interactions, breakpoints, and the edge cases nobody briefs. If it looks right on your designer's screen, it looks right everywhere.

Custom developmentInteractions & motionResponsive layoutsIntegrations
04

Global & secure

Additional service

Multi-language architecture, regional content workflows, and security your compliance team can sign off on without a meeting: SOC 2, SSL, access controls.

Multi-language CMSLocalization workflowsSSL implementationSecurity auditsAccess controlsStakeholder alignment
05

Integrations & analytics

Additional service

A website is only useful once it talks to everything else. CRM, analytics, marketing automation: wired in during the build, when it's cheap, instead of after launch, when it isn't.

CRM integrationGA4 setupMarketing automationCustom API integrationsConversion tracking
06

QA & launch

Browsers, speed, accessibility: tested until there's nothing left to find. We launch when it's ready, and we're in the room while it goes live.

Manual QACross-browser testingSpeed optimizationLaunch coordinationPost-launch monitoring
07

Training & handoff

Live training, video walkthroughs, and documentation your marketers will actually open. The handoff is done when running the site feels unremarkable.

Live trainingVideo tutorialsDocumentationCMS guideOngoing support options

What you get

Deliverables, not adjectives.

✓A scoped specification with the case for building rather than buying
✓A working first slice in production, not a prototype
✓A typed, tested codebase with conventional patterns and documentation
✓Integrations with the systems you already run
✓Deployment, environments and a handover that stands up without us
✓A real cost basis for the rest of the build, derived from the first slice rather than estimated against a wish list
✓Repository access from the first commit, not at the end
✓An honest recommendation not to build, if that is where the assessment lands

Who this works for

Your operation runs on spreadsheets that outgrew themselves.

Usually the highest return per pound spent, and usually the least glamorous project in the building.

You are paying per seat for software that covers a third of the job.

The workarounds have quietly become the process.

Your systems do not talk to each other.

Sometimes the app is really an integration layer wearing a user interface.

You need something that genuinely does not exist.

Rarer than most people think, and the reason BVIS got built.

Most often for education, financial services, assessment and HR technology, and operations-heavy businesses, for clients headquartered in the US, UK, Australia, Canada and the EU as well as businesses operating inside Vietnam.

Questions, answered straight

No fluff, as promised.

How do we know whether to build or buy?

Buy unless the process is genuinely your differentiator or nothing on the market covers it. We run that assessment first and have talked clients out of builds more than once.

Who owns the code?

You do, in your repository, from the first commit. No lock-in, and no dependency on us continuing to be your agency.

How long before something is actually usable?

The first slice is one complete workflow in production, typically a matter of weeks. That is real software with real users, not a prototype. Everything after it is scoped against what that slice taught us rather than against the original assumptions.

What is a thin first slice, and why not build the whole thing?

One workflow, end to end, live. Two weeks of real users will contradict more of your specification than six months of writing it, and finding that out early is far cheaper than finding it out at launch. It also gives you a genuine cost basis for the remaining budget.

What technologies do you build web apps in?

Next.js and React on the front, TypeScript throughout, NestJS behind it, MongoDB or Postgres depending on the data, deployed on AWS. Deliberately conventional, because any competent engineer can pick up a typed codebase built on standard patterns, which means you are not dependent on us.

Can you integrate with the systems we already run?

Usually, and often that is the whole job. A good share of web app work is an integration layer wearing a user interface, tying together tools that were never designed to talk to each other. We will tell you early if an integration is not realistically possible rather than discovering it in month three.

What happens after launch?

Either we maintain it or your team does, and the handover is built for both from day one: documentation, environments and deployment set up so the thing stands up without us. Ongoing support is available on retainer but is not a condition of the build.

Do you work with our in-house developers?

Yes. We can take a workstream, work inside your process, or build the parts your team has no capacity for. The typed, conventional approach exists partly so that handing work back and forth does not require a translation layer.

Will you tell us not to build?

If that is where the assessment lands, yes, and we have done it. Custom software you did not need is a cost you carry for years, and selling you one would buy us a project and lose us a client.

Got a process nothing quite fits?

Tell us what you're working on. You'll get an honest answer about whether we can help, and exactly how.