Delivery
What you actually get. And what you do not.
The clearer this is upfront, the smoother the build. Here is the honest version of what we ship, what happens after, and where the boundaries are. We would rather have the awkward conversation now than after you have written a cheque.
The spec is the contract.
The single biggest predictor of a smooth project is a written scope before anyone writes code. We do not invoice until you and we have agreed on what we build, what we explicitly do not build, the price, and the target ship date.
If something feels ambiguous in the scope, ask now. Not when the screen looks different than you pictured. The intake form does most of the work, and a thirty-minute call cleans up the rest.
A clear initial spec is what protects you from us drifting and what protects us from the build quietly expanding into something neither of us signed up for.
What is in every build.
Code in your GitHub from day one
Private repository under your account. You own it outright. We do not have a backdoor copy and there is no kill switch.
Infrastructure set up and wired together
Hosting, database, transactional email, monitoring, the lot. Configured on your accounts, or on ours if you picked Hosted by us.
Your custom domain serving the app
DNS, SSL, the routing. You see your URL serving real content before we send the final invoice.
Integrations live and verified
Whatever you scoped: payments, Slack webhooks, Google Workspace, your PMS, your accounting tool. Connected and tested end-to-end at handover.
A walkthrough
A written operator guide and a recorded screen share showing how to use the tool. You leave the handover knowing how to run it.
A fix window after handover
Two weeks on Challenging, one month on Demanding and Complex. Anything materially broken at delivery, we fix without invoicing again.
What is not in the build price.
We list this out so nobody is surprised. None of these are off the table. They just are not free additions to the original scope, and pretending otherwise is how project relationships go sour.
Features outside the original spec
If you want something we did not agree to build, we quote it. Small additions are flat-priced and quick. Mid-size and major additions follow the standard tier pricing on the pricing page.
Training your team beyond the handover walkthrough
We document the tool and walk you through it once. Long-form training, repeated onboarding sessions, or train-the-trainer is a separate engagement.
Acting as your end users' help desk
If your customers or staff have questions about how the tool works for them, your team answers. We support you, not them. Care tier covers our time helping you keep the tool healthy; it does not cover us being your support function.
Third-party platform breakages
When a provider ships an API change, when a dependency gets a CVE you have to apply, when an OAuth scope is deprecated. We did not cause those and we cannot predict them. We can fix them, as work. See the next section.
Watching your tool when you have not asked us to
If you skip the Care tier, we are not proactively monitoring. We are reachable and we will quote what it takes to fix something, but silence from us does not mean everything is fine. Care or Partner is the version where we are watching.
What happens after handover.
Three options, all priced on the pricing page. Short version: leave it running and only call us when you need us (Watch, ad-hoc at €120 / hour), put us on a small monthly retainer that covers bug fixes and a couple of hours of small changes (Care, €350 / month), or treat us like part of the team with ten monthly hours and a shared Slack channel (Partner, €1,200 / month). Hosting is priced separately, near our cost. You can mix and match.
See the full pricing →When something outside us breaks something inside the tool.
The internet is a moving target. Stripe ships breaking API changes. A library you depend on gets a security advisory. Google deprecates an OAuth scope. None of that is predictable, and none of it is our fault. It is still work.
On Care or Partner: covered up to the included monthly hours. Most third-party migrations fit inside Care's two-hour bank.
On Watch (ad-hoc): we quote each fix at our standard hourly, same as any other piece of work.
What we will not do: pretend an external API change was something else, or silently eat the cost of every third-party migration as if it had been in the original build price.
If Papu Studio disappears tomorrow.
Your code is in your GitHub. Your infrastructure runs on your Railway, your Cloudflare, your Stripe. If you took Hosted by us, you get a 90-day window during which we help you migrate to your own accounts at no extra cost.
We do not encrypt our code. We do not hold the only copy of your data. We do not have a kill switch. Any developer who can write a modern web app can pick this up. We deliberately use the same boring, popular stack so this is true.
Your continued operation does not depend on our continued existence. It is the single most important thing we deliver.
What we promise, plainly.
- We tell you the price before we start work.
- We finish what we scoped.
- We hand over everything we built. No drip-feed, no key we hold back.
- We are honest about the AI under the hood.
- We are honest about what we know and what we do not.
- If we cannot do something well, we say so before you write a cheque.
Have a spec to talk through?
The fastest way to get a real answer to what would this cost and what would it include is to tell us about the problem. We respond within one working day.
Start a project