Custom web development

Websites that take bookings, price jobs and do the work

Some sites are a brochure and should stay one. Others have to carry a process, and when they do, the gap between a theme with six plugins and something built for the job shows up in the hours your team spends working around it.

Or call or text directly: (303) 815-0215

What this is for

Four versions of the same week

Nobody wakes up wanting custom development. They wake up re-typing an order into a second system. Most of these cost more to live with than they do to fix.

Two systems that will not talk to each other

Orders arrive in one place and have to be re-entered somewhere else. Every re-entry is a chance to get it wrong, and the person doing it is usually the person who can least afford the hour.

A process still living in a spreadsheet

Quotes, bookings, stock, jobs. It worked when there were five a week. At fifty a week the spreadsheet is the bottleneck, and everybody already knows it.

A site that cannot handle what you sell

Configurable products, trade pricing, minimum quantities, delivery rules that depend on the item. Off-the-shelf themes fall over at exactly the point your business gets interesting.

Something that works, slowly, and nobody will touch

It runs, but it is fragile, and the person who built it is gone. The question is not whether to rebuild but which parts genuinely need rebuilding and which are fine.

Where this meets the other work

Building something new, and connecting what you have

These are two different jobs and they often arrive together. This page is the first one: a booking flow, a quoting tool, a portal, an internal dashboard — something that does not exist yet and has to be built.

The second is making your website and the software you already pay for stop ignoring each other. That has its own page, its own much shorter timeline and its own much smaller price: website integrations, typically $2,500 to $8,000 rather than five figures.

If you are not sure which one you need, describe the problem rather than the solution and you will get a straight answer — including the fairly common one that the cheaper page is the right page.

How it gets built

Five positions you could argue with

The boring stack, on purpose

Next.js and React, because they are widely known rather than clever. If this relationship ends, you want a codebase that any competent developer can pick up on a Tuesday — not one that needs its author.

The smallest thing that solves it

Plenty of problems that look like they need custom software need one connection and an afternoon. You will be told when that is the case, and quoted for that instead — the small jobs are priced as small jobs, not shoehorned into an application budget.

Built to be handed over

Readable code, comments that explain why rather than what, and documentation for anything non-obvious. You own the repository and the hosting from day one. Nothing here is designed to make leaving expensive.

Your card data never touches my servers

Payments stay with Stripe or Shopify, who employ people to do nothing else. Credentials live in environment variables rather than the repository, API keys get the narrowest permissions that work, webhooks are signature-verified, and dependencies are kept current. None of that is remarkable — it is just the part that is quietly skipped often enough to be worth writing down.

Tested where it actually matters

Not test coverage as a number, but tests on the parts that would cost you money if they broke quietly — pricing logic, order handling, anything that touches a payment.

Start to finish

From the problem to the handover

The scope is written down before the price is agreed, and the price does not move while the work does. If the scope changes, that is a conversation rather than a surprise on an invoice.

  • A scoping conversation about the problem, before anything is quoted
  • A written scope you can hold me to, with a fixed price against it
  • The build, in Next.js and React unless something else genuinely suits you better
  • Work that fits around the software you already run rather than replacing it
  • Tests on the logic that would be expensive to get wrong
  • Deployment, monitoring and a handover you can act on without me

Before you enquire

Most businesses asking for this do not need it

A large share of problems that look like custom software are one connection between two systems, a settings change, or a page that should never have been built the way it was. Saying so costs a project and buys the only thing worth having on a first call, which is being believed the next time.

If a website is what you need, that is the web design page, and it is a cheaper and faster piece of work.

Scoping questions

The things worth settling before any money moves

Web design is for a business that needs a website: pages that explain what you do and turn visitors into enquiries. This is for a business that already has one and needs it to do something — take a booking, price a job, sync with the software you run. If you are not sure which you need, say what you are trying to achieve and you will get a straight answer, including when the answer is the cheaper one.

Next.js and React for most things, because they are well documented and widely known, which matters more than novelty when somebody else has to maintain the work later. Shopify where the job is genuinely ecommerce. WordPress when a client's team already knows WordPress and retraining them would cost more than it saves. The stack should suit your situation, not the developer's preferences.

Application work runs from $15,000 to $100,000 and upward, which is the going rate for custom software and reflects what it actually takes: something with its own users, data and rules is months rather than weeks. What moves the number is how much has to be invented rather than wired together. Smaller integration work — connecting two systems that both have a decent API — is a different size of job and is quoted separately, in the low single-digit thousands rather than the tens; the range for it is set out on the integrations page. Nothing is priced before the problem is scoped in writing, so the figure does not move once it is agreed.

A single connected feature is usually one to three weeks. Something with its own data, users and rules is six to twelve. The honest variable is not the code, it is how quickly questions get answered — a project waiting a week for a decision takes a week longer.

Yes, entirely. The repository is yours, the hosting account is in your name, and the handover includes whatever documentation is needed to work on it without me. Anyone who is cagey about this is protecting their retainer rather than your business.

Often, yes — picking up a specific piece, or reviewing an existing codebase before you commit more money to it. That review is sometimes the most useful thing I do for a business, because it occasionally ends with advice not to rebuild.

Start by describing the problem

Not the solution you have in mind — the thing that is costing you time. You will get an opinion on whether it needs building, and what it would take if it does.