A fake Danish school portal that secretly contains browser games.
The landing page looks exactly like a real school portal (Aula/Skoleintra). No visible game elements. A secret trigger reveals a game selection layer.
Click the Skoledi logo 5 times fast. The main content area transforms into a game selection grid. Games load inside the portal — the header and sidebar stay visible at all times.
Press Escape to return to the game grid. Click the logo 5x again to return to the boring school portal.
| game | path | description |
|---|---|---|
| LYN Runner | /runner/ |
Endless runner. Stack one bitcoin. |
Games are registered in games.json and rendered dynamically.
Want to add a game? Here's how:
- Fork this repo
- Create a subdirectory for your game (e.g.
/snake/) - Build your game as static HTML — no frameworks, no build step
- Add an entry to
games.json:{ "name": "Your Game", "path": "/your-game/", "description": "Short description.", "thumbnail": "/your-game/preview.png" } - Test it — the game must work within a constrained content area (not fullscreen). The portal header and sidebar are always visible.
- Open a PR
- Static HTML only. No build tools, no frameworks.
- Must work inside an iframe within the portal's main content area.
- Keep file sizes reasonable — no massive assets.
- Game should be playable on both desktop and mobile.
/index.html ← school portal (Danish)
/style.css ← portal stylesheet
/skoledi.js ← secret trigger, game layer, clock
/games.json ← game registry
/runner/ ← LYN runner (first game)
Serve from any static file server. The simplest option:
npx serve .
Or just open index.html in a browser (note: fetch() for games.json requires a server).
Push to main — Netlify auto-deploys. No build command needed.
- Static HTML, CSS, vanilla JS
- No frameworks, no dependencies, no build tools
- Same-origin iframes for game loading
- Danish language throughout the portal UI
MIT