skip to content
all projects
archived 2025

Yapster

College-project social media site with profiles, posts, and media uploads.

SvelteKit Svelte TypeScript MongoDB better-auth Cloudflare R2 Docker
webopen source

A full-stack social media site built for a college project. Users can register, set up a profile with avatar and banner, post text and images, follow each other, and interact via likes, saves, and comments. The feed, explore page, and per-user profile tabs are all wired up and working.

The backend is SvelteKit’s server routes with Mongoose talking to MongoDB. Auth goes through better-auth’s username plugin – email/password with rate-limited image upload endpoints (3 requests per 60 seconds). Media started on Cloudflare Images, then moved to R2 mid-build once I hit the Images API’s limitations. There’s a client-side post cache with a 5-minute TTL that clears on mutation, which is probably overkill for a college project but I was curious about the pattern.

One thing I never tracked down: something in the stack was imposing a 512KB request size limit on uploads, and I ran out of semester before finding it. The image editor, blocking, and full post interaction features are still on the TODO list – I hope I can find the free time to pick it up again in the future.

Writeups

from this project