I saw a Reddit thread titled “Replit should not even exist”.

The complaint was basically: why am I paying Replit just to publish something?

I understand the frustration. I don’t agree with the title though. Replit, Lovable, and Base44 should exist. These tools are useful when you want to kick the tires, learn, or get a rough app into a browser quickly.

But I would not build anything important in a system where publishing, source access, hosting, and the development environment are all tangled together.

The short answer: I want the generated app to become a normal app as quickly as possible.

The Publish Button Is Not the Main Thing

The obvious complaint is the publish button.

You click around, prompt the builder, get something working, and then the platform says publishing costs money. Fair enough. Hosting costs money. Product teams need to charge for something.

But the publish button is the least interesting part.

What I care about:

  • Can I get the full source code?
  • Can I put it in my own Git repo?
  • Can I run it locally without the platform?
  • Can I deploy it somewhere boring?
  • Can a coding agent work on it using the same tools it uses for everything else?

If the answer to any of those is no, I treat the tool as a sketchpad.

That is still useful. I just don’t confuse it with the place where the product should stay.

Browser Builders Are Good For Getting Started

I don’t think beginners should be told to set up Docker, PostgreSQL, DNS, deploy keys, CI, object storage, background jobs, and production logging on day one.

That is a great way to make someone quit.

Replit and similar tools collapse a lot of that into a browser. There is value in that. You can make something, press a button, and see it on the internet. For learning, demos, internal tools, and weekend experiments, that can be exactly right.

The problem starts when the app is no longer an experiment.

At that point, I don’t want the app’s future tied to a proprietary workflow. I want boring files on disk. I want a normal repo. I want commands I can run in a terminal. I want logs I can inspect without clicking through a dashboard designed for a different kind of user.

I want to be able to hand the project to Claude Code, Codex, Droid, or whatever agent I am using that week and say:

git clone git@github.com:me/app.git
cd app
bun run test
bun run lint

Nothing fancy.

Source Code Matters More Than the Demo

The demo feels good because it is visible. You prompted something. It rendered. You can click it.

But the source code is where the app becomes yours.

I want to see the database schema. I want migrations. I want the route handlers. I want the auth flow. I want the email templates. I want to know whether the app is doing something strange with environment variables or secrets.

This matters even more with AI-generated code because the first version often works in the happy path and then falls apart around the edges.

The normal software work starts here:

  • failed payments
  • expired sessions
  • background jobs that retry
  • emails that bounce
  • migrations that need to run in production
  • logs that need enough metadata to debug a real user issue
  • deployment that needs to be repeatable

That is normal software work, not just prompting.

I use coding agents heavily, but I still want the boring software pieces to be visible. Especially then.

My Preferred Setup

My default setup is not complicated:

  • a normal Git repo
  • a framework I understand
  • PostgreSQL
  • environment variables in predictable places
  • deployment through Kamal or another boring deploy path
  • logs somewhere I can query
  • agent instructions in AGENTS.md

I wrote about using tmux with Claude Code because that is how I like running agents: each session is just another terminal process. I can run dev servers, inspect logs, restart things, capture output, and keep working.

I also wrote about why I self-host my SaaS apps on Hetzner and what I pay to run them. That setup is not as beginner-friendly as pressing “publish” in a browser, but it is understandable. Once it is set up, it is cheap and predictable.

For me, that trade-off is easy.

Where Stacknaut Fits

This is also why I built Stacknaut.

I didn’t want another browser app builder. I wanted the boring production setup extracted from apps I actually run: Vue, Fastify, PostgreSQL, Drizzle, Kamal, Hetzner, logging, backups, and coding agent config.

This is not about replacing Replit for beginners. It is about getting to a normal repo faster.

If I am building a real SaaS app, I don’t want the product trapped inside the tool that helped generate the first draft. I want the tool to help me produce code I can keep.

Use the Browser Builder, Then Leave

Use Replit if it gets you started. Use Lovable if it gets you a first UI. Use Base44 if it helps you understand the product flow.

But decide early what the exit path is.

The exit path should be boring:

git clone ...
bun run dev
bun run test
kamal deploy

Once the app matters, owning that path matters more than how quickly the first demo appeared.