Crowdtale
Collaborative storytelling platform utilizing real-time database synchronization and scheduled cron jobs to enable turn-based writing.
Writers often struggle to start a story or find meaningful ways to collaborate with others without losing structure. To solve this, I created "Crowdtale", a solo hobby project designed to facilitate a structured, turn-based writing experience where participants contribute to shared stories in a real-time, chat-like format.
To tackle this, my goal was to design and build a complete web application from scratch that allows users to publish story drafts, join active stories, and write in turns. I needed to implement a system that enforces strict turn time limits and ensures that active, collaborative stories remain private and synchronized in real time.
To achieve this, I designed a relational database schema in Supabase to handle complex story-branching and collaboration flows, utilizing the `pg_cron` extension to run scheduled database jobs that automatically enforce turn time limits. On the frontend, I built the interface using React, leveraging TanStack Query for data fetching, TanStack Virtual to render a high-performance discovery feed, and Supabase Realtime to keep active writing sessions perfectly synchronized across users.
As a result, I successfully deployed the fully functional MVP on Vercel, creating a seamless, real-time collaborative environment. This project served as my first deep dive into complex relational database design, real-time state synchronization, and background job scheduling, significantly boosting my confidence in full-stack architecture.