Social Experiment · Exploration

r/place meets Twitter.

A collaborative pixel canvas for the X ecosystem. One pixel at a time, cooldowns that force you to work together—tied to X accounts instead of Reddit.

500×500 canvas16 colorsExploration status

Remember r/place? Reddit's social experiment where millions of users collaborated (and fought) to create pixel art on a shared canvas. One pixel at a time. Cooldowns that forced you to work together or get overwhelmed.

X-Place is that concept rebuilt for the X/Twitter ecosystem. Same mechanics—500x500 canvas, 16 colors, cooldown timers—but tied to X accounts instead of Reddit.

The twist: your X identity travels with you. Potential for factions based on who you follow. Verified accounts could get perks. The social graph becomes the game.


Core mechanics

6 features

500x500 Canvas

Shared by all users, updated in real-time

16 Color Palette

Classic r/place colors for pixel art purity

Cooldown Timer

Place a pixel, then wait—forces collaboration over domination

X OAuth Login

Sign in with your X account, avatar and username pulled automatically

Spectator Mode

Accounts under 30 days old can watch but not place (anti-bot)

Real-time Updates

See every pixel appear instantly via WebSocket


Architecture

System
┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Next.js Web   │────▶│  WebSocket Server │────▶│  Redis (Upstash)│
│   (Frontend)    │◀────│   (Real-time)     │◀────│  (Canvas State) │
└─────────────────┘     └──────────────────┘     └─────────────────┘
        │                                                │
        ▼                                                ▼
┌─────────────────┐                              ┌─────────────────┐
│ Supabase Auth   │                              │ Pub/Sub Channel │
│ (X OAuth)       │                              │ (Scaling)       │
└─────────────────┘                              └─────────────────┘
FrontendNext.js 14, React, Tailwind, Zustand
Real-timeCustom WebSocket server (ws library)
DatabaseRedis (Upstash) for canvas state + sessions
AuthSupabase with X (Twitter) OAuth 1.0a

Build status

8 / 8 done
Canvas Renderer500x500 with pan/zoom
Color Palette16-color r/place palette
WebSocket ServerReal-time pixel updates
Redis IntegrationCanvas state persistence
X OAuth LoginTwitter auth via Supabase
Session ManagementRedis-backed, 24h TTL
Spectator ModeNew accounts watch-only
r/place UIBottom toolbar, minimal chrome

The vision

X-Place could become a viral social experiment like the original r/place, but native to the X ecosystem. Imagine:

  • Trending on X as communities coordinate pixel art
  • Factions based on who you follow
  • Verified accounts get special colors or faster cooldowns
  • Live streams of the canvas embedded in X posts
  • Timelapse videos that go viral

What's next

Roadmap
High Priority

Production Deploy

Vercel + Railway

High Priority

Canvas Persistence

Save/load from Redis properly

Medium

Pixel History

See who placed each pixel

Medium

Timelapse

Watch the canvas evolve


Exploration core mechanics built, preparing for public testNext.js / WebSockets / Redis / Supabase built with