Blurb is an idea I came up with a while back but could never fully flesh out. I was inspired by a feeling I was experiencing that the main social media platforms I’m on are way too cluttered, with an overwhelming amount of content I’m facing every time I log in, when I really just want to see a select few people’s activity. Hence, the idea is essentially that Blurb will be a social media platform solely for my partner and I (and also for select groups of people who are invited by each other in a fuller version of this project) - think Twitter but for just you and your friends.

I do want to rebuild this project from scratch again, and get a strong MVP up and running for testing with my partner.

Ideas:

  • Bun
  • React frontend
  • Swift for Mobile
  • Firebase Auth
    • Or a postgres/mysql DB?
  • Redis Caching
  • Microservice architecture
  • Vercel first, AWS S3, Terraform if scaling
  • Not sure if needed: Apache Kafka, Docker, Kubernetes

Finalised Stack

LayerChoiceWhy
BackendGoCompiled, statically typed, purpose-built for high-throughput APIs
RouterChiLightweight and idiomatic; used in production at my company
FrontendReact + TypeScript (Vite)
DatabasePostgres + sqlcsqlc generates type-safe Go from raw SQL with no ORM overhead
Migrationsgolang-migrate
ArchitectureClean Architecture (monolith)Monolith first; clean layer boundaries make future extraction straightforward
Loggingslog (stdlib)Structured logging with zero external dependencies (Go 1.21+)
Configcaarlos0/envTyped, validated env vars at startup; fails fast if config is missing
Testingtestify + real PostgresReal DB ensures tests reflect actual production behaviour
AuthIn-house (bcrypt + JWT + refresh tokens)Invite-only app; no vendor lock-in, full ownership
Real-timeSSEOne-way server push; simpler than WebSockets for feed updates
ContainerisationDocker (multi-stage)
CI/CDGitHub Actions
Dev toolingMakefile
Hosting (Frontend)Vercel
Hosting (Backend + DB)RailwayPersistent server required for SSE; managed Postgres included
MobileSwift (deferred)Web MVP first

Old Draft of Blurb:

  • i was using vue for this
  • i tried lifting from twitter’s ui
  • i would much prefer a more minimalist, monochromic colour scheme to begin with, then customise from there
  • i would like to deprecate the mood section for now, and just focus on the blurbs (tweets) and feed

MVP Features

I believe that the MVP should have a few components that can confidently function for my girlfriend and I as the only users at least for now:

Phase 1

  • Login / Auth - and storing this user data in our db
  • Home Page
    • Feed (similar to twitter, we will see blurbs in our timeline here)
    • Blurb Button + composer (text only)
  • Profile Page - to configure user info
    • profile pic (just emojis for now)
    • username
    • display name
  • PostgreSQL DB
    • user data
    • blurbs - content only
  • Styling:
    • minimalist, monochromic
    • berkeley mono / jetbrains mono for font

Phase 2

  • Interaction data on blurbs (likes, comments)
  • Settings Page
    • dark / light mode toggle
  • Media in blurbs (images, etc.)

Future

  • Custom CSS config
  • Invite system for other users