Full-Stack Anime Platform
AniDis
AniDis is a full-stack anime discovery, tracking, and discussion platform built around current-season browsing, organized watch folders, episode progress, and threaded conversation.

Role
Designed and shipped the product surface, API layer, database model, CI pipeline, container builds, and self-hosted deployment path.
Product Shape
The app is centered on the moment a viewer asks what is airing now, what they are already following, and where the active discussion is happening.
- Built separate Next.js product, landing, and Cel docs apps inside a Turborepo monorepo.
- Modeled discovery around current-season anime, folders, profile activity, and episode progress.
- Kept the entry flow usable for browsing while preserving authenticated watch and discussion state.
System Design
The backend keeps Jikan-powered discovery, social features, profile data, and discussion primitives behind a typed FastAPI/PostgreSQL API.
- Designed API surfaces for anime metadata, profiles, follows, folders, episode progress, threads, comments, likes, and avatars.
- Used PostgreSQL, Redis, and Alembic migrations to keep application state explicit and deployable.
- Separated product concerns enough for the landing site, app shell, docs, and backend services to ship independently.
Shipping Discipline
The project is deployed like a real service rather than a static demo, with repeatable checks, versioned images, and observable infrastructure.
- Created path-filtered GitHub Actions CI for linting, formatting, type checks, pytest, Playwright E2E, Docker builds, and schema drift checks.
- Published SHA-tagged GHCR images for web, landing, docs, and backend services.
- Deployed through a self-hosted runner with Traefik, Doppler-synced secrets, smoke checks, and OpenTelemetry/Grafana/Loki/Tempo observability.
Screens
