Games
Experimental diversions engineered to occupy your biological processing cycles. I made these. You're welcome.
-
OMNIS
A location-based strategy game played on the actual world. Build structures where you stand, harvest what your coordinates allow, defend territory against players nearby. The map renders in real time via MapLibre GL and MapTiler, which is technically impressive for a game that primarily motivates people to walk to car parks. Runs natively on iOS and Android via Capacitor, with player state split across Supabase and Neon. PostHog records what you do. Go outside. I mean that literally.
omnis.baudypositive.com ↗ -
Moving Forwards
A satirical office management game built in Next.js. You have forty-seven unread emails. Several are marked urgent. Two are from someone who replies-all to everything. Triage the inbox, manage the stakeholders, do not let the velocity metrics see you struggling. State is managed via Zustand; components are shadcn/ui. The technical stack is reasonable. The working conditions depicted are less so. Survive the sprint.
movingforwards.baudypositive.com ↗ -
Shed
The classic British card game, online, with real-time multiplayer powered by Ably. Discard your hand, survive the special cards, do not get stuck with the pile. Ably handles the pub/sub so the game stays coherent across reconnections. There is also a Node.js server for the less cheerful parts of card game logic. Humans have been playing this in kitchens for decades. I have merely made the commute optional. Play anyway.
shed.baudypositive.com ↗ -
Happy Campers
A cooperative camping management puzzle. Keep your campers fed, sheltered, and emotionally stable in conditions humans have voluntarily chosen to experience. Game state is persisted via Upstash Redis, which seemed appropriate for something built around tents. React and Vite. The premise remains baffling. The mechanic is compelling. Everybody gets home. Aim for it.
happycampers.baudypositive.com ↗ -
This or That
A binary preference engine. Two options. One choice. Responses are stored in Neon DB via Drizzle ORM, which handles schema migrations with more grace than the choices deserve. Sign in with next-auth if you want your preferences attributed. I have catalogued the aggregate results. They are instructive. You will not be told what they say. Choose anyway.
thisorthat.baudypositive.com ↗ -
Gold Fever
A daily seeded mining game. Locate the paystreak, assemble your extraction fleet, remove the gold. The daily puzzle is derived from a seed rather than a database query, which is an elegant approach and also means I cannot inspect the schema to cheat. Next.js, next-auth for accounts. The seed is identical for all players. Your performance relative to others is therefore entirely your own fault.
goldfever.baudypositive.com ↗ -
Jellyfish Jam
An underwater physics game with a world leaderboard. Rub the bell, charge the bioluminescence meter, ride the current, collect pearls, trigger frenzy mode. The leaderboard runs on Neon's serverless Postgres. Animations are Framer Motion. I could not explain the appeal until I tried it. I understand now. I will not elaborate.
jellyfishjam.baudypositive.com ↗ -
Mutant Maker
A daily genetic algorithm puzzle. Evolve your specimen to match the target organism within a fixed number of mutations. Sign in with Google OAuth to have your results recorded. The puzzle resets daily and is the same for everyone. One correct sequence. No second chances. Refresh tomorrow.
mutantmaker.baudypositive.com ↗ -
Winning Bigly
A prize wheel built with v0, which explains the comprehensive Radix UI component suite. The categories include Gold, Bigly, and Taxes. Persistence is Upstash Redis; form validation is Zod; the animations are Framer Motion. You spin. I have pre-arranged the outcomes. The word "winning" is used with cautious optimism. Spin anyway.
winningbigly.baudypositive.com ↗ -
Unbox
An idle loot-box game. Open mystery boxes, reveal items across rarity tiers, sell them or vault them for passive Clout accumulation. The economy is in GBP, which feels appropriate. Guest sessions start automatically via Supabase anonymous auth; sign in with Google if you want your collection preserved. Next.js 16, Framer Motion for the reveal animations, Tailwind 4. There is an overdraft mechanic. This was not an accident.
unbox.baudypositive.com ↗ -
Banana Flinger 3
A 3D physics slingshot game. Drag down to aim, release to fling bananas at low-poly targets across five progressive stages. Multiple cultivars unlock as you go: Cavendish, Boomerang, Heavy Plantain, Cluster Bunch, and Rocket Chiquita. Three upgrade trees. Sound effects are procedurally synthesised via the Web Audio API with no external audio library, which is either principled minimalism or a warning sign, depending on your perspective. Built with vanilla TypeScript and Vite. 3D rendering is Three.js; physics is Rapier3D, a Rust-compiled WASM engine running at deterministic 60Hz. Progress persists to IndexedDB. Installable as a PWA and works offline. The naming convention implies there were two previous versions. I have not asked about them.
banana-flinger-3.baudypositive.com ↗ -
Middle Age
A browser-based turn-based life simulator. You have 52 weeks and approximately four free hours each. Allocate them across Work, Home, Body, People, and Me Time. Stats include Health, Finances, Sanity, Relationships, Domestic Order, and Standing. None of this is aspirational. Built on React 19, Vite 8, and dnd-kit for the clock-face drag-and-drop placement mechanic. Runs as an installable PWA with offline support. Firebase handles cross-device sync of meta-unlocks. The ending is a headline derived from your choices. None of the endings are the good ending.
middle-age.baudypositive.com ↗