How to finish a half-built app without starting over by accident
5 min read
On this page
- Step 1: Take stock of what actually works
- Step 2: Find out what is under the hood
- Step 3: Decide between fixing and rebuilding, honestly
- Step 4: Define what "finished" means
- Step 5: Prepare the handover
- Step 6: Write a listing developers can act on
- What a developer will want to verify before quoting
- Post it
Plenty of apps stop halfway. The money ran out, the builder moved on, the AI tool stopped making progress, or life simply got in the way. Finishing one is very possible, but it goes better when you know what you actually have before anyone writes another line of code. This page takes you from "it's sort of working" to a clear plan and a takeover listing that a developer can respond to with confidence.
Step 1: Take stock of what actually works
Your memory of the app is not a reliable guide; the app itself is. Create a fresh test account, ideally on a phone as well as a computer, and try every main task a real user must complete. Avoid your admin account, because admins often skip the checks that ordinary users hit.
Record the results in a simple table:
| User task | Status | Notes |
|---|---|---|
| Sign up and confirm email | Works | Confirmation email lands in spam |
| Create a project | Works with a workaround | Must refresh the page to see it |
| Invite a team member | Broken | Invite link opens an error page |
| Pay for a subscription | Not started | Pricing page only |
Use four statuses only: works, works with a workaround, broken, not started. This table will become the heart of your handover and your listing, so keep it honest. A feature that only works when you do it in a particular order is not finished.
Step 2: Find out what is under the hood
Next, collect the facts a developer will ask about:
- Where is the code? A GitHub repository, a zip file, an AI builder such as Lovable or Bolt, or a no-code editor such as Bubble or FlutterFlow.
- Who owns each account? Domain, hosting, database, payments and app stores. If any are not in your name, sort that out first.
- What is it built with? If you are not sure, the files give clues. A
package.jsonfile means a JavaScript or TypeScript project,pubspec.yamlmeans Flutter,wp-config.phpmeans WordPress, andrequirements.txtorpyproject.tomlusually means Python. - Is anything live? Real users, real data or real payments change how carefully the work must be done.
If you are missing access or code because the previous builder is gone, deal with that first; developer disappeared with the code covers it.
Step 3: Decide between fixing and rebuilding, honestly
This is the decision people most often get wrong, in both directions.
Fixing usually makes sense when the main user tasks mostly work, the code builds, the data structure fits what the app does, and the problems you listed are specific rather than everywhere.
A rebuild deserves serious thought when the project cannot be built or run at all, there are security problems throughout rather than in one place, or the platform cannot do something you truly need.
A middle path is common. Keep the database, the designs and the parts that work, and replace the weakest sections one at a time.
Two cautions. First, rebuilds nearly always take longer than expected, because the old app contains many small decisions nobody remembers making until they are missing. Second, some developers prefer rebuilding simply because it is easier to work in their own code. That is not a bad motive, but you deserve the reasons in writing, explained in terms of your features rather than technical taste. For no-code apps, Bubble and FlutterFlow: when to fix vs when to rebuild goes deeper, and the Rescue Effort Estimator gives a rough effort band for each route.
Step 4: Define what "finished" means
"Make it work" cannot be priced or checked. Split your wish list into two parts: what must be true before launch, and what can wait. Then write a short acceptance test for each launch item, for example: "A new user can pay by card and immediately sees the premium features without refreshing." Clear tests protect both you and the developer, because everyone can see when the job is done. The Production Readiness Checklist helps you spot launch items you might otherwise forget, such as backups, error tracking and legal pages.
Step 5: Prepare the handover
A developer can start much faster when the groundwork is ready:
- Your status table from step 1.
- A list of every account the app uses and who owns it.
- The names of the environment variables the app needs (names only, never the values).
- A test account with sample data.
- Known bugs, with screenshots that do not show keys or customer data.
- Your launch list with acceptance tests.
Give access later through collaborator and team invites rather than passwords. The Handover Checklist Generator turns this into a tidy document, and how to hand over an unfinished software project explains each item.
Step 6: Write a listing developers can act on
A good takeover listing answers the questions a developer would otherwise have to ask. Include a one-line summary, what it is built with, what works, what is broken, what remains, the state of code and account access, your timeline, a budget range or "open to proposals", and why the project is available.
Compare "Need someone to finish my app ASAP" with "Booking app for dog groomers, built with Lovable and Supabase. Sign-up and calendar work; payments not started; Google login broken on the live domain. Code on GitHub. Looking to launch in six weeks." The second gets far better replies. The AI Listing Writer can shape your notes into this format, and how to write a takeover listing that gets good responses has more examples.
What a developer will want to verify before quoting
Expect a serious developer to test your claims rather than take them on faith. They will want to run the app, read the code with read-only access, and try the tasks in your table. Many propose a small paid assessment before quoting the whole job, which is reasonable for unfamiliar code. The more accurate your listing, the closer their quote will be to the real cost.
Post it
When you are ready, post your half-built app for free. Developers and agencies who finish projects will contact you, and you decide who to talk to. TakeoverWork connects people only: you agree the scope, price and payment directly with the person you choose, so read how to evaluate developers who want to finish your app first.
Live matching takeovers
No matching takeovers are open right now
New projects are posted regularly. Browse every open takeover, or post your own project free.
Browse all takeoversFrequently asked questions
How do I know whether my app is nearly done or only half built?
Walk through every main task a user must complete and mark each one as working, partly working, broken or not started. If the core tasks work and the gaps are around the edges, you are closer than you think. If the core tasks are broken, plan for more work.
Should I rebuild my app with a different tool?
Only when there is a concrete reason, such as a platform limit you cannot work around or code that fails to build and has serious security problems throughout. Rebuilds take longer than most people expect, so ask for the reasons in writing and tied to your features.
How much will it cost to finish my app?
It depends on the size of the app, its condition and what finished means to you. The Rescue Effort Estimator gives a rough band, but a real quote needs a developer to look at the code, often through a short paid assessment.
Do I have to give a developer full access before they quote?
No. Read-only access to the code repository, a demo account and a clear listing are usually enough for a first estimate. Grant wider access through invites once you have agreed the work.
Can I post a takeover if I do not have the source code?
Yes. Explain what you do have, such as the live app, designs, the database or a no-code editor login, and what is missing. Developers can then tell you whether recovery or a rebuild makes more sense.
Stuck with a half-built app?
Post your project free. Developers who finish and rescue projects can send you an interest note, and you decide who to talk to. You agree scope and payment directly with them.
Free tools that help
Related guides
How to write a takeover listing that gets good responses
Developers decide quickly whether a takeover is worth a reply. Clear facts about the stack, the state of the code and your budget bring better, more specific responses.
ReadBubble and FlutterFlow: when to fix vs when to rebuild
Should you keep improving your Bubble or FlutterFlow app, or start again in code? Work through seven questions to make the call on evidence, not frustration.
ReadHow to hand over an unfinished software project (complete checklist)
Package your half-built project so a new developer can run, change and deploy it without guessing: accounts, code, setup, known issues and a clean access plan.
ReadHow to evaluate developers who want to finish your app
A practical way to compare developers and agencies who reply to your takeover: what to read, what to ask, how to test the fit with a small paid task, and which warning signs to act on.
ReadRelated problems
Lovable app not working? How to find what broke and get it fixed
Most Lovable apps that break do so for a short list of reasons: auth settings, database policies, keys, deploys, edge functions or payments. Here is how to narrow it down.
ReadBolt app stuck? How to get your project moving again
A stuck Bolt project usually means the AI has lost track of a large codebase, the build is broken, or the app only works inside the browser preview.
ReadDeveloper disappeared with the code? What to do, step by step
When a developer goes silent, secure your accounts first, then work on getting the code back. What you own depends on your agreement, so get local legal advice.
Read