SpillHub — Anonymous Daily Confession Wall
SpillHub is a full-stack, anonymous daily confession platform I designed and built end-to-end, combining a carefully gated social experience with real-world concerns like abuse prevention, payments, and scalability.
Sole Architect & Engineer•2025 - Present
Next.jsReactJavaScriptNodeSupabasePostgreSQLOpenAI APIStripeVercel



Background
SpillHub presents users with a single daily prompt and a grid of anonymous responses that remain blurred until a user submits their own, encouraging authentic participation over passive consumption. The product was designed to feel lightweight and playful on the surface while quietly handling complex concerns around moderation, anonymity, and monetization. I built the application solo using Next.js 16 (App Router), React 19, Tailwind CSS, Supabase, Stripe, and OpenAI moderation APIs.
Contribution
- I architected and implemented the entire system, including the frontend UI, backend API routes, database schema, and deployment pipeline.
- On the frontend, I built a responsive, themeable UI using Tailwind v4, shadcn/ui, and Radix primitives, with a focus on clarity, performance, and accessibility.
- On the backend, I designed API routes for daily prompts, note submission, archives, entitlements, and admin tooling using Next.js server routes and Supabase with Row Level Security.
- I implemented a robust moderation pipeline combining heuristic checks with OpenAI’s moderation API to allow emotional expression while blocking genuinely harmful content.
- I also integrated Stripe with manual-capture PaymentIntents to safely support paid features (colored notes, pinned notes, archives, and Pro access) without risking charges when writes fail.
Learned
- Building SpillHub reinforced how much hidden complexity exists beneath seemingly simple social products.
- I gained hands-on experience designing systems that balance anonymity with abuse prevention using cookies, IP fallbacks, and signed tokens instead of traditional authentication.
- I learned how to structure payment flows defensively, using manual capture and idempotent unlock logic to ensure financial correctness under failure scenarios.
- The project deepened my understanding of server-client boundaries in the Next.js App Router and how to leverage Supabase service roles safely for cron jobs and privileged operations.
- Most importantly, it sharpened my ability to make pragmatic engineering decisions that prioritize user trust, product integrity, and long-term maintainability over shortcuts.