Budget shape matters as much as budget size in custom work. We quote fixed prices against signed scope, but the scope is sequenced so the money path ships first: the configurator works before the admin settings page is pretty, the subscription charges before the reporting dazzles. That ordering means you can stop after any stage and still hold working software, which is how custom projects stay honest. If a quote front loads infrastructure and back loads the feature you actually asked for, the incentives are pointed the wrong way.
Every platform has a graveyard of custom work that the next update killed. Shopify's contract is clear: inside Liquid themes, inside Hydrogen, inside Functions and the official APIs, your code is safe. Outside them, in private scripts that monkey patch checkout or scrape the admin, it is not. We build only inside the contract. When a client arrives carrying fragile work, replacing it is usually the first line of the scope, because that kind of debt compounds quietly until a Tuesday update calls it in.
Owning code changes the economics of features. A subscription app that charges a percentage of recurring revenue costs more every month you grow; a custom app costs its build once and then maintenance, which we cap in care plans. We model both options against your real order volume in the audit, with the break even point stated. Roughly a third of the time the app wins and we tell you that, because a client who trusts the no is a client who believes the yes.
Custom work is where senior engineers pay for themselves. The difference between a junior and a senior implementation of, say, a configurator is not visible in the demo: it shows up in the edge cases, in cart mutation races, in what happens when a customer refreshes mid flow on a train tunnel connection. Our builds ship with tests around the money paths, error states a customer can understand, and instrumentation so that when something misbehaves you get one alert with context, not silence.
Handover is part of the build, not an afterthought. Your repositories hold the code from day one, with commit history your future team can read. Documentation covers architecture decisions, not just endpoints. At launch we run a recorded walkthrough for your developers and leave them a runbook. If you never call us again, the work still belongs to you, and that is deliberate: our care plans win renewals by being useful, not by being the only door out.