azya
Work

Full-stack web application

Boxscores

A social diary for the soccer matches you watch. Browse real matches, log the ones you watched, rate them, tag them, write reviews, and see it all on your profile.

Next.js / TypeScript / Go / PostgreSQL / Supabase

View source
Boxscores architectureWeb / API / Data
Interface
Next.js + TypeScript
Matches, reviews, profiles
API
Go + chi
JSON endpoints on Netlify
Data
Postgres + Supabase
Schema, auth, storage, RLS

GitHub Actions checks before merge

A shared application, from browser to database

I architected a Next.js App Router frontend and a Go JSON API using the chi router. The API runs as serverless functions on Netlify. The product includes match logging, ratings, tags, reviews, profiles, and a social follow feed.

Data modeling and access control

I designed the PostgreSQL schema on Supabase across 19 migrations, with row-level security and an idempotent migration runner. Supabase Auth and Storage support the application alongside the database.

Keeping match data current

A daily cron-triggered serverless pipeline ingests match data from football-data.org for six competitions into PostgreSQL, supporting fixture discovery in the application.

Moderation and account lifecycle

For the companion iOS client, I implemented user reporting, blocking with app-wide hiding, and in-app account deletion to address App Store review requirements.

Checks before a merge

GitHub Actions gates merges on Go build, vet, and test checks, TypeScript typechecking, and a production Next.js build. These checks give the team a shared baseline for changes across both languages.

Back to work