// A Hack Club YSWS by sami9889
Everyone's shipping 500KB of JavaScript just to show some text on a page. Build something under 15KB (no frameworks, no React, no Tailwind) and Sami will mail you a parcel from Australia.
This is a You Ship, We Ship challenge run by Sami from Hack Club Slack. The idea is simple, build something small, ship it publicly, and get a parcel mailed to you from Australia.
Can't send a raw potato through customs, but stickers, snacks, and a proper airmail postcard all clear just fine. Hit the smaller size tiers and the parcel gets fatter.
No gimmicks. You build it, Sami packs it, Australia Post does the rest.
Keep it simple. Keep it small. Keep it vanilla.
Fonts and CDN scripts (like Google Fonts) don't count toward your KB limit, but only decoration and styling get that pass, your actual app or game logic has to be the code you wrote and it counts. That's the size of your real files as written, not a gzipped or minified-then-measured number. A blank page, a "hello world" print, or an unmodified starter template doesn't qualify, however small it is.
| Rule | Standard (<15KB) | Hard Mode (<5KB) | Ultra Hard (<2KB) |
|---|---|---|---|
| Frameworks (React, Vue, etc.) | Not allowed | Not allowed | Not allowed |
| CSS libraries (Tailwind, Bootstrap) | Not allowed | Not allowed | Not allowed |
| Build tools / bundlers | Not allowed | Not allowed | Not allowed |
| Vanilla HTML + CSS + JS | Allowed | Allowed | Allowed |
| Total size counted across all your files combined | Applies | Applies | Applies |
| Splitting code across many files to dodge the total | Not allowed | Not allowed | Not allowed |
| External fonts & CDN scripts (styling/decoration only) | Allowed (don't count) | Allowed (don't count) | Allowed (don't count) |
| Loading your actual app/game logic from a CDN | Not allowed | Not allowed | Not allowed |
| Iframing in a separately hosted app to dodge the limit | Not allowed | Not allowed | Not allowed |
| Real logic lives on your own server, page is just a shell | Not allowed | Not allowed | Not allowed |
| Must be live with a public URL | Required | Required | Required |
| Source code must be public | Required | Required | Required |
| Must actually do something | Required | Required | Required |
| Blank pages / "hello world" only | Not eligible | Not eligible | Not eligible |
| Unmodified starter template or boilerplate | Not eligible | Not eligible | Not eligible |
| Someone else's project submitted as your own | Not eligible | Not eligible | Not eligible |
| Using AI to help debug or fix a specific issue | Allowed | Allowed | Allowed |
| Using AI to generate your core app/game logic | Not allowed | Not allowed | Not allowed |
| Minified or hand-golfed code | Allowed | Allowed | Allowed |
| Near-duplicate resubmissions to farm extra parcels | Not eligible | Not eligible | Not eligible |
| Potato theme | Bonus points | Bonus points | Bonus points |
Every submission gets checked by hand. Templates, boilerplate, iframe tricks, backend-offloaded logic, and empty joke entries get politely skipped, no exceptions. One parcel per person per project.
Physically mailed to you, from Australia, and it's more than just spuds. Three tiers, each one stacks on the last.
Standard Mode
<15KB
Hard Mode
<5KB
Ultra Hard Mode
<2KB
Site, game, tool, anything that runs in a browser. Under 15KB. Potato theme earns bonus points.
GitHub Pages, Netlify, Vercel, Hack Club Nest, anywhere with a public URL.
Drop your live link and repo in #ship on Hack Club Slack. Tag @sami9889.
Sami checks it and posts your reward from Australia.
Drop your link in #ship and tag @sami9889. That's it.
Open #ship →All your files: HTML, CSS, JS, images. External stuff loaded from CDNs (like Google Fonts) doesn't count, but keep the spirit of it. The point is to prove you don't need a million dependencies.
No. It has to actually do something, even something tiny: a game, a tool, a toy, an experiment. That also rules out unmodified starter templates (default Vite page, create-react-app splash, etc.) and logic loaded in from a CDN just to dodge the size limit. Under 15KB is the challenge, not "under 1 line." Sami checks every submission by hand.
For debugging and fixing a specific issue, sure. For generating your actual app or game logic wholesale, no. The core idea and code need to be yours, that's the whole point of the challenge.
It needs to run in a browser: a site, game, tool, interactive thing. No native apps. Beyond that, build whatever you want.
No, but it earns bonus points.
Yes. Potatoes only show up in Ultra Hard Mode. Everyone else gets stickers, a postcard, snacks, and whatever else fits in the envelope that week.
It's coming from Australia so a few weeks depending on your country. It will arrive.
A global nonprofit network of student coding clubs and a Slack for teenage hackers. Free to join at hackclub.com.