How to make and upload a work
Betamadang is a free collection of small HTML games and tools that run right in the browser, with no install or sign-up. Sign in with Google to upload a single HTML file (up to 800KB), get feedback in the comments, and find people for development, design, QA, and planning on the team board. It is available in Korean and English.
How your first upload works
- One. Say what you want in a lineSomething as short as a cake stacking game is enough.
- Two. Ask an AI with the sentence belowChatGPT, Claude, and Gemini all work.
- Three. You get one HTML fileSave the file exactly as it comes.
- Four. Upload it and share itSend the link and a friend can play it straight away.
The steps in detail
- Prepare a single HTML file containing its CSS and JavaScript.
- Sign in with Google, select your file, and test it in the preview.
- Add a title, description, and category, then upload and publish. Each account can upload up to three works per day.
- Open your published work from My studio to read feedback.
What is blocked inside the player
Works run inside a sandboxed frame kept apart from the rest of the site. The features below throw errors or do nothing there.
- Storage: localStorage, sessionStorage, IndexedDB, cookies. Keep records in variables.
- Windows: alert, confirm, prompt, window.open, fullscreen. Draw confirmations inside the page.
- Form submission. Handle button clicks and key presses instead.
- External addresses: images, fonts, scripts, API requests, iframes. Embed images as data: URLs or draw them on a canvas. The one exception is the Three.js r128 CDN address, which is inlined into your HTML on upload.
- eval, new Function, WebAssembly, Worker, clipboard writes, history.pushState.
What works: canvas 2D, WebGL, Web Audio (after the first tap or click), requestAnimationFrame, and keyboard, mouse, and touch input.
A prompt for your AI
Paste it into your AI chat and add one line about what you want.
Build this as one HTML file with its CSS and JavaScript, up to 800KB. Do not use external images, fonts, scripts, API requests, or iframes, and do not use localStorage, sessionStorage, cookies, alert, confirm, prompt, form submission, or eval. Keep records in variables and draw any confirmation inside the page. Make it work with both touch and keyboard. Do not include secret keys or personal data. If the work produces a score or record, send parent.postMessage({betamadang:'result',label:'Score',value:score},'*') once when it ends.Turn a result into a share card
When a work reports a score, Betamadang builds a result card under it with a share button. Works that send nothing behave exactly as before.
parent.postMessage({betamadang:'result',label:'Score',value:2048},'*');valueis required: a number, or a short string of 24 characters or fewer.labelsays what the value is. 16 characters or fewer.detailis one extra line. 60 characters or fewer.- When a smaller number is the better one, as with times, add
better:'low'as well.
Send it once when the work finishes. If you send several, the last one stays. The personal best lives only in the visitor browser and never reaches the server.
ZIP files, executables, and projects requiring a separate server are not supported. Report problematic works so an administrator can remove them from public view.
Betamadang Studio works are made by the operator with help from AI tools, then run and checked by hand.