Skip to content
afterbuild.dev
$ curl -I yourapp.com/pricing

Your app works in the preview.
On your own domain, it doesn’t.

Built with Lovable, Replit, v0, Bolt, Base44?

You built something that works. Something between the app you designed and the person opening it is broken. You asked the AI, it explained the concept, and the app is still broken.

Send us the address and what you see when you open it. We look first, then quote.

Send us the appthe first look is free
yourapp.com/pricing
404
This page could not be found.
the link you sent someone, opened in their browser

Four ways this shows up

Four descriptions of the same underlying thing. If one of them is your week, you are in the right place.

Symptom 01

Refreshing any page gives 404

The home page loads. Every other page is fine until someone reloads it, or opens a link you sent them. Then it's gone.

Nothing in the app changed. Only where it's being served from.

preview--yourapp.builder.app/pricing200 OK
yourapp.com/pricing404

same app, same page, two addresses

Symptom 02

The build says success. Half the app quietly does nothing.

It compiled, it deployed, it said success. Then a form submits into silence, or a button does nothing at all.

No error in the build. Nothing in the server log either, because it isn't failing on the server.

BUILD LOG
$ npm run build
vite v5.4.2 building for production...
transforming (1482) src/main.tsx
 1482 modules transformed.
dist/index.html 0.68 kB
dist/assets/index-C4tZ9v.css 28.14 kB
dist/assets/index-Bq7xKp.js 512.77 kB
✓ built in 46.05s
 deployed to production
Save changes
Symptom 03

Anyone can read my database

Everything the browser needs is handed to the browser, and some of that is fine by design.

The question is what sits at the other end of it, and whether anything is stopping a stranger from using it.

view-source:yourapp.com/assets/index-Bq7xKp.js
const Ir=Nt("https://xqf3pvbmzlkraydu.example.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWYiOiJ4cWYzcHZibXpsa3JheWR1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTgyNDAwMDB9.q7Xk2VbN0sJmR4dHwPzYtCu1LfA9eKgO3ZiM8vHrQnY"),Bt=async()=>{const{data:e}=await Ir.from("users").select("*");return e}
Symptom 04

The console says Unexpected token '<' and the code looks fine

It is fine. What arrived was not the file the browser asked for.

Until that is fixed the page will not start, however correct the code is.

ConsoleNetworkSources
Uncaught SyntaxError: Unexpected token '<' index-Bq7xKp.js:1

How it goes

We look before we quote. Never the other way round.

STEP 01

You send it

The address of a page that breaks, and one sentence about what happens when you open it.

reply the same day, usually within a few hours
STEP 02

We reproduce it

We open it ourselves and make the failure happen, then send the scope and one fixed price.

free, and the findings are yours either way
STEP 03

We fix it, you check it

On your domain, on your phone. You keep the code and a written list of what changed.

including a reboot, while you watch

What it costs

Not a price list. Enough to know whether this is worth a message, which is the only thing a range is good for.

free
The first look. We open it, reproduce what you described, and send you the cause in writing — yours to keep whether or not you go ahead.
$150–350
Getting a working app onto your own domain and keeping it there: routing, HTTPS, a build that runs again without you, and a restart it survives.
quoted
Who can reach your data, and moving off the platform. Both depend on what is actually there, so the number comes after we have read it — and it does not move afterwards.

What we don’t do

Worth reading before you write to us. It is a short list and we keep to it.

We don't run anything against a system you haven't asked us to touch.
We don't look at your users' data. Who can reach what is checked on the structure and on test records.
We don't change things nobody asked about — we write them down instead.
We don't quote before seeing the problem, and we don't promise an outcome we haven't reproduced.
$ curl -sI yourapp.com/pricing | head -1

Send us the app

You don’t need to send us any code to start, and a private repository is not a problem. The address of the page that breaks is enough, and the first look is free.

Prefer to read more first? The measurements are the fastest way to judge whether we know what we are talking about.

A person opens it, reproduces what you described, and replies with the cause and one fixed price.