No signup vibe coding on a phone: the form you never fill in
If you are reading this on a phone, you are holding the exact device the question is about. The short version: you can vibe code an app right now, from this browser, without making an account. Not “signup later” and not a free trial with a card on file. There is genuinely no form between you and the first build.
Direct answer (verified 2026-05-14)
Yes, you can vibe code an app on your phone with no signup. Open mk0r.com in any mobile browser and start typing. There is no email field, no password, and no app to install. Your identity is minted automatically on first paint, and the first six build turns are anonymous. A sign-in is only requested on the seventh turn, and signing in keeps everything you already built.
Most “no signup” tools mean “signup later”
Almost every builder that ranks for this topic is honest about one thing and quiet about another. The honest part: you can look at a demo or generate a preview without an account. The quiet part: the moment you try to actually build, save, or run something, a form appears. Some of them are mobile apps you have to install from a store first, which is its own signup with its own friction. “No signup” was the thumbnail, not the product.
mk0r took the harder route. There is no form on submit, no paywall on the first build, and no sleight of hand. The rest of this page is the literal path from a tapped link to a working app, and then the one mechanism that makes the empty front door possible.
The path from a tapped link to a building app
- 1
Tap the link
You arrived here from a thread on your phone. Tapping through to mk0r.com opens it in whatever browser your phone already uses. No app store detour, no install prompt, no QR code to scan with a second device.
- 2
The page paints
Two things happen with no input from you: a random session id is written to localStorage, and signInAnonymously runs to mint an anonymous Firebase UID. That is the entire account-creation step, and you did not touch it.
- 3
Type one sentence
The prompt box is already in reach of your thumb. Describe the app you want in plain words. Claude Haiku 4.5 starts streaming the build immediately. No plan picker, no card, no email gate between you and the first result.
- 4
Watch it build, then change it
The live preview renders the app. Reply to it the same way you would text a friend: smaller header, add an undo button, make it dark. You get six of these turns before anything asks you to sign in.
Why no signup is a bigger deal on a phone
On a laptop, an account form is a mild annoyance. On a phone it is the part of onboarding most likely to make you give up. Walk through a normal signup with your thumbs: type an email without a typo, invent a password that satisfies some rule you cannot see, clear a captcha that was designed for a mouse, then leave the browser, open your mail app, find the verification message, tap the link, and hope it returns you to the right place.
Every one of those steps is slower and more error-prone on a phone. They are also the steps that have nothing to do with the app you wanted to build. Removing the form does not just save time; it removes precisely the work a phone is worst at. What is left is a single textarea, which a phone handles perfectly well.
That is the whole reason this page exists as its own topic. Vibe coding from a phone is not hard because of the model or the preview. It is hard when a tool wraps the model in an account wall. Take the wall away and the phone is a fine place to build.
There is no signup form, because there is no signup code
This is the part no other guide on the topic gets to, because it is in the source rather than the marketing. mk0r does not “defer” the signup form. There is no signup endpoint to defer. Your identity is two values, both created by code that runs before you can type anything.
What runs on first paint, with zero input from you
// src/app/(landing)/page.tsx, line 46-52
let key = localStorage.getItem(SESSION_KEY);
if (!key) {
key = crypto.randomUUID(); // your session id
localStorage.setItem(SESSION_KEY, key);
}
// src/components/auth-provider.tsx, line 69-72
} else {
await signInAnonymously(auth); // your anonymous UID
}The first block mints a random session id and stores it under mk0r_session_key. The second block runs inside onAuthStateChanged and signs you in anonymously when there is no Firebase user yet. Together they are your account. Neither one waits on a form.
Because the identity is anonymous, the server still treats you as a real user. Your sessions and projects are owned by that anonymous UID in Firestore, the sandbox warms in the background (a prewarm call fires on first paint), and the model that answers you is Claude Haiku 4.5, the same model a signed-in user gets for free turns. The only thing missing is the email mk0r never asked you for.
You can verify this yourself without reading the code. Open the site, open your browser's storage inspector, and you will see one mk0r_session_key entry with a UUID in it. That UUID appeared the instant the page loaded. That is the receipt for an account you never created.
The honest limit: six turns, and the session stays on this phone
An empty front door has exactly one cost, and pretending otherwise would be dishonest. The chat API counts your completed anonymous turns on the Firestore field users/{uid}.anonTurnsCompleted. The constant ANON_TURN_LIMIT is 6, defined at src/app/api/chat/route.ts line 23. On the seventh turn the request returns sign_in_required and you get a one-tap Google sign-in.
The second half of the limit: that anonymous UID lives in this browser, on this phone. It does not roam to your laptop, and it does not survive clearing your browser storage. Six turns is enough to build and shape a tight single-screen app. If you want to keep going, or pick the project up on another device, the one tap of Sign in with Google upgrades the same anonymous user in place and carries every project with it. Nothing resets.
So the accurate framing is not “free forever, no account ever.” It is: build first, decide later, and the deciding is one tap rather than a form. For someone who tapped a link out of curiosity on a phone, that is the right order.
Want to vibe code your idea while we walk through it?
Twenty minutes, you open mk0r.com on the phone in your hand, and I show you the first six turns on the specific thing you are trying to build.
Frequently asked questions
Can I really vibe code an app on my phone without making an account?
Yes. mk0r is a website, not an app you install from a store. Open mk0r.com in Safari or Chrome on your phone and the prompt box is the first thing you see. The first six build turns run with no account at all. The first time anything asks you to sign in is the seventh turn. So the honest answer to the question is: you build first, you sign in later, and most quick experiments never reach turn seven.
If there is no signup form, what actually identifies me?
Two things, both minted automatically with zero input from you. First, getSessionKey() at src/app/(landing)/page.tsx line 49 generates a crypto.randomUUID() and stores it in localStorage under the name mk0r_session_key. Second, signInAnonymously(auth) at src/components/auth-provider.tsx line 71 runs inside onAuthStateChanged the first time the page paints, which gives you an anonymous Firebase UID. That random session id plus that anonymous UID are your whole identity. You never typed a character to get them.
Does no signup mean my app disappears when I close the tab?
No. Your sessions and projects in Firestore are owned by the anonymous Firebase UID, and the sandbox reconnects when you reload the page. The one real caveat: that UID lives in this specific browser. If you clear browser storage, or want the same projects on a second device, you lose the local key. One tap of Sign in with Google upgrades the same anonymous user in place, keeps every project, and makes it permanent and cross-device.
Why is skipping signup a bigger deal on a phone than on a laptop?
Because account creation is the single worst thing to do on a thumb keyboard. A typical signup is an email, a password that meets some rule, a captcha, and then a verification email you have to leave the browser to go open. Every one of those steps is slower and more error-prone on a phone than on a laptop. Removing the form removes precisely the part of onboarding a phone handles worst. What is left is a textarea, which a phone handles fine.
What happens on the seventh turn?
The chat API counts completed anonymous turns on the Firestore document users/{uid}.anonTurnsCompleted. The constant ANON_TURN_LIMIT is 6, defined at src/app/api/chat/route.ts line 23. Once you have used six turns, the next request returns a sign_in_required response and the interface shows a one-tap Google sign-in. Signing in keeps everything you already built; it does not reset the project or the conversation.
Which AI model runs for an anonymous phone session?
Claude Haiku 4.5. The constant FREE_MODEL is set to "haiku" at src/app/api/chat/model/route.ts line 5, and it is the same model whether you opened the tab on an iPhone, an Android phone, or a laptop. The device you build from does not change the engine doing the building.
Can mk0r build an app that actually looks right on a phone?
Yes, and that is the default. mk0r generates mobile-first HTML, CSS, and JS, and the live preview renders at a phone-sized viewport. So building from a phone and building for a phone line up: you describe the app on the same screen size it is meant to run on, and the preview shows you the real thing rather than a desktop layout you would have to re-check later.
Is there a catch hidden behind the no-signup promise?
One, and it is stated plainly above. Because your identity is anonymous and browser-bound, it does not roam between devices and it does not survive a storage wipe until you sign in. That is the deliberate trade for an empty front door. Everything else (the model, the sandbox, the live preview, the six free turns) is identical to what a signed-in user gets on the first six turns.
Keep reading
Phone vibe coding limits, named in source
What actually changes on a phone: one CSS breakpoint, a browser-bound session, and the keyboard. The model and sandbox are identical.
AI app builder, no signup: what is actually running
The Linux sandbox an anonymous visitor receives: six exposed ports, nine services, and a real Chromium, all without an email.
How to vibe code, start to finish
The loop, the prompts that work, and where describing an app to AI stops being enough.
You are already on the device. Open the site, type one sentence, and watch it build. The account question can wait until turn seven, if you ever get there.
Start building, no signup
Comments (••)
Leave a comment to see what others are saying.Public and anonymous. No signup.