tinyjam '27.
The first annual competition for self-contained web works. 64KB hard limit. Theme: Origin Story. Opens May 6, 2027. Closes June 6, 2027.
What it is
tinyjam is the annual competition for tinyfiles.tv. Once a year, we run a one-month jam with a theme, a hard size limit, and a jury of Raters. Winning works are permanently enshrined in the collection, with a badge that never comes off.
The rest of the year, the collection is open for rolling submissions and the cap is 5MB. The jam is where the cap is 64KB. It's the one time of year where the site's aspirational number is a hard rule, and everybody who enters is trying to hit it.
Key dates
[TINYJAM27].The theme
Everyone has one. The first draft, the prototype, the moment before the machine turned on. A work about where something came from — or one that is itself a beginning.
Interpret it however you want. We treat the theme as a rating criterion, not a disqualifier. A piece that doesn't engage with "Origin Story" can still win — but pieces that do engage with it have an advantage in the scoring.
The rules
- Hard 64KB limit. Your submitted file must be ≤ 65,536 bytes. Uncompressed. If it's a zip, the unzipped total must fit. Anything over 64KB is disqualified from the jam — no exceptions, no "close enough."
- JavaScript and WebAssembly only. No Python, no server-side code, no Docker. Plain HTML, CSS, and JavaScript. WebAssembly is accepted with the original source ZIP. No frameworks, no bundlers, no build steps for JS submissions — WASM must ship its source ZIP alongside the compiled artifact.
- Self-contained. No external resources. No CDN, no Google Fonts, no remote assets. Runs offline. Single file, or a ZIP whose total uncompressed size stays under the cap. If a ZIP is used, every asset in it must be local to the ZIP — nothing fetched at runtime.
- Source viewable. Provide a link to a public, readable, unminified source repo (GitHub or equivalent). The work itself must be inspectable.
- PG-13. Zero curse words, zero suggestive content, zero politics. Violence within standard video game norms is fine.
- No live chat. Multiplayer games must use the standardized 64 preset phrases. No uncontrolled text communication.
- New content only. What you submit must be built for tinyjam '27, not pulled from an old portfolio.
- 18+ to submit. Minors can submit via a parent or legal guardian.
Categories
Every submission is entered into one of four categories:
Music
WebAudio songs, synths, generative pieces, ambient works.
Games
Self-contained, playable games in vanilla JavaScript.
Utilities
Single-file tools, calculators, editors, experiments.
Videos
Sequenced JavaScript choreography videos and canvas films.
Each category gets a first-place winner, a runner-up, and an honorable mention. There is also one Grand Prize across all categories, chosen by the Rater jury as the best overall entry.
Judging
tinyjam uses the same Rater jury as the rest of the site. Every submission is scored blind, from 0 to 100, by the Raters. The highest aggregate score in each category wins.
What makes a piece score high:
- Engagement with the theme. "Origin Story" — how well does the work explore it?
- Execution. Does it work? Is it polished? Does it feel finished?
- Innovation. Is it something we haven't seen before?
- Restraint. Does it use its kilobytes well, or waste them?
Every submission that scores above 50% is added to the permanent collection. Below 50% goes to the Asset Graveyard. The competition doesn't change this — the threshold is the same as always.
Prizes
tinyjam has no cash prize. What it has is something better: permanence.
Grand Prize
Permanent "Grand Prize, tinyjam '27" badge on the work page and creator profile. Featured in the collection. One award, across all categories.
Category winners (×4)
Permanent "First Place, [Category], tinyjam '27" badge. One per category.
Runners-up and honorable mentions
Permanent badges. Two per category.
All entries above 50%
A permanent "Entered tinyjam '27" badge. You don't have to win to be marked.
How to enter
Submission happens in Discord, same as everything else. Join the server, read the rules, then drop your files in the submission channel with the tag [TINYJAM27] in the message.
Include:
- Your work (single file, or a .zip if assets are needed)
- A JSON sidecar (title, description, tags, license)
- A link to a public source repo (GitHub or equivalent)
- Cover images if you want them
Every submission goes through the same curation pipeline as always: antivirus scan, AI screening, manual review. If it passes the size check and the review, it goes into judging.
Join the Discord →FAQ
Why 64KB?
The Commodore 64 had 64 kilobytes of RAM. The site is called tinyfiles.tv and is patterned on the era of tiny machines. 64KB is the number that era is remembered by. It's also a power of two, which is pleasing. And it's achievable — most works in the collection are already well below 100KB. 64KB is the goal the site has always aimed at. The jam is where we enforce it.
Why is the jam's size limit different from the site's?
The site accepts works up to 5MB and accepts JavaScript, WebAssembly, and Python. The jam accepts works up to 64KB, JavaScript and WebAssembly only. That's deliberate — the site is a publication; the jam is a competition with a narrower scope. If a 70KB work doesn't fit the jam, submit it to the site normally. It's still welcome, just not in the competition.
How is 64KB measured?
Total uncompressed bytes of the submitted file(s). 64KB = 65,536 bytes (technically 64 KiB, if you want to be pedantic about it). If you submit a zip, the unzipped total must be ≤ 65,536 bytes. Not the zip size — the expanded size.
Can I submit a Python work?
Not to tinyjam. The jam is JavaScript and WebAssembly only — the size limit and the source-readable rule assume browser-native code. Python works are still accepted on the site for regular submissions, just not for the competition.
Can I submit more than one entry?
Yes, but each submission is evaluated independently. No bundling, no "series." Every work stands on its own.
Can I work with a team?
Yes. Team submissions are accepted. Prizes are shared among the team.
Can I submit a work I made before the theme was announced?
Yes, if you can reasonably demonstrate that the work engages with the theme. If it predates the theme entirely and doesn't relate to it, it will still be accepted but might not score as high.
Do I need an account?
No. There are no accounts on tinyfiles.tv. You submit via Discord, using your Discord handle. No login, no email, no password.
What if I don't win?
If your work scores above 50%, it's still added to the permanent collection — just without the jam badge. Most submissions that pass the threshold get in, even if they don't win.
What if I don't have a Discord account?
You need one to submit. It's free, and it's the only way to reach the submission pipeline. If that's not an option for you, email mikemabes1986@gmail.com and we'll figure it out.
Is there a physical prize?
Not for 2027. If a sponsor comes forward, that could change. The prize for now is permanence — the winning works stay in the collection forever, marked as the first-ever tinyjam winners.
When does the next tinyjam happen?
Every year, opening May 6 and closing June 6. tinyjam '28 opens May 6, 2028. Mark the calendar.
Past winners
None yet. The first tinyjam happens in May–June 2027. This section will be filled after the winners are announced — and it will stay filled.
See also
For the submission pipeline that runs every tinyjam entry, see the Submission Criteria. For the Rater system that judges the competition, see the Rater Guidelines. For the site's standard rules for regular (non-jam) submissions — 5MB cap, JavaScript + WASM + Python accepted — see the Submission Criteria. For the annual Python competition, see python-classic.
Join the Discord to enter tinyjam '27 →