https://github.com/pdugan20/rewind
Personal data aggregation service. Syncs data from Strava, Last.fm, Discogs, Plex, Trakt, and Letterboxd into a centralized API.
https://github.com/pdugan20/rewind
cloudflare cloudflare-workers d1 drizzle-orm hono mcp mcp-server r2
Last synced: about 2 months ago
JSON representation
Personal data aggregation service. Syncs data from Strava, Last.fm, Discogs, Plex, Trakt, and Letterboxd into a centralized API.
- Host: GitHub
- URL: https://github.com/pdugan20/rewind
- Owner: pdugan20
- License: mit
- Created: 2026-03-10T20:36:52.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-23T20:37:40.000Z (about 2 months ago)
- Last Synced: 2026-04-23T21:18:30.661Z (about 2 months ago)
- Topics: cloudflare, cloudflare-workers, d1, drizzle-orm, hono, mcp, mcp-server, r2
- Language: TypeScript
- Homepage: https://docs.rewind.rest
- Size: 1.6 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rewind
[](https://github.com/pdugan20/rewind/actions/workflows/ci.yml)
[](https://docs.rewind.rest)
[](https://workers.cloudflare.com)
[](https://opensource.org/licenses/MIT)
[](https://www.npmjs.com/package/rewind-mcp-server)
Personal data aggregation API. Syncs data from multiple services on a schedule, normalizes everything into a unified schema, and serves it through a REST API with a cross-domain activity feed.
## Domains
| Domain | Sources | Description |
| -------------- | -------------------- | -------------------------------------------------------------------- |
| **Listening** | Last.fm, Apple Music | Scrobble history, top artists/albums/tracks, streaks, stats |
| **Running** | Strava | Activities with splits, personal records, gear, yearly summaries |
| **Watching** | Plex, Letterboxd | Watch history, ratings, reviews, movies and TV shows via TMDB |
| **Collecting** | Discogs, Trakt | Vinyl/CD collection, physical media (Blu-ray/4K UHD/HD DVD) |
| **Reading** | Instapaper | Articles, reading progress, highlights, word count, article metadata |
## Live endpoints
| Service | URL |
| ---------- | ------------------------------------------------------------------ |
| API | [api.rewind.rest](https://api.rewind.rest/v1/health) |
| API Docs | [docs.rewind.rest](https://docs.rewind.rest) |
| MCP Server | [docs.rewind.rest/mcp-server](https://docs.rewind.rest/mcp-server) |
| Image CDN | [cdn.rewind.rest](https://cdn.rewind.rest) |
## Built with
Hono on Cloudflare Workers. D1 (SQLite) for storage, R2 for images, Drizzle ORM for type-safe queries. End-to-end type inference via Hono RPC -- consuming apps get a fully typed client with zero codegen. Full OpenAPI 3.1 spec with interactive docs via Scalar.
## Development
```bash
npm run dev # Start local dev server
npm run deploy # Deploy to Cloudflare Workers
npm test # Vitest
npm run type-check # TypeScript strict mode
npm run lint # ESLint
npm run db:generate # Generate Drizzle migrations
npm run db:migrate # Apply migrations locally
```
See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for system design, sync flow, caching strategy, and image pipeline details.