MyCalendar — календар із розумними нагадуваннями

Про проєкт

  • Клієнт Власний SaaS
  • Рік 2025 → сьогодні
  • Категорія SaaS / Продуктивність
  • Стек Next.js 16, React 19, TypeScript, Tailwind v4, Prisma 7 + Postgres, NextAuth v5, Twilio, Brevo, WayForPay, Expo (TWA)

Опис проєкту

MyCalendar — безкоштовний онлайн-календар із багатоканальними розумними нагадуваннями, який я побудував з нуля до продакшну. Користувачі додають дні народження, дедлайни та разові або щорічні події; сервіс нагадує електронною поштою, у Telegram, а для передплатників платного голосового тарифу — справжнім дзвінком через Twilio у локальний час користувача. Нативні застосунки доступні в App Store та в Google Play. Інтерфейс локалізовано 19 мовами.

Під капотом: Next.js 16 App Router (Server Components, Server Actions, Prisma 7 + Postgres) плюс невеликий cron-воркер, що опитує чергу кожні п'ять хвилин. Дві паралельні API-поверхні використовують спільний сервісний шар — сесійна для веб-дашборду, JWT (access 15 хв / refresh 30 днів) для Expo TWA мобільного застосунку. Авторизація — NextAuth v5; платежі — Wayforpay із HMAC-MD5 підписами колбеків; транзакційні листи — Brevo SMTP.

Цікаві місця: коректне за таймзонами надсилання, що конвертує збережені у користувача HH:MM у UTC через Intl.DateTimeFormat (без наївної Date-арифметики); рекурентні події, які автоматично скидають sentAt щороку; і атомарний claim-before-dispatch на голосовому каналі, щоб два cron-рани, що збіглись, не дублювали платний дзвінок Twilio. Багатомовний інтерфейс (19 локалей) спільний для веб-застосунку та мобільної TWA.

MyCalendar — calendar app with smart reminders