How I ship a new AI product in a weekend and the three things I refuse to skip
A practical weekend process for building an AI MVP without confusing speed with recklessness. Ship fast, learn in public, and keep the safeguards that protect users.

At 8:17 on a Saturday morning, Priya sent me a message from her kitchen table: "I have the idea. I also have three hours before my family wakes up." Her prototype was a simple AI tool for turning messy customer notes into a usable follow-up email.
My answer was not "build the whole product." It was: "Build the smallest version that can prove whether someone cares." That is how I ship fast: define one user, one painful job, and one visible result, then refuse to skip the Eval Loop, the user path, or basic Cost Telemetry.
You can build an AI MVP in a weekend without pretending it is a finished company. A weekend build is a learning machine. It gives you evidence, not certainty. The goal is not to impress anyone with a polished demo. The goal is to put something real in front of a real person before your enthusiasm turns into a six-week architecture project.

Start with a narrow promise
The most common advice is "move fast and break things." Too blunt for AI products. If the output is wrong, you may not have broken a decorative feature. You may have wasted a customer's afternoon, exposed private data, or made a recommendation nobody can trust.
So the deeper lesson is simple: speed comes from reducing the surface area of the promise.
I start with a sentence that has this shape:
- Given this input, the product produces this output.
- The person using it can judge the output in under one minute.
- A wrong answer is annoying, not dangerous.
Priya's first version did not "improve customer retention." That would have been impossible to test over a weekend. It turned a pasted support note into three possible follow-up emails, each with a short reason for the suggested tone.
That was enough. The user could paste a note, inspect the draft, and decide whether it saved time. No dashboard. No team workspace. No automated CRM integration. No carefully branded settings page that existed mostly to make an empty product feel larger.
I have made that mistake myself. I once spent a Saturday polishing a settings screen before confirming that users even wanted the underlying action. The screen looked fine, the product was still guessing.
A narrow promise also gives you a clean stopping point. For a solo founder, that matters. You are not just writing code. You are making product decisions, handling deployment, answering messages, and wondering whether your coffee has become a food group.
Before opening your editor, write down:
- The exact person who will use the prototype.
- The one task they are trying to finish.
- The input they provide.
- The output they receive.
- The reason they would use it again next week.
If you cannot answer those questions, do not add another model or framework. Rewrite the promise.
What should an AI MVP do in its first weekend?
An AI MVP should complete one useful job from input to output for a small group of real users. It does not need billing, collaboration, advanced permissions, or a broad feature set until the first workflow earns repeat use.
That constraint is not a lack of ambition. It is a way to protect your attention. The first weekend should tell you whether the problem deserves a second weekend.
Build the shortest useful path
Once the promise is clear, I draw the user path on paper. Four boxes are usually enough: Start (what the user sees first), Input (what they provide), Work (what the system does), and Result (what they can accept, edit, save, or share). The boxes are intentionally boring. Boring is good here. A person should be able to understand the path without a tour, a video, or a paragraph explaining what the button means.
For a weekend build, I usually choose a stack that removes decisions. Next.js handles the interface and server routes. Vercel handles deployment. Postgres with pgvector is enough when the prototype needs stored records or a small document search layer. An API from OpenAI, Anthropic, or Google handles the model call, depending on the task and the data involved.
The exact model matters less than the boundary around it. I want a single function that receives structured input and returns structured output. The application should know when the call starts, what prompt version it used, how long it took, how many tokens it consumed, and whether the response passed a basic check.
That boundary is my second anchor: the Context Budget. It is the amount of information you allow into a model call before cost, latency, and confusion start to rise. A support-note prototype may need the latest customer message and a few account fields. It probably does not need the entire interaction history going back to 2018.
Here's the part most people miss: they build the interface around an imagined future. User profiles, notifications, billing, export formats, ten possible workflows, all before anyone has completed one. The result feels busy but tells you very little.
Build the path in this order:
- Make the input work with one hard-coded example.
- Replace the example with a real model call.
- Add a visible loading state and a useful error message.
- Save the request and result so you can inspect failures.
- Put the link in front of three people.
That last step is where the product begins. Not when the deployment turns green. Not when the landing page looks good. When a person uses it without you narrating every click.
And keep the first interface plain. A text box, a button, and an editable result can be enough. I have shipped systems across large organizations (and yes, the lesson still holds at every scale): every extra surface creates another place for a user to get confused and another place for you to spend Saturday night debugging.
Refuse to skip the three safeguards
Speed does not mean removing discipline. It means applying discipline to the few parts that control whether the prototype teaches you anything.
Build a small Eval Loop
The first thing I refuse to skip is a small Eval Loop. This does not need a research lab or a large testing platform. It can begin as a spreadsheet with 20 examples, an expected outcome, and a simple pass or fail judgment.
For Priya's email tool, the examples included:
- A calm customer asking for an update.
- An angry customer whose refund was overdue.
- A note with missing information.
- A message containing private data the draft should not repeat.
The test was not "does the answer sound smart?" It was "does the draft preserve the facts, match the requested tone, avoid invented promises, and give the user something they can safely edit?"
Run the same examples whenever you change the prompt, model, or output format. If the score falls, you know what changed. Without that record, you are relying on memory, which is a charming system until two versions produce different answers and nobody remembers why.
You can make the first evaluation useful with three fields:
- Input example.
- Expected behavior.
- Pass, fail, or needs review.
Do not wait for perfect measurement. A rough test set beats confident guessing every time.
Keep a human decision in the path
The second safeguard is a human decision before anything consequential happens. The prototype can draft, classify, summarize, or suggest. The user should still approve the result before it sends a message, changes a record, or makes a commitment.
This is not a permanent limit. It is a sensible starting point while you learn where the model fails. A support assistant can draft a reply. It should not send a refund promise on its own during a Saturday night outage just because the prompt sounded confident.
Show the source text when possible. Let the user edit the result. Make rejection easy. Those small choices turn an impressive model response into a product someone can cautiously use.
Add Cost Telemetry on day one
The third safeguard is Cost Telemetry. You need to know what each useful action costs before you invite more users.
Log the model name, input tokens, output tokens, duration, retry count, and error type. If you use a hosted model API, calculate the estimated cost per request from its current public pricing. If you use Whisper for transcription, track audio duration. If you use an image model, record image size and generation count.
A prototype may have only ten users and still generate a nasty bill if a frontend retry calls the model four times per request. The mistake I keep watching teams make is tuning prompt length while ignoring duplicate requests, oversized context, and failed calls that automatically repeat. The glamorous optimization is rarely the expensive one.
Set a basic limit too. One account might get 20 generations per day. That is enough for learning and gives you time to catch a runaway loop before it becomes a billing conversation.
These safeguards are small. That is the point. They protect the learning process without turning a weekend build into a compliance program.
Put it in public before it feels ready
Build in public is often treated as a marketing tactic. I see it as a feedback system, provided you share the work honestly.
Post the problem you are testing. Show a short clip of the workflow. Ask a narrow question: "Would this save you ten minutes on a weekly report?" Do not ask people whether they "like the idea." People are generous with ideas and remarkably inconsistent about using them.
I prefer to share three things:
- What I believed before building.
- What the prototype actually does.
- What I am still unsure about.
That format gives people something concrete to respond to. It also lowers the emotional pressure. You are not announcing a grand new company. You are inviting people to inspect a small experiment.
If nobody responds, that is information. If people praise the concept but do not click the link, that is information too. If three people use it and all ask for the same missing action, you have a stronger signal than a hundred polite comments.
The emotional part is real. Showing unfinished work can feel like standing in a doorway with your tools scattered behind you. You may worry that experienced builders will see the rough edges. They will. Most of them also know that rough edges are normal before a product has earned the right to be polished.
So give yourself permission to publish a narrow build. Say what it does. Say what it does not do. Do not hide manual steps behind fake automation. People can usually tell, and they are often fine with it.
The same principle applies to an adaptive learning tool like Ziggyloo, a support assistant, or a marketing workflow like the ones running inside Zentoko. The first useful experience matters more than a large feature map. A person needs a clear next action, and the builder needs evidence that the action actually helps.
A weekend schedule that leaves room for reality
Here is the schedule I use when I want to ship fast without confusing exhaustion with progress.
Saturday morning: decide the test
Write the promise, the user path, and 10 to 20 evaluation examples. Choose a model and stack you already understand. Do not spend two hours comparing providers for a task that three users will test.
Saturday afternoon: build the complete path
Connect the input to the model and the result back to the screen. Add loading, errors, logging, and a way to edit the output. Deploy as soon as one full request works.
Saturday evening: break it on purpose
Use strange inputs. Paste an empty request. Paste a very long request. Ask for something outside the promise. Disconnect the model API if you can. Check what the user sees when the system fails.
Sunday morning: watch real use
Send the link to three people who match the target user. Ask them to complete the task while you stay quiet. Note where they pause, what they misunderstand, and whether they go back to fix the output.
Sunday afternoon: make one useful change
Fix the largest obstacle you observed. Not the most interesting one. Then run the same evaluation examples again and publish what changed.
By Sunday evening, you should know one of three things: people want the workflow, people want a different workflow, or the problem is not urgent enough to pull them back. All three outcomes are valuable. A weekend that prevents six weeks of wrong building has done its job.
What to do on Monday
The Monday decision is where many weekend projects lose their value. The builder sees a rough interface, feels embarrassed, and starts polishing. Usually the wrong move.
Open the notes from your user sessions and sort every observation into one of four buckets:
- The user could not start.
- The user could not trust the result.
- The user could not finish the task.
- The user finished but had no reason to return.
Pick the bucket that blocked the most people. Fix that problem before adding another feature. If nobody completed the task, a new export format will not save the product.
Then make a decision about the next test. Maybe the tool needs better input guidance. Maybe the model needs a smaller context budget. Maybe the result needs citations or editable fields. Maybe the workflow is useful only when paired with a manual service.
That last possibility is worth taking seriously. A manual step is not automatically a failure. It can show you what automation should eventually handle, and it keeps you close to the user while the product is still forming.
What I'm telling you is this: a weekend does not have to produce a company. It has to produce a better question.
How do I ship an AI product quickly as a solo founder?
Choose one user, one task, and one measurable result. Use familiar tools such as Next.js, Vercel, Postgres, and a model API, then keep a human approval step until you understand the failure patterns.
What should I leave out of an AI MVP?
Leave out features that do not help a user complete the first workflow or help you measure repeat use. Billing, complex permissions, broad integrations, and advanced dashboards can wait unless they are part of the actual test.
Is build in public useful before the product is polished?
Yes, when you share a specific experiment rather than a vague announcement. Show the workflow, state what you are testing, and ask for feedback tied to a real action instead of general approval.
How do I know whether my weekend prototype worked?
Look for completed tasks, repeat use, useful corrections, and a clear reason someone would return. Praise is weak evidence by itself. A person using the product again is much stronger evidence.
You are allowed to build something small. You are allowed to learn that the idea needs to change. You are even allowed to delete the prototype after it answers the question you had.
The model is not the product. The learning loop around the model is the product. Ship the smallest honest test, measure what happened, and let the next weekend earn its place.
Join the conversation
Subscribe to comment
Join Curtis Foster's newsletter to leave a comment and get new posts in your inbox.



