Digs: Offline-first iOS app to browse your Discogs vinyl collection
A developer chronicles building "Digs," an offline-first iOS app for Discogs vinyl collections, born from a personal desire for seamless browsing. The story dives deep into its robust technical stack, detailing sophisticated solutions for API rate limiting and a local-first architecture for instant access. Interestingly, while "Claude Code" aided development, the author found product decisions and UI/UX refinement to be the most significant time sink.
The Lowdown
Raphaël Lustin, a vinyl collector, developed "Digs" to solve a personal pain point: the lack of a fast, offline-capable iOS app for browsing his Discogs collection. Dissatisfied with the official app's performance and lack of offline features and folder navigation, he built Digs as a companion tool focused purely on efficient collection browsing.
- Core Functionality: Digs syncs a user's entire Discogs collection for offline access, enabling browsing by folder, search across artists, albums, and labels, and a random picker. It is specifically designed for browsing, not for Discogs data management or marketplace interactions.
- Technology Stack: The app is built using React Native, Expo, and TypeScript, leveraging SQLite with Drizzle ORM for local data storage and the official Discogs API with OAuth for authentication.
- Sophisticated Sync Pipeline: The synchronization process is multi-staged, starting with folder structure, then paginated downloads of basic release data, followed by progressive fetching of full details and image caching. This pipeline is designed to be robust, supporting pauses, cancellations, and background execution.
- Advanced Rate Limiting: A significant technical challenge was handling Discogs' strict 60 requests/minute rate limit. Lustin implemented a token-bucket limiter that tracks in-flight requests and dynamically adjusts based on the
X-Discogs-Ratelimit-Remainingheader, with exponential backoff for 429 errors. - Local-First Architecture: The app's performance is attributed to its local-first design, where SQLite serves as the primary source of truth. React Query is configured with an infinite stale time, ensuring all reads are instantaneous local database queries.
- Development with AI: The author utilized "Claude Code" for development, noting that while the AI expedited code generation, the majority of development time was spent on product decisions (e.g., feature scope, user experience) and UI/UX refinement, rather than coding itself.
- Availability: Digs is freely available on the Apple App Store, commitment to user privacy by including no ads, tracking, or additional accounts beyond Discogs login.
This detailed account highlights the intricate process of building a niche mobile application, emphasizing practical solutions to common development challenges like API rate limiting and the often-underestimated effort involved in product design and user experience, even with AI assistance.