Dismiss Once
In Progress
Apr 2026 - Present
Dismiss Once is an iOS-first reminders product stream focused on shipping core user journeys before expanding into full recurrence and sync sophistication.
The work combines UX-first onboarding/auth implementation with backend-connected home-list foundations so future reminder lifecycle features can be added on stable architectural rails.
Built with: Swift, SwiftUI (Observation), VIPER-style modules, Supabase Swift SDK, Supabase local stack (Auth/Postgres/Realtime), SQL migrations/RLS, Core Data, and XCTest.
Links
Project Activity
Recent updates for Dismiss Once. In Progress
April 2026
-
Updated README/development plan documentation to reflect implementation status and next milestones.
-
Delivered basic reminders home list/tabs with Supabase-backed repositories plus minimal schema/migration/seed support for list states.
-
Delivered AUTH-1 email/password flow with Supabase (login/create/reset/verify routing), centralized strings/error handling, and refined auth/session module wiring.
-
Implemented ONB-1 onboarding foundation, improved notification-permission error handling, configured local Supabase instance, and added design-asset consolidation scripts.
-
Finalized initial product scope and Stitch-driven design planning artifacts for reminders UX.
-
Initialized repository baseline (license/templates/issues/assets) and bootstrapped project workspace.
Objective Link to heading
- Build a native iOS reminders app foundation with onboarding, authentication, and home-list experiences wired to a local-first Supabase-backed data model.
- Establish a scalable implementation plan for recurrence, notifications, sync, and settings while keeping release-quality architecture constraints explicit.
Delivery focus Link to heading
- Set up the app skeleton and feature boundaries using SwiftUI + Observation and VIPER-style modules.
- Implement onboarding flow and notification permission handling for first-run user guidance.
- Deliver Supabase Auth email/password flows (sign in, sign up, reset, verification routing) with session-gated app navigation.
- Ship a basic reminders home list/tabs slice using minimal schema, migrations, seed data, and repository wiring.
- Keep progress visible through README and development-plan updates tied to implementation milestones.
Architecture decisions Link to heading
- Feature modules are organized under
Features/with presenter/interactor/router boundaries. - Shared app concerns are split across
Data/,Domain/, andUtils/layers. - Local Supabase stack is used for auth, schema evolution, RLS validation, and iteration speed.
- Core Data is retained for local persistence behavior and app-state continuity.