Skip to content
CH 00Buildfixed scope · from $15,000

Builds start at $15,000. Below about that, a fixed-scope project is the wrong instrument — you end up paying for the scoping and the paperwork instead of the work.

The honest answer at that size is usually a diagnostic, or hours inside an Air Time plan, and I’ll say so rather than sell you a project that can’t fit its own scope. Saying that out loud costs me the job about as often as it saves you one, which is the point: the first deliverable here is honest advice, including the kind that ends with you not hiring me.

The one named exception is for qualifying independent small bands: a repeatable four-page site at $1,500 through a standing give-back program. It has its own scope and does not change the custom-build floor.

Fixed scope, from $15,000  ·  anything hourly, $250/hr  ·  scope, number and date in writing

CH 01What gets builteight capabilities · one bench

Eight kinds of thing

Most builds are two or three of these at once — a platform with a store bolted to it, an app sharing a brain with the website, an integration nobody wants to own. They are listed apart because they are scoped apart, not because they get built apart.

The AI and data work has a page of its own, because that line has more to explain than a card holds — every price, and an honest list of what I won’t build. It’s over here.

Custom builds

The software between off-the-shelf and overkill: platforms, portals, member sites, client dashboards. Scoped in writing, shipped in increments you can see working.

  • Drupal
  • WordPress
  • React
  • Astro

Ecommerce

Carts, subscriptions, checkout flows — and the unglamorous parts where stores actually fail: tax, shipping, the ERP feed, the promotion stack, the abandoned-order edge cases.

  • Drupal Commerce
  • WooCommerce
  • Headless

Mobile apps

Native and cross-platform, shipped to real app stores since the GPS-in-a-blizzard days. Standalone when standalone is honest, or sharing a brain with your platform so content lives once and ships everywhere.

  • React Native
  • Flutter
  • Native iOS/Android

APIs & webhooks

Building the API your data deserves, or taming the one somebody else shipped: REST and GraphQL design, versioning that won't strand your integrators, webhook plumbing, and middleware for the services that refuse to speak to each other.

  • REST
  • GraphQL
  • Webhooks

ERP & CRM integration

The enterprise plumbing nobody sees until it leaks: order feeds into the ERP, customer sync out to the CRM, SSO, inventory pipelines. We've moved a lot of water through these pipes — including the 2 a.m. kind.

  • ERP feeds
  • CRM sync
  • SSO

Custom .NET applications

Line-of-business apps in C#/.NET — new builds on modern .NET, and honest stewardship of the Web Forms fleet still running half the Midwest. Yes, we read the 2012 codebase. Yes, without judgment.

  • C#/.NET
  • Azure
  • Modernization

AI integration

The useful kind: search that understands your catalog, drafts that start from your data, support that has read your docs. If a cron job would do it better, we'll say so.

  • Claude
  • RAG
  • Automation

Testing & CI

Untested work is a rumor. Behat suites that outlive the project, unit coverage where the money math lives, browser tests for the flows that page you, and pipelines that gate every deploy on all of it.

  • Behat
  • PHPUnit
  • Playwright
  • CI/CD
CH 02How a build runsscope · number · date

A written scope, a number, a date

Every build opens the same way: what we’re making, written down; what it costs, as a number rather than a range; and when it lands. That page is the whole agreement, and it’s the page you hand to whoever signs the cheque.

Then it ships in increments you can see working — a real URL with a real thing on it, not a status meeting. When something we scoped turns out to be wrong once it’s real, we talk about it first. Changes are conversations, not surprises on an invoice.

How it bills

Milestone billing schedule for a fixed-scope build
MilestoneShareWhen it invoices
Deposit40%Before any work starts — it reserves the calendar
Midpoint30%At the agreed halfway milestone, demoed and working
Delivery30%On acceptance, against the written scope

Net-15, every invoice

Forty percent lands before work starts. That isn’t a trust exercise — it’s what reserves the calendar, and a reserved calendar is most of what makes a date real. Everything after it is net-15, and there is never a line on an invoice you haven’t already seen a number for.

The concentration rule

No more than half of any month is committed to one build. Two reasons, both plain: the maintenance clients who pay for a patch window get their patch window, and a build that swallows a whole month swallows a whole month of risk with it. So a big build spans months rather than pretending otherwise, and the real calendar — increments, dated — is in the scope before you sign it.

CH 03Not sure what to buildpaid discovery · credited back in full

Start with the map, not the paddle

Plenty of people arrive knowing something has to get built and not knowing what. Nobody should be quoting you a number in that spot — including me. Buy the thinking first, on its own, at a published price.

Build Roadmap

$3,500 – $7,500

Paid discovery for the thing that does not exist yet. A roadmap runs about 8% of the build it scopes, which is where the range comes from — and the fee credits in full toward the build when it starts within 60 days.

What that buys is platform selection with the reasoning shown, an architecture recommendation, and a costed, phased plan. A roadmap that is yours to take to any builder, including not me — take it to another shop, hand it to your own team, or put it in a drawer until the budget year turns. A roadmap you can only spend in one place isn’t a roadmap, it’s a sales document.

Best when
The thing does not exist yet and you need to know what to build
What it opens
Platform selection with the reasoning shown, architecture, and a costed phased plan
Back in
2–3 weeks
Credits toward
The build, 60 days — in full
The full scope →
CH 04The stack, honestly ratedtools chosen, not collected

Where the water is deep

A logo wall tells you what somebody has installed. It doesn’t tell you what they’d stake a deadline on. Here is the same list with the depth written next to it, which is the part that would have been useful to you anyway.

Drupal

Deepest water

Versions 5 through 11, since 2013 — commerce, multisite, and migrations at scale, including a monolithic Drupal 7 with millions of nodes rebuilt as Drupal 10 without losing a record. Two contrib modules maintained on drupal.org. If you hire me for one thing, hire me for this one.

WordPress & WooCommerce

Fluent

Builds, rescues, and stores. This is not where thirteen years went, and it’s genuinely good water to be in when WordPress is the right answer — which it often is, and I’ll tell you when it is.

C# / .NET

Deep, and unfashionable

Line-of-business apps on modern .NET, plus honest stewardship of the Web Forms fleet still running half the Midwest. Yes, I’ll read the 2012 codebase. No, not with a face.

React & Astro

Fluent, daily

TypeScript front ends, headless front doors, and static sites that stay fast on the third year rather than the first week. This site is Astro, and its carbon rating is public and re-runnable.

React Native & Flutter

Shipped, not specialist

Cross-platform apps in real app stores, back to the GPS-in-a-blizzard days. I’ll build you one. I’ll also tell you when a good mobile web experience gets you there for a third of the money.

AWS & Azure

Certified on AWS

Solutions Architect (Associate) and Cloud Practitioner, with Azure alongside it: containers, pipelines, and migrations off monolithic legacy. Certified means examined, not infallible — I still read the bill.

AI integration

Newest, and used in anger

The part an AI feature actually runs on: retrieval over your own catalog and your own documents, an agent surface that can reach your orders without reaching everything, permissions that hold when it does, and an eval set so you can tell whether it got better or just got different. Every price for it is published. If a cron job would do the job better, I’ll say so.

The full record — thirteen years of it, with the certifications and the drupal.org history — is on the about page. And whatever isn’t on this list: bring it anyway. Half of a good answer is knowing which shop should get the work, and sometimes that’s not this one.

CH 05Straight answersno discovery call required

What’s the smallest project you’ll take?

About $15,000 for custom work, and that number is a shape more than a size. The one named exception is a fixed four-page site for a qualifying independent small band: $1,500 through Dead North’s standing give-back program. It is a productized launch, not a cheaper custom build.

Why does a floor exist at all?

Because a build too small to carry its own paperwork fails in a predictable way: the scope comes out thin, the first surprise blows the schedule, and somebody eats the difference. Publishing the floor means you learn that from a web page instead of six weeks in. Nothing under it gets turned away — it gets routed.

What if my budget is under it?

Then you probably don’t need a custom build, and I’d rather say so. For qualifying independent small bands, there is one deliberately narrow option: the $1,500 give-back program. Everyone else has two honest answers below the floor: a fixed-price diagnostic or hours inside a maintenance plan at $250 an hour.

Do you take over a half-finished build?

Yes, more often than you’d guess — and it starts with a look, not a quote. A half-finished build is an unknown until somebody reads it: what works, what was never wired up, what the last team was going for. That’s a Rescue Assessment, and it comes back as a written picture of what you actually have and what finishing costs. If finishing is the wrong call, that’s in the memo too. Sometimes the honest number is smaller than the rebuild everyone assumed.

Where those routes go —Diagnostics ·Air Time ·Rescue ·Every price, one table

Tell me what you’re building →

Three sentences is plenty · a real answer from Dane inside one business day