Hiring somebody to finish it. What they will ask on the first call.
You have decided to get help. The first reply will be a list of questions, and the difference between answering them in an afternoon and answering them over a fortnight lands on the price, because nobody quotes a fixed number on work they cannot see.
Most of what they ask for is access. The two that hurt are the ones people usually cannot answer at all: whose name is on the Apple account, and whether anybody has ever put a backup back.
The short answer
Anybody quoting on your build needs five things they can open and three answers they cannot guess. The five are the repository with its history, read access to wherever it runs, the database, the app store accounts, and the place the secrets live. The three are whose name each of those accounts is legally in, what the whole thing costs to run per month, and whether a backup has ever been restored into an empty database and started against. Missing access does not stop the work. It turns a fixed price into an hourly one, because the risk moves from the developer to you.
The eight, in the order they get asked.
- 01
What "done" means, in one sentence
On the App Store. Ten customers using it for a week without you watching. Either of those can be priced. "Finish it" cannot, and the quote you get back for it will be padded to cover whatever it turns out to mean.
Write the sentence before you send the first email, and read it back the next morning to see whether it still says the same thing.
- 02
The repository, with its history
A zip file of the current code is worth much less than the same code with its commits. The history shows what was tried, what broke, and the thing a developer checks in the first ten minutes: whether a key was ever committed and is therefore still sitting in every clone.
If the code only exists inside the builder that generated it, exporting it to GitHub is the first hour of any engagement. That hour is one you can spend yourself, today, before you pay anybody for it.
- 03
Read access to wherever it runs
Wherever it is deployed: Vercel, Railway, Render, Fly, a box somebody set up once and nobody has touched since. What a developer wants from it is the build logs, the deployment history, and the names of the environment variables, which is a different thing from their values and safe to hand over.
Without it, every question about why the app is slow or why it fell over last week gets answered with a guess, and guesses get priced as risk.
- 04
The database, and whose account it sits under
Which provider, which project, and whether the account holding it is yours or a contractor’s personal login. The second case is fine right up until the relationship ends, and then it is the only thing anybody talks about for two weeks.
Moving a database between accounts is ordinary work. It stops being ordinary the moment whoever owns the account stops answering email.
- 05
The store accounts, and whose name is on them
Apple Developer and Google Play, and for each one whether the enrolment is in your name or somebody else’s, and whether it is an organisation or an individual. An app under a contractor’s personal Apple account belongs to the contractor’s account, whatever the invoice says.
Apple has a transfer process with conditions attached and Google’s is more constrained. Neither is something to discover in the week you wanted to launch.
- 06
Where the secrets live, and which of them have been public
A list of every outside service the app calls and which key it uses to call it. Then the harder half: which of those keys have been in the repository, in a browser bundle, or pasted into a chat.
Saying so up front costs you nothing and saves a week. Every key that has been public has to be rotated whether or not anybody found it, and it is much cheaper to rotate on purpose than after a bill arrives.
- 07
What it costs to run each month
Hosting, the database, model calls, email, error reporting, and whatever else is on the card. In our experience this is the number nobody has looked at, and it changes the plan more often than it changes the price.
If the app costs more per customer than it charges, that is a pricing problem, and finishing the build does not fix it.
- 08
Whether a backup has ever been restored
Backups existing is not the question. The question is whether one has been put back into an empty database and the app started against it, by somebody, once. Until then you have files, and nobody knows whether they are backups.
It takes an hour to find out and it is the single item on this sheet most likely to change what a developer says about the risk of touching your data.
Have these open before you write the first email.
An afternoon, working alone, on the build as it stands. Anything you cannot settle here is something to say in the email, so it is not discovered on the call.
- 01
The repository starts somewhere else
Clone it onto a machine that has never seen the project. Install the dependencies and start it.
git clone <your-repo> && cd <your-repo> && npm install && npm run devBad answerIt only starts on the laptop it was written on.
- 02
Your name is on the Apple account
Open the Apple Developer account page and read the entity name and the account holder.
Bad answerSomebody else’s name, or an individual account carrying a company’s app.
- 03
Your name is on the Play account
Open Play Console account details and read the developer name and the owner.
Bad answerA contractor’s Google account.
- 04
You can reach the database on your own
Sign in to the database provider with your own credentials and list the tables.
Bad answerYou have to message somebody for the password.
- 05
You know everything that charges you
Read last month’s card statement and mark every line that belongs to this app.
Bad answerYou find one you had forgotten about.
- 06
Nothing secret is in the history
Search every commit, not only the files as they stand.
git log -p --all | grep -niE "sk-|sk_live|service_role|api[_-]?key|secret|password"Bad answerAny hit at all, including one you deleted later.
- 07
A backup comes back
Restore last night’s backup into an empty database and sign in against it.
Bad answerThere is no backup, or it restores without the rows.
- 08
Done fits in one sentence
Write it down, then read it back tomorrow morning.
Bad answerIt takes a paragraph, or it says something different the second time.
When this sheet is the wrong one
Skip all of it if you are carrying on alone. Gathering access buys you nothing until somebody else is going to touch the code, and an afternoon spent on it is an afternoon not spent on the app. Two items still pay for themselves either way: the restore test and the monthly cost.
Asked most often.
- What if there is no repository?
- Then getting one is the first job. Every one of the builders — Lovable, Bolt, Replit, v0 — will hand you the code, and a contractor who has not handed it over is a conversation to have, not a technical problem. Nobody quotes fixed-price on code they cannot read.
- Does anybody need access before they quote?
- Read access, yes. The alternative is an hourly rate, which prices the unknown by charging you for it. If handing over a repository worries you, ask for an NDA first — we sign them before anything is sent.
- Can you hand over only the broken part?
- You can, and the quote will be worse. What breaks a payment path is usually three files away from the payment code, so anybody shown a slice prices the risk of everything they were not shown.
- How long does handover take?
- An afternoon if the accounts are already in your name. A week or more if they are in somebody else’s and that somebody has stopped replying, which is the reason the account-ownership items are on this sheet at all.