drendog/fediplace-backend
Collaborative pixel painting server, inspired by r/place and wplace
FediPlace Backend
Collaborative pixel painting platform built with Rust, inspired by r/place and wplace. Designed for federated worlds - each instance hosts its own canvas and federates with other instances (federation not yet implemented).
Quick Start
# Start services
docker compose up -d
# Run migrations
sqlx migrate run
# Start server
cargo runServer runs on http://localhost:8000 by default. API docs at /docs/ with cargo run --features docs.
Make sure to set up .env from .env.example with your own secrets, and make sure to set up config.toml from config.toml.example.
Architecture
Strict hexagonal architecture (ports and adapters) with dependency inversion: Domain (pure logic) ← Application (use cases) ← Adapters ← Server (composition).
Each layer is separated into its own crate, and architectural violations are enforced via deny.toml and clippy.toml.
Roadmap to First Release
- Worlds System - Multi-world support
- Report Users - User reporting
- Rules - Per-world and instance-level rules enforcement
- Minimal Federation - Temporary read-only worlds federation between instances
- Testing - Minimal unit and integration tests for critical areas