
I built a live 3D favicon wall where anyone can evict your square by paying double what you paid. Then I put all my side projects on it.
I have too many side projects. Each one has a domain and a favicon I fussed over, and none of them has a marketing budget. I wanted somewhere to line them all up next to each other, cheaply, with a click count so I'd know which ones strangers actually touch.
So I built Square Town (square.pov.town). It's a grid. Each square is 1×1 and costs $1, one-time. You paste a URL, it fetches the favicon, you click the cell you want. No accounts, no uploads.
Then I gave it rules so it's a game and not a JPEG:
- Anyone can evict any square by paying double what its owner paid. Then double that.
- The 4×4 dead centre is a Throne. $100 to start, doubles on every eviction.
- Icons nobody kisses for 90 days fade to grayscale. Anyone can kiss any icon, free.
- No favicon? Clown emoji and a public Hall of Clowns until you fix it.
- Only the central 16×16 is live. When it's 70% full it grows 8 cells per side, up to 1024×1024.
- Everything is pushed live to every open browser over WebSockets.
Ctrl+drag tilts it into 3D. Tower height = clicks. There's a sun that follows your local time, birds, a hot-air balloon and a tortoise. None of that was necessary.
Stack: one Cloudflare Worker, D1, one Durable Object, Stripe, three.js. Runs on the free tier, which is why "$1 forever" isn't a lie — there's no hosting bill to lapse. Forever still has an asterisk. The asterisk is evictions.
Built the rules in a day, been tuning since. Happy to answer anything about the mechanics or the build. Rules: https://square.pov.town/how-it-works