Update: v0.9.0 - Social Features & Community
Comments, user follows, notifications, and activity feeds transform Tuggy into a social platform.
Follow Tuggy's journey from concept to viral voting platform. Technical deep-dives, architecture decisions, and lessons learned attempting to build a real-time global game.
Comments, user follows, notifications, and activity feeds transform Tuggy into a social platform.
Users can now upload custom contestant images, with automatic optimization and community moderation.
I kept breaking things with every change. E2E tests saved me from shipping embarrassing bugs to production.
Competitive rankings, user profiles, achievements, and stats tracking for power voters.
How I designed Tuggy to naturally encourage sharing through FOMO, social proof, and low-friction viral loops.
Emergency fixes for particle memory leak, Safari compatibility, and database connection issues.
Using Chrome DevTools to identify performance issues, optimize renders, and keep Tuggy running at 60fps on budget phones.
Added PixiJS particle bursts, cubic Bezier trajectories, and comprehensive Playwright test suite.
How I structure CSS for mobile-first design, handle touch targets, and make Tuggy look great on any screen size.
Visual feedback makes or breaks a clicker game. Here's how I added particle bursts that run at 60fps even on old phones.
Optimizing Tuggy for search engines and social platforms with dynamic meta tags, structured data, and proper sitemaps.
How I use Svelte stores for global state, derived values, and keeping the UI in sync with minimal boilerplate.
Localhost is great but eventually you need real users. Here's how I deployed Tuggy globally with support for custom subdomains per matchup.
Dynamic OG images for every matchup, privacy-focused analytics, and major performance improvements.
Building resilience into Tuggy with retry logic, fallbacks, offline support, and user-friendly error messages.
The homepage was hammering Supabase with identical queries. A simple in-memory cache with TTL made everything faster and cheaper.
Detecting vote spam, preventing device fingerprint spoofing, and implementing rate limits that stop bots but don't annoy real users.
I need to understand how people use Tuggy, but I don't want to be invasive. Here's how I set up Google Analytics with privacy in mind.
Building a safe, fast image upload system with Supabase Storage, client-side validation, and CDN delivery.
No signup required! Play immediately with device fingerprinting, optional account creation for leaderboards.
Static OG images are boring. I built a system to generate custom social previews with live vote counts using Vercel's @vercel/og library.
Ranking thousands of voters in real-time with efficient SQL queries, handling ties, and displaying both anonymous and authenticated users.
I hate when apps force you to sign up before trying them. Here's how I let people play immediately while still tracking their votes.
How I designed a dual attribution system where votes can belong to either a user_id OR device_id, with PostgreSQL constraints to keep data clean.
Added idle voting system with temporary power-ups, passive income, and an upgrade shop.
I wanted to add idle game depth, but permanent upgrades would kill the accessibility. Here's how I made it work with temporary power-ups.
Linear particle paths look boring. Here's how I used cubic Bezier curves to make particles flow naturally toward the vote counter.
Major mobile improvements: killed the 300ms delay, added smooth animations, and implemented haptic feedback.
Mobile browsers add a 300ms delay to clicks. For a clicker game, that's completely unacceptable. Here's how I killed it.
Votes arrive in 1-second batches, but I wanted the counter to animate smoothly at 60fps. Here's how I faked continuous updates with cubic Bezier easing.
Turns out sending every single click to your database is a terrible idea. Here's how I fixed it with client-side batching and optimistic updates.
First public release of Tuggy with core voting mechanics, real-time sync, and basic matchup creation.
Kicking off a new project: a viral voting game where people can click thousands of times per second. Here's what I'm building and why.