2026-05-23 03:05:16 +02:00
2026-05-12 10:07:05 +02:00
2026-06-08 08:32:08 +02:00
2026-06-08 08:32:08 +02:00
2026-06-08 08:32:08 +02:00
2026-05-14 12:42:17 +02:00
2026-05-14 12:42:17 +02:00
2026-05-26 21:40:54 +02:00
2026-04-14 22:36:32 +02:00

MyAnimeList

MyAnimeList logo

Go SQLite Tailwind HTMX


I built this because nothing else felt right. Every tracker I tried had decent pieces but the whole never clicked — awkward UI, missing features, or it just got in the way of actually watching anime. So I built one that fits how I work.

It is a self-hosted Go server that streams anime through a proxy layer, catalogs metadata, and tracks your progress.

The frontend is Tailwind CSS v4 with HTMX handling pagination, infinite scroll, search, and watchlist interactions. TypeScript only steps in where HTMX cannot — the video player, command palette bound to Cmd+K, skip segment editor, theme toggling with system preference detection, and custom UI components. Everything lives in one process, one SQLite database, one deployment.

Repository structure

Path Purpose
api/* Feature routes: anime, auth, playback, watchlist
cmd/server Application entrypoint and CLI commands
cmd/user User management CLI (create, update, delete)
integrations/* External API clients and scraping
internal/* Core services: db, middleware, server, worker
pkg/middleware Generic HTTP middleware
templates/* Server-rendered HTML templates
migrations Schema evolution (20 migrations)
static / dist Frontend assets

Running locally

Requires Go 1.25+, Bun, and just. Migrations run on startup. Configuration lives in environment variables — see cmd/server/main.go for the full list.

The schedule board requires an API key from animeschedule.net. Create an account, generate a token under your profile, and set it as ANIMESCHEDULE_API_TOKEN.

just dev

Quality checks

gofmt -l .
go test ./...
go build -o server ./cmd/server
golangci-lint run ./...
go mod tidy
go test -race ./...
bunx oxfmt --check
bun run lint:ts
bun run typecheck
bun run build:assets
docker build -t mal:ci .

Contributing

Bug reports and pull requests are welcome. This is a personal project, so there is no strict roadmap or issue triage cycle. If something is broken or missing, open an issue or send a PR.

License

MIT. See LICENSE.

Description
No description provided
Readme MIT 32 MiB
Languages
Go 72.3%
TypeScript 26.9%
CSS 0.3%
Dockerfile 0.2%
Just 0.2%