Guide

A Kid's First App: One Sentence, One Browser Tab, One HTML File

A child opens a tab, types one sentence in English, and watches a working app draw itself. Thirty seconds later they click save and a single .html file lands in the downloads folder. No account, no install, nothing for them to log into. Here is what to type, what comes back, and why the path is actually safe to hand to a seven-year-old.

M
Matthew Diakonov
7 min

Direct answer (verified 2026-05-13)

Open mk0r.com on any browser. Type one short sentence describing the app (for example, a counting game with big buttons). Watch the HTML stream into the right pane. Click save when it looks right and one self-contained .html file downloads. No signup is required. Anonymous visitors run on Claude Haiku via FREE_MODEL = "haiku" in src/app/api/chat/model/route.ts line 5, and the homepage hero on src/app/(landing)/page.tsxline 1160 reads “No signup. No credit card.” That combination is the kid-safe surface area.

0Accounts required to start
0HTML file out the other side
0sFrom sentence to first paint
0Words a sentence should stay under

Why this works for a child specifically

Most things adults reach for to teach a kid to build an app come with a wall before the first interaction: an account, a parent email, an install, a long welcome tour. The wall is fine for adults. It is the thing that kills the moment for a six- or seven-year-old who saw something on a friend's tablet and wants to try it now.

A sentence-to-HTML tool with no account changes the shape of that moment. The kid types one short English sentence. They watch the app draw itself in the next pane. They iterate by saying what to change next. The thing they made is a single .html file they own and can save to a USB stick, attach to an email, or just keep open in a tab forever.

For mk0r specifically, the no-account part is not marketing. It is in the code. Anonymous visitors are routed to FREE_MODEL = "haiku" (src/app/api/chat/model/route.ts line 5). The session is just a UUID in the browser's localStorage, written on first paint. There is no account creation flow to walk a child through.

The walk-through, end to end

Five concrete actions. None require an adult to be involved past opening the browser, and even that is optional if the kid already has the device.

  1. 1

    Open the tab

    Hand the device to the kid, navigate to mk0r.com. No login, no setup wizard, no welcome tour. The textarea is the first thing they see.

  2. 2

    Type one sentence

    Noun, then one specific thing. 'A counting game with big buttons.' Press the arrow. Or hold the mic and say it.

  3. 3

    Watch the HTML land

    The right pane streams the layout, the colors, and the behavior into a live preview. About thirty seconds for a small one-screen app.

  4. 4

    Iterate by saying what to change

    'Make the buttons bigger.' 'Add confetti when I press 10.' Each follow-up sentence updates the same file in place.

  5. 5

    Save the .html file

    When the kid is happy, click save. The browser downloads one self-contained HTML document. Double-click it later, offline, and it still works.

Sentences a kid can actually try

Each one fits the noun-plus-one-specific-thing shape. None requires an account anywhere on the internet. Each ends with a saved .html file the child can keep. Open a tab to mk0r.com, type any one of these, and see what comes back. Then add a second sentence. Then a third.

A counting game with big buttons

Numbers 0 to 10 with oversized tap targets. The model picks a kid-friendly palette and a chunky sans-serif by default. Add a sentence after: 'celebrate at 10 with a balloon'.

A drawing pad with rainbow colors

A canvas, a color palette, an undo button. Fingertip-friendly on an iPad. Follow-up: 'add a clear button at the top'.

A bedtime story timer with a moon

A countdown with a soft animation. Useful for the seven-minutes-until-lights-out negotiation. Follow-up: 'play a chime when it ends'.

A name-the-animal flashcard deck

Tap the card, flip to the answer, tap again to advance. The model writes a small JS state machine. Follow-up: 'add a deck for shapes'.

A color mixer with sliders

Red, green, blue sliders, big swatch in the middle, the hex code underneath. An accidental physics lesson hidden inside an app.

A dance party button

One giant button. Tap it, the background cycles through bright colors and the screen wobbles. Add: 'make the wobble slower'. Add: 'add a stop button'.

None of these is a real product. They are first apps, the kind a kid points at and says “I made that.” The point is the verb: made. They typed a sentence in a browser tab and the thing exists. The hardest part for an adult standing nearby is to not over-explain.

What the sentence should look like

The four default prompts shipped on the homepage (HERO_EXAMPLE_PROMPTS in src/app/(landing)/page.tsx line 1092) all share the same skeleton:

  • 01A habit tracker with daily streaks
  • 02A pomodoro timer with focus sessions
  • 03A mood journal with weekly insights
  • 04A flashcard app for language learning

Noun phrase, then with, then one specific thing. That is the shape. The kid version is the same shape with a different noun and a kid-meaningful constraint:

  • A counting game with big buttons
  • A drawing pad with rainbow colors
  • A bedtime story timer with a moon
  • A sticker book with cats and dogs
  • A color mixer with sliders

The most common mistake when a parent helps draft the first sentence is to make it too long. “A counting game with big buttons, sound effects, dark mode, friend leaderboards, and a tutorial.” The model gets too many constraints in one breath and the first draft is mush. The fix is to drop everything past the first with, send, and let the kid add the rest one sentence at a time. The maker loop is built for iteration, not one-shot.

How this compares to the platforms most adults reach for first

The honest comparison, line by line. The visual block-based editors (Scratch, Tynker, MIT App Inventor) are excellent tools and this is not an argument against them. The argument is just that they are a different shape with a different first ten minutes, and that shape has a wall in front of the first interaction that this one does not.

FeatureBlock-based editormk0r
Account required to startYes, parent email + passwordNo. Open the tab and type
Install on the deviceYes, app store downloadNo. Runs in any browser
What the kid saysDrags blocks together visuallyTypes or speaks one English sentence
Output formatLives inside the platformOne savable .html file
Where the file runs afterRequires logging back inDouble-click, opens offline
Data collected from the childEmail, age, progress, sometimes moreLocal UUID in browser, nothing leaves

The trade-off is real. A block-based editor teaches a kid the shape of a program (event, loop, condition). A sentence-to-HTML tool teaches a kid the shape of a brief (what do you actually want?). Different first lessons. Pick the one that matches what is happening at the kitchen table today: do you have ten minutes before bedtime, or do you have a Saturday?

The single-file part is the safety feature

When the kid clicks save, the browser downloads a single .html document built from the current iframe srcdoc. It has the CSS inside a <style> tag and any JavaScript inside a <script> tag, all in one file. There is no mk0r runtime baked in, no analytics beacon, no fetch back to a server. Double-click the file the next morning, offline, with no internet, and it still works.

That property matters more than it sounds. The kid's artifact is not held hostage by the platform that made it. They can email it to a grandparent, drop it on a thumb drive, host it on a free static host like GitHub Pages or Netlify Drop, or just keep the file in the same folder as their school worksheets. If mk0r vanishes tomorrow the file still opens. That is the part of the differentiator that does not show up in the marketing line.

It also means the file is auditable. An adult can open it in any text editor, scroll through three hundred lines of HTML, and confirm what it does. There is no minified bundle, no opaque blob. For a household that cares about what runs on a kid's screen, that is the answer to “what is actually in this app my child just made?”

Voice for a kid who cannot type yet

Next to the text input on the homepage there is a microphone button. Hold to record, release to transcribe. The transcript handler at src/app/(landing)/page.tsx line 1123 appends the result to whatever is already in the textarea and leaves the kid in text mode so an adult can read it back before pressing send.

The reason text is the default and not voice is in the file comment on line 1102: most browsers do not grant microphone permission on first landing, and a voice-first flow would kill the primary action (send a prompt) for the majority of first-time visitors. For a kid who already has microphone permission granted on their device, holding the mic and saying “a counting game with big buttons” works fine.

For a kid who is older and already typing, the text input is the simpler path: less context to switch, fewer permission prompts, same outcome.

Honest limits

One sentence is enough to get a working draft of a single-screen, client-side toy. It is not enough to ship a real product. The things that do not fit in one .html file:

  • Real auth.If the kid's sentence is “a chat room where me and my friend can talk”, the model will draft a chat UI, but the chat is not connected to anything. There is no server.
  • Real multiplayer state. A leaderboard, a shared whiteboard, a real-time game with a friend on another device, none of that fits in a single file that runs in a browser tab.
  • Persistent data across sessions.Anything saved goes in browser localStorage, which is local to that browser on that device. Clear the cache, the score is gone. For a kid's first app that is usually fine; it is just worth knowing.
  • A native app on the App Store. The output is HTML, not an iOS or Android binary. You can save it to the home screen on iOS and it gets an icon, but it is still a web page.

None of this disqualifies the tool for the use case. A kid's first app is a first app, not a finished product. The point is the moment where the child says “I made that”, not whether the artifact is shippable to the App Store.

Want to walk through this with your kid on a call?

Twenty minutes, a real screen share. Bring a child and a sentence. We open mk0r.com together and you watch the first app appear in their browser.

Frequently asked questions

Do I have to make an account before my kid can build something?

No. The mk0r homepage hero on src/app/(landing)/page.tsx line 1160 literally reads 'No signup. No credit card. Start building in seconds.' Anonymous visitors get a session UUID stored in the browser's localStorage on first paint, and that is the whole sign-in. The free generation runs on Claude Haiku, which is hard-coded as FREE_MODEL = 'haiku' in src/app/api/chat/model/route.ts line 5 and gates the route to anonymous users. A kid can open the page on a school iPad, type a sentence, watch an app appear, and never reach an email gate.

What kind of sentence works best as a kid's first prompt?

A noun phrase plus one specific thing. The four default examples shipped on the homepage (src/app/(landing)/page.tsx line 1092) follow this exact shape: 'A habit tracker with daily streaks', 'A pomodoro timer with focus sessions', 'A mood journal with weekly insights', 'A flashcard app for language learning'. For a kid, the same shape: 'A counting game with big buttons', 'A drawing pad with rainbow colors', 'A bedtime story timer with a moon'. One thing the app is, one thing the app does. Keep it under twelve words. Resist the urge to pack five ideas into the first sentence.

Where does the HTML actually live? Does it phone home?

While the kid is iterating, the document lives in an iframe in the right pane. The bytes never touch disk unless they click save. When they do click save, the browser downloads a .html file built from the current iframe srcdoc, with no mk0r runtime, no analytics beacon, and no fetch back to our servers baked into the file. It is a single self-contained HTML document with the CSS inside a <style> tag and the JavaScript inside a <script> tag. Double-click the file later and it opens offline.

Can my kid use this on an iPad or a Chromebook?

Yes. mk0r is a web app. Open the browser, navigate to mk0r.com, type a sentence. The output is mobile-first by design: the system prompt for the generation pass tells the model to write base styles for narrow viewports first and add sm:/md:/lg: breakpoints after (src/core/vm-claude-md.ts line 91). That same system prompt is what produces interfaces that look right on a school iPad without zooming.

What about voice instead of typing for a kid who cannot type yet?

There is a mic button next to the text input on the homepage. Hold to record, release to transcribe. The handler in src/app/(landing)/page.tsx line 1123 appends the transcript to whatever is already in the textarea, then leaves the kid in text mode so they can clean up before pressing send. The default state is text first because the mic permission prompt would otherwise hit on first landing and most browsers reject it (line 1102 comment explains the reason). For a child who is still learning to spell, holding the mic and saying 'a counting game with big buttons' works.

What is in scope for a kid's first sentence and what is not?

In scope from one sentence: counters, simple games, drawing pads, story timers, sticker generators, color mixers, sound boards, single-screen quizzes, name-the-animal cards, calculators with a friendly skin. Things that need an account or shared multi-player state (a chat room with a friend, a live leaderboard, saving progress between devices) are out of scope from one sentence because the free path is fully client-side. The kid can iterate by adding sentences ('make the buttons bigger', 'add a confetti animation when I win'), but the file stays a single document the browser can render with no backend.

Is the output safe to share? Will it ask my kid for any personal info?

The model is instructed to produce a working app, not collect data. The generated apps run entirely client-side in the iframe (or, after saving, in a static file). There is no built-in signup form, no third-party login, no tracking pixel injected. If the kid types something like 'an email collector for my class' the model will draft an HTML form, but that form does not submit anywhere unless you wire it up later. For a first-app sandbox aimed at a child, stick to apps that do not collect anything: games, generators, calculators, drawing tools, timers.

How long does the first app take to appear after pressing send?

Around thirty seconds for a small one-screen app. The product warms a background project pool before the first send, so the prompt does not pay a cold-boot tax. Claude Haiku streams the HTML character by character into the iframe in the right pane, so the kid watches the layout, the colors, and the buttons land in real time. They do not stare at a spinner; they watch the page get drawn.

Can my kid edit the HTML by hand once it generates?

Yes. The output is real HTML, CSS, and JS, with no proprietary export format. Save the file, open it in any text editor (TextEdit, Notepad, VS Code), change a color, save, reopen in the browser. For an older kid who is curious about what is under the hood, the saved file is a small, readable single document instead of a maze of bundled JavaScript. For a younger kid who is not ready for that, the iterate-by-sentence loop on mk0r.com is enough; they never have to read code.

Where can I verify the claims on this page?

Every implementation detail traces to a real file in the open-source repo at github.com/m13v/appmaker. The no-signup behavior: src/app/(landing)/page.tsx line 1160 (the hero badge) and src/app/api/chat/model/route.ts line 5 (FREE_MODEL = 'haiku'). The four example prompts: src/app/(landing)/page.tsx line 1092 (HERO_EXAMPLE_PROMPTS). The mobile-first instruction to the model: src/core/vm-claude-md.ts line 91. The voice-input handler: src/app/(landing)/page.tsx line 1123.

mk0r.AI app builder
© 2026 mk0r. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.