Inspiration

Traditional Gregorian calendars are mathematically chaotic: months fluctuate between 28 and 31 days, and weekdays shift randomly every month. This creates friction for consistent habit formation, quarterly retrospectives, and predictable time-blocking.

We engineered Calender28 (Matrix 28) around a fixed 28-day cyclical system (13 equal months of exactly 4 clean weeks). We paired this predictable time architecture with an automated Eisenhower prioritization engine, connected Markdown knowledge graphs, and local-first data persistence.


What It Does

  • 28-Day Cyclical Calendar: Standardizes time into 13 equal months of 28 days, ensuring every month starts on Sunday and ends on Saturday.
  • Automated Eisenhower Conflict Resolver: Organizes scheduled items into four urgency/importance quadrants. The scheduling engine detects overlapping blocks in real time and automatically calculates free buffer slots.
  • Bi-directional Knowledge Graph: Personal notes written in standard Markdown with [[wiki-links]] rendered dynamically on an interactive force-directed canvas.
  • 28-Day Habit Cycles & Sparky Companion: A digital companion that tracks habit completion, evaluates daily focus sessions, and evolves through 28-day cycles.
  • Dual Monetization (RevenueCat & AdMob): Seamless monthly and annual Pro subscription tiers powered by the RevenueCat SDK, alongside an in-app CalCoin economy earned through two-step rewarded ad combos.
  • Android Glance Widgets: Interactive home screen surfaces providing live cycle countdowns and real-time task agendas.

How We Built It

Calender28 is built 100% natively for Android:

  • UI & Architecture: Jetpack Compose, Material 3, Clean Architecture (MVVM/MVI), Kotlin Coroutines, and reactive StateFlow.
  • Database & Persistence: Room SQLite for local-first, zero-latency offline storage.
  • Subscription Infrastructure: Integrated the RevenueCat Android SDK (Purchases) and RevenueCat Customer Center to handle Monthly and Yearly Pro subscription tiers, client-side entitlement state, and offline receipt validation.
  • Ad Monetization: Google Mobile Ads SDK for rewarded video combos and interstitial placements.
  • Widgets: Jetpack Glance for reactive home-screen surfaces.

How RevenueCat Is Integrated

Calender28 uses the RevenueCat Android SDK to gate advanced power-user workflows:

  • Entitlement Management: Gating features such as raw Markdown (.md) note export and full ICS calendar sync behind active Pro subscriptions.
  • Customer Center: Instant subscription restoration, plan management, and live entitlement state reflection directly inside the app settings.
  • Zero Backend Overhead: Handled entirely client-side with RevenueCat's cached entitlement verification, keeping the app fast and local-first.

Challenges We Ran Into

  • Building a deterministic conversion engine between standard Gregorian dates and the fixed 13-month, 28-day cyclical system without breaking standard .ics calendar imports.
  • Implementing a physics-based, interactive force-directed graph canvas in pure Jetpack Compose that maintains 60 FPS while handling node collisions and drag gestures.
  • Coordinating client-side entitlement state between RevenueCat subscription purchases and local in-app CalCoin economy rewards.

Accomplishments That We're Proud Of

  • Shipping a fully functional, offline-first productivity suite with zero external backend dependencies.
  • Creating a dynamic bi-directional graph visualization entirely within Jetpack Compose.
  • Implementing full RevenueCat purchase, restore, and entitlement verification flows on Android.

What's Next for Calender28

  • Bi-directional CalDAV synchronization to connect with self-hosted cloud calendars.
  • Encrypted peer-to-peer note synchronization across devices.
  • Advanced habit analytics and custom graph filtering queries.

Built With

  • android
  • in-app-purchase
  • java
  • jetpack-compose
  • kotlin
  • kotlin-multiplatform
  • material-design-3
  • revenuecat
Share this project:

Updates

Submission history