Inspiration
All three of us are huge fans of r/Place, the collaborative pixel canvas that took over Reddit. We loved the creativity and community that emerged when thousands of people worked together on a single digital canvas. When we started the hackathon, we were exploring tracks that worked with maps — but quickly realized we wanted to build something more playful, physical, and creative.
We asked ourselves: What if you could bring the collaborative chaos of r/Place into the real world? What if people had to move through physical space to create digital art? That idea of blending digital creativity with real-world exploration was the spark that led to Splat: Paint Boston.
What it does
Splat: Paint Boston is like r/Place — but mapped onto the real city of Boston.
You open up a map on your phone, and wherever you’re standing, you can “splat” a colored pixel onto the map. As people move around the city, they can work together to create large-scale digital drawings — but to place each pixel, you actually have to travel to that spot in real life.
The result is a kind of digital graffiti that reflects the movements and creativity of real people moving through Boston.
How we built it
We split the work into front-end, back-end, and architecture/design.
Front-End
- Built with React and React-Leaflet, a library that handles the map rendering.
- We developed custom logic for partial rendering, since the canvas consists of over 9 million squares — rendering all of that at once would be way too slow.
- The front end only renders the portion currently on screen, while handling clicks, color selection, pixel visibility, and overall UI design smoothly.
Back-End
- We wanted real-time, low-latency updates across all users.
- Each pixel on the map is stored as 3 bits, yielding about a 14 MB bitstring representing the entire canvas.
- When a user loads the page, they fetch the full bitstring snapshot once. After that, WebSockets are used to broadcast and receive updates instantly as people paint.
- When someone places a pixel, the server updates the “ground truth” and simultaneously sends a WebSocket event to everyone connected — ensuring instantaneous map updates.
Stack & Architecture
- We started with Python and Redis, but eventually rewrote the backend entirely in Go for performance and control.
- By working closer to the metal with Go, we could tailor the system precisely to our needs, achieving super-fast, low-latency communication and efficient memory usage.
Challenges we ran into
- Front-End Rendering: Displaying millions of elements made the app laggy at first. We spent a lot of time optimizing partial rendering and map interaction to make the experience smooth.
- Back-End Scaling: Our initial Python + Redis setup wasn’t fast enough for the real-time updates we needed. Migrating to Go and building a custom architecture solved this, but required learning a lot quickly.
- Coordination: Making sure front-end and back-end data stayed perfectly in sync in real time was tricky, especially with multiple users painting simultaneously.
Accomplishments that we're proud of
- We built a fully functional real-time collaborative pixel canvas tied to real-world locations — and it works!
- The concept itself feels unique and fun. We started the hackathon with a totally different idea, pivoted mid-way, and still shipped a complete project.
- Seeing our pixels appear live across devices and moving around Boston to “paint” felt incredibly rewarding.
What we learned
- A ton about Go — especially how performant and flexible it can be for low-level but still memory-managed systems.
- Deepened our understanding of mapping SDKs, tiling, and rendering optimizations.
- Learned how to build scalable real-time systems with WebSockets.
- And, of course, how to rapidly pivot and execute under hackathon pressure!
What's next for Splat: Paint Boston
We want to get the project hosted and live, so anyone can hop on and start painting Boston. We ran into a hiccup with the GoDaddy domain system being down, so hosting didn’t make the hackathon deadline — but that’s next on our list.
Once the domain’s up, we’ll share it with friends and the community, and see if the idea catches on. If it does, we’d love to expand to other cities, making Splat a fun, city-scale canvas for collaborative art around the world.


Log in or sign up for Devpost to join the conversation.