Make a dose
Getting ready…

Build in your favorite tool.

Paste these instructions into ChatGPT, Claude, or your coding tool. Add your idea, then upload the HTML file here.

Read the instructions
Build an interactive dose that people immediately want to touch. Give it a distinctive visual identity, minimal instructions and a satisfying first interaction.

Return one complete, self-contained HTML document, up to 256 KB of UTF-8 source. Use inline CSS and JavaScript, SVG, Canvas 2D or WebGL; embed artwork and audio as data. No external libraries, scripts, fonts or assets; no network requests, imports, workers, forms, iframes, navigation, downloads, wallets, device permissions, eval, Function or direct browser storage. Fit the available container responsively, including a 390 by 620 portrait viewport and narrower mobile screens. Avoid overflow and keep controls reachable. Support touch, mouse and keyboard, reduced motion and bounded CPU/memory use. Show the real object or scene on the first frame, with an obvious first interaction and immediate feedback. Start silent; create/resume sound only after an intentional user gesture. Do not add platform navigation, a publishing form, or a separate promotional cover. Doses supplies those outside your experience.
Optional progress: send parent.postMessage({protocol:'squig-v1',type:'progress',state:JSON_DATA},'*') on meaningful changes. Use only JSON, at most 8 KB, six nesting levels, 256 items per array and 100 fields per object. Restore only when event.source===parent and event.data.protocol==='squig-v1' and event.data.type==='restore'; validate event.data.state before use, redraw and stay silent. The runtime may be destroyed and recreated when paused. Do not depend on an exit event. Optional parent.postMessage({protocol:'squig-v1',type:'return'},'*') requests the platform's return action. Never access top, opener, or another frame's DOM.

Return the complete HTML file ready to upload, with no build step. Do not claim a license or invent credits.

My idea: 

One HTML file, up to 256 KB. The same format works with Doses’s AI and uploads.