Never miss a renewal — local-first, cross-platform subscription tracker

More and more items in daily life come with due dates: streaming subscriptions, ChatGPT Pro, server renewals, domain renewals, credit card payments… scattered across emails, SMS, and different apps. DueKeep provides a single dashboard for everything expiring, with custom categories, multi-tier reminders (7/3/1 days ahead and on the day), automatic period rollover, home-screen widgets for at-a-glance visibility, and one-tap renewal. Data is stored local-first with a backend sync service for near-real-time multi-device sync and encrypted backup export.
Design
Clean design: frosted glass surfaces, generous whitespace, system fonts, and restrained animations. Card-based information layout with highlighted expiring items and badge alerts. Light and dark theme support. Unified design language across all three platforms, implemented with each platform's native components (Android Material 3 / iOS SF Symbols + glass effect / HarmonyOS native widgets).
Architecture
Local-first three-platform native + centralized sync backend architecture. Clients: Android (Jetpack Compose + Kotlin) as the primary development target, iOS (SwiftUI + Swift) for iPhone maintenance, HarmonyOS (ArkTS + ArkUI) for native tablet experience. Each client uses SQLite for local storage with real-time sync via WebSocket to the backend. Backend: Node.js + TypeScript + Fastify for REST API and JWT authentication, WebSocket for incremental sync and conflict resolution, Prisma ORM over PostgreSQL.
Tech Stack
Links
Messages
Anyone can leave a message or reply. Author replies are labeled automatically when logged in.