Inspiration
I wanted to build something for the Y2K-themed hackathon that felt actually lost-media, not just "blue gradients and Comic Sans." Microsoft Encarta was the peak of 90s/2000s edutainment — a digital encyclopedia that felt magical because it had video and hyperlinks. But Encarta Online (2001-ish) was a weird in-between product that barely anyone used and is now completely gone from the internet.
So: what if we pretended to find it? What if Netcarta was the leaked build of "Encarta Online Edition," preserved just well enough to run in a modern browser — but with real, current Wikipedia content underneath the Win9x chrome?
What it does
Netcarta is a fake-leaked 2001-era encyclopedia that reads real Wikipedia articles through skeuomorphic Windows 98 UI. Beveled buttons, bitmap-feeling type, marquee banners, the works.
The headline feature is multiplayer Wikiracing in realtime:
- Any player can spin up a race room with a starting article and a destination article.
- Other players join via a 6-character room code.
- Once everyone readies up, a 5-second countdown starts.
- Players navigate only through inline links in the live Wikipedia article body.
- The first player to land on the destination article wins. Spectators can join mid-race and watch every player's click path update live.
How I built it
- Next.js 15 (App Router) + React 19 on the frontend.
- Convex as the backend — handles all realtime sync, room state machines, and article caching.
- Wikipedia REST + MediaWiki APIs for live article content (HTML with sections, anchor rewriting so every inline link routes back through our app).
- Cloudflare Workers for deployment via OpenNext, plus Workers AI for article recommendations.
- Tailwind + 98.css + custom bevel CSS for the Win9x aesthetic.
- Bun as the package manager, because it's fast and we had 5 hours.
The race system uses a proper Convex pattern: a public action (advanceParticipant) calls an internalQuery to read cached article data, validates the move against the article's actual inline links, then commits the advance via an internalMutation. All clients stay in sync through Convex's reactive queries — no websockets code written by me.
Built With
- cloudflare
- convex
- nextjs
Log in or sign up for Devpost to join the conversation.