10 to Win is a comprehensive productivity ecosystem built with React Native and Expo, designed to help users manage their time through prioritized 10-minute task lists and habit tracking.
The app operates on the principle that breaking work into focused 10-minute blocks maximizes productivity while minimizing overwhelm. Users focus on their "next 10 minutes" rather than an endless task list.
Intelligent task prioritization with 10+ task modes, swipe gestures, deadline tracking, and long-term project support.
Track up to 10 daily habits with Yes/No, Quantity, and Timed types. Features 10-day streak milestones and Perfect 10 celebrations.
Freemium model with Free, Basic ($4.99/mo), Pro ($9.99/mo), and Lifetime ($149) tiers across Stripe, App Store, and Play Store.
Complete CRUD operations for users, feedback, payments, subscriptions, referrals, analytics, and more.
Self-service web portal for account management, payment history, referrals, session control, and progress tracking.
$0
3 task modes, basic features
$4.99/month
5 task modes, integrations
$9.99/month
10 modes, advanced factors
$149 one-time
All features forever
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React Native + Expo SDK | Cross-platform mobile app |
| Navigation | React Navigation 7+ | Tab and stack navigation |
| State | React Context API | TasksContext, HabitsContext |
| Animations | Reanimated + Gesture Handler | Smooth UI interactions |
| Backend | Express.js + TypeScript | API server on port 3001 |
| Database | PostgreSQL + Drizzle ORM | Persistent data storage |
| Payments | Stripe + IAP | Web and mobile payments |
The app follows Apple's iOS 26 Liquid Glass design language - a modernized frosted glass aesthetic with subtle blur, tinting, and organic spring animations.
#2563EB#10B981#F59E0B#EF4444#FFFFFF#F9FAFB#111827#6B7280#1F2937#111827#F9FAFB#9CA3AF| Style | Size | Weight | Usage |
|---|---|---|---|
| Large Title | 34pt | Bold (700) | Screen headers, countdown timer |
| Title 1 | 28pt | Semibold (600) | Task names on Home |
| Title 2 | 22pt | Semibold (600) | Section headers |
| Headline | 17pt | Semibold (600) | List item titles |
| Body | 17pt | Regular (400) | Task descriptions |
| Callout | 16pt | Regular (400) | Metadata |
| Caption | 12pt | Regular (400) | Timestamps, helper text |
| Token | Value | Usage |
|---|---|---|
Spacing.xs | 4px | Tight gaps |
Spacing.sm | 8px | Small margins |
Spacing.md | 12px | Medium spacing |
Spacing.lg | 16px | Standard padding |
Spacing.xl | 20px | Section gaps |
Spacing.2xl | 24px | Large sections |
Spacing.3xl | 32px | Major sections |
| Token | Value | Usage |
|---|---|---|
BorderRadius.xs | 8px | Small cards, badges |
BorderRadius.sm | 12px | Cards, buttons |
BorderRadius.md | 18px | Modals |
BorderRadius.lg | 24px | Floating elements |
BorderRadius.full | 9999px | Circular elements |
Every task receives a numeric priority score calculated from multiple factors:
| Mode | Tier | Description |
|---|---|---|
| 10-Min Fit | Free | Default mode. Selects highest-priority tasks that fit within 10 minutes total. |
| Critical First | Free | Shows tasks sorted purely by urgency level (Emergency > Urgent > Moderate > Low). |
| Quick Wins | Free | Shortest tasks first for momentum building. Shows tasks under 15 minutes. |
| Deadline Crunch | Basic | Tasks with soonest due dates. Overdue first, then today, this week. |
| Balance | Basic | Rotates through all categories for work-life balance (1-2 per category). |
| Chunked | Pro | Breaks large tasks into 10-minute chunks for incremental progress. |
| Flow Sync | Pro | Matches tasks to current energy and cognitive capacity using Advanced Factors. |
| Team Unblocker | Pro | Prioritizes tasks where others are waiting on you (blocksOthers, stakeholderWaiting). |
| Relationship Guard | Pro | Surfaces high-stakes items to protect reputation (delayConsequence, stakeholderWaiting). |
| Momentum Finish | Pro | Shows nearly-complete tasks for quick wins (progressPercent weighting). |
Pro users can enable 9 additional prioritization factors:
| Factor | Values | Score Impact |
|---|---|---|
| Energy Level | Low, Medium, High | +20, +40, +60 |
| Cognitive Complexity | Simple, Moderate, Complex | 0, -30, -60 |
| Blocks Others | Yes/No + Count | +300 base, +50 per person |
| Waiting On | None, Internal, External | 0, -100, -200 |
| Stakeholder Waiting | None, Colleague, Manager, Client | 0, +100, +200, +300 |
| Delay Consequence | None, Inconvenience, Financial, Relationship, Career | 0, +50, +150, +200, +300 |
| Progress Percent | 0-100% | +3 per percent |
| Task Age | Days since creation | +30 (1-3d), +75 (3-7d), +150 (7+d) |
| Skip/View Count | Auto-tracked | -25 per skip/view |
The habits module allows users to track up to 10 daily habits, organized into Morning, Anytime, and Evening sections.
Simple binary completion. Did you do it or not?
Example: "Did I exercise today?"
Track a target number with progress.
Example: "Drink 8 glasses of water"
Default 10-minute timer for focused activities.
Example: "Meditate for 10 minutes"
The 10-day streak milestone system celebrates consistency:
Each day, users receive a score based on completed habits. Completing all habits earns a "Perfect 10" celebration with confetti animation.
Users can skip a habit using "Streak Protection" which preserves their streak. Limited to a configurable window (default: 10 days).
| Setting | Default | Description |
|---|---|---|
| Morning Check-In | Off | Notification reminder in the morning |
| Morning Time | 10:00 AM | Time for morning notification |
| Evening Check-In | Off | Notification reminder in the evening |
| Evening Time | 10:00 PM | Time for evening notification |
| Streak Protection | On | Allow protected skips |
| Week Starts On | Sunday (0) | First day of week |
| 10 to Win Sync | Off | Sync habits with task module |
MAX_HABITS = 10 - Maximum habits allowedDEFAULT_TIMER_MINUTES = 10 - Default timer for Timed habitsPROTECTED_SKIP_WINDOW_DAYS = 10 - Days for streak protection resetStripe handles all web-based payment processing for subscriptions and one-time purchases.
| Method | Description |
|---|---|
createCustomer(userId) | Create Stripe customer for user |
createCheckoutSession(...) | Create checkout session for subscription/payment |
createCustomerPortalSession(...) | Create billing portal session |
checkout.session.completed - Process successful checkoutcustomer.subscription.created - New subscriptioncustomer.subscription.updated - Subscription changedcustomer.subscription.deleted - Subscription cancelledinvoice.paid - Invoice payment successfulResend handles transactional email delivery for feedback notifications and system alerts.
Zapier integration allows users to export tasks to external services via webhooks.
Todoist integration allows syncing tasks from Todoist into 10 to Win.
Twilio enables SMS and voice call notifications for urgent tasks.
| Permission | Viewer | User | Admin | Master |
|---|---|---|---|---|
| user.profile.read | Yes | Yes | Yes | Yes |
| user.profile.write | - | Yes | Yes | Yes |
| user.tasks.read | Yes | Yes | Yes | Yes |
| user.tasks.write | - | Yes | Yes | Yes |
| admin.dashboard | - | - | Yes | Yes |
| admin.users.read | - | - | Yes | Yes |
| admin.users.write | - | - | Yes | Yes |
| admin.users.delete | - | - | Yes | Yes |
| Manage other admins | - | - | - | Yes |
| Database operations | - | - | - | Yes |
Authorization: Bearer <session_token>
salt:hash| Middleware | Purpose |
|---|---|
sessionAuth |
Validates session token, attaches user to request |
requireRole(role) |
Requires user to have at least specified role level |
requirePermission(perm) |
Requires user to have specific permission |
adminAuth |
Legacy middleware for admin dashboard (supports master password) |
| Role | Password | |
|---|---|---|
| testadmin@10towin.co | Admin | admin123 |
| testuser@10towin.co | User | admin123 |
| testviewer@10towin.co | Viewer | admin123 |
| Property | Type | Description |
|---|---|---|
| id | Serial | Auto-increment primary key |
| userId | Text | Reference to user |
| sessionToken | Text (unique) | 256-bit random token |
| expiresAt | Timestamp | Session expiration time |
| ipAddress | Text | Client IP address |
| userAgent | Text | Browser/device info |
| createdAt | Timestamp | Session creation time |
| lastActiveAt | Timestamp | Last activity time |
The admin dashboard provides comprehensive session management:
| Endpoint | Method | Description |
|---|---|---|
| /api/admin/my-sessions | GET | Get current admin's sessions |
| /api/admin/sessions | GET | Get all sessions (Master only) |
| /api/admin/sessions/:id | DELETE | Revoke a specific session |
| /api/admin/sessions/cleanup | POST | Remove expired sessions |
| /api/user/sessions | GET | Get user's active sessions |
| /api/user/sessions/:id | DELETE | Revoke user's own session |
The app offers optional AES-256 encryption for all locally stored data, providing an additional layer of security for sensitive task and habit information.
| Platform | Storage Location |
|---|---|
| iOS | Secure Enclave / Keychain |
| Android | Android Keystore |
| Web | LocalStorage (with additional obfuscation) |
The system includes automatic migration from legacy encryption formats, ensuring backward compatibility as encryption methods evolve.
| Column | Type | Description |
|---|---|---|
| id | TEXT PK | User identifier |
| TEXT | Email address | |
| name | TEXT | Display name |
| password_hash | TEXT | PBKDF2 password hash |
| role | VARCHAR(20) | master, admin, user, viewer |
| subscription_tier | VARCHAR(20) | free, basic, pro, lifetime |
| stripe_customer_id | TEXT | Stripe customer ID |
| referral_code | VARCHAR(10) | Unique referral code |
| referral_credits | INTEGER | Earned referral credits |
| Column | Type | Description |
|---|---|---|
| id | SERIAL PK | Session ID |
| user_id | TEXT | Reference to user |
| session_token | TEXT UNIQUE | 256-bit token |
| expires_at | TIMESTAMP | Expiration time |
| ip_address | TEXT | Client IP |
| user_agent | TEXT | Browser/device |
| Column | Type | Description |
|---|---|---|
| id | SERIAL PK | Payment ID |
| user_id | TEXT | Reference to user |
| provider | VARCHAR(20) | stripe, app_store, play_store |
| amount | INTEGER | Amount in cents |
| subscription_tier | VARCHAR(20) | basic, pro, lifetime |
| status | VARCHAR(20) | pending, succeeded, failed, refunded |
| Column | Type | Description |
|---|---|---|
| id | SERIAL PK | Promo code ID |
| code | VARCHAR(50) UNIQUE | Promo code string |
| code_type | VARCHAR(20) | vip, promo, referral_reward |
| tier_granted | VARCHAR(20) | basic, pro, lifetime |
| max_redemptions | INTEGER | Max uses (-1 = unlimited) |
| expires_at | TIMESTAMP | Expiration date |
| Column | Type | Description |
|---|---|---|
| id | SERIAL PK | Purchase ID |
| user_id | TEXT | Reference to user |
| boost_type | VARCHAR(30) | zapier, ai_suggestions, etc. |
| amount | INTEGER | 1000 ($10.00) |
| status | VARCHAR(20) | active, expired, refunded |
feedback - User feedback and suggestionssmart_tips - AI-generated tipsshare_events - Share tracking for referralsshare_rewards - Referral reward claimsprogress_snapshots - User progress sharinguser_subscriptions - Subscription historylaunch_action_events - Email/call/text trackingzapier_export_events - Zapier webhook logsuser_metrics - Aggregate user statisticspromo_code_redemptions - Promo code usagepush_notification_logs - Notification historysubscription_cancellations - Churn tracking| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /api/auth/register | POST | None | Register new user |
| /api/auth/login | POST | None | User login |
| /api/auth/logout | POST | Session | End session |
| /api/auth/me | GET | Session | Get current user |
| /api/auth/change-password | POST | Session | Change password |
| /api/admin/login | POST | None | Admin login |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /api/user/dashboard | GET | Session | User dashboard stats |
| /api/user/profile | PUT | Session | Update profile |
| /api/user/sessions | GET | Session | List user sessions |
| /api/user/sessions/:id | DELETE | Session | Revoke session |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /api/admin/users | GET | Admin | List all users |
| /api/admin/users/:id | PUT | Admin | Update user |
| /api/admin/users/:id | DELETE | Admin | Delete user |
| /api/admin/feedback | GET | Admin | List feedback |
| /api/admin/payments | GET | Admin | List payments |
| /api/admin/subscriptions | GET | Admin | List subscriptions |
| /api/admin/promo-codes | GET/POST | Admin | Manage promo codes |
| /api/admin/sessions | GET | Master | All active sessions |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /api/launch/log | POST | None | Log launch action |
| /api/launch/stats/:deviceId | GET | None | Get launch stats |
| /api/zapier/export | POST | None | Export to Zapier |
| /api/zapier/stats/:deviceId | GET | None | Get Zapier stats |
| /api/metrics/:deviceId | GET | None | Get user metrics |
| /api/metrics/increment | POST | None | Increment metric |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /api/stripe/products | GET | None | List products |
| /api/stripe/checkout | POST | None | Create checkout |
| /api/stripe/portal | POST | None | Customer portal |
| /api/stripe/webhook | POST | Signature | Stripe webhooks |
| /api/referral/register | POST | None | Register referral code |
| /api/referral/apply | POST | None | Apply referral code |
The User Dashboard is a web-based interface at /dashboard/index.html that provides users with account management, statistics, and self-service capabilities.
Users access the dashboard by logging in with their email and password. New users can register directly from the dashboard login page.
/dashboard/index.htmlDashboard home showing activity summary, user permissions, and key statistics at a glance.
Manage personal information including name, email (read-only), phone number, and company name.
View current subscription tier, expiration date, and complete subscription history with provider details.
Complete payment history showing date, provider (Stripe/App Store/Play Store), type, tier, amount, and status.
View and generate referral codes, track referral credits earned, see people referred, and claim rewards.
Track sharing activity history including channels used and share status.
View progress snapshots showing tasks completed, streaks, habits, perfect days, and achievements.
View all active login sessions with IP address, device info, and ability to revoke sessions.
Change password and manage security settings for the account.
The Overview section displays key metrics:
| Metric | Description |
|---|---|
| Tasks Created | Total number of tasks the user has created |
| Tasks Completed | Total number of tasks marked as complete |
| Habits Created | Total habits added to 10 for Life |
| Habits Completed | Total habit completions logged |
| Total Shares | Number of unique shares sent |
| Referral Credits | Credits earned from successful referrals |
Users can earn rewards by referring friends:
The Sessions section allows users to:
| Endpoint | Method | Description |
|---|---|---|
| /api/user/dashboard | GET | Get dashboard statistics |
| /api/user/profile | PUT | Update profile information |
| /api/user/payments | GET | List payment history |
| /api/user/shares | GET | List share events |
| /api/user/sessions | GET | List active sessions |
| /api/user/sessions/:id | DELETE | Revoke a session |
| /api/user/subscription | GET | Get subscription details |
| /api/user/referrals | GET | Get referral information |
| /api/user/referrals/generate-code | POST | Generate referral code |
| /api/user/snapshots | GET | List progress snapshots |
Dashboard features vary based on user role:
| Feature | Viewer | User | Admin | Master |
|---|---|---|---|---|
| View Dashboard | Yes | Yes | Yes | Yes |
| Update Profile | - | Yes | Yes | Yes |
| Change Password | - | Yes | Yes | Yes |
| Generate Referral Code | - | Yes | Yes | Yes |
| Revoke Sessions | - | Yes | Yes | Yes |
| Access Admin Dashboard | - | - | Yes | Yes |
The User Dashboard follows a modern dark theme design:
#f97316#0f172a#1e293b#f1f5f9$10 one-time purchase. Auto-import tasks from external apps via webhooks.
$10 one-time purchase. AI-powered task prioritization and scheduling recommendations.
$10 one-time purchase. Create tasks using natural language ("Call Mom tomorrow at 3pm").
$10 one-time purchase. AI breaks large tasks into smaller, actionable steps.
| Integration | Status | Description |
|---|---|---|
| Todoist Sync | In Progress | Two-way task sync with Todoist |
| Google Calendar | Planned | Calendar-based task scheduling |
| Apple Calendar | Planned | Native iOS calendar integration |
| Slack | Planned | Task notifications and creation from Slack |
| Microsoft To Do | Planned | Task import from Microsoft ecosystem |
| Notion | Planned | Database sync with Notion |
Quick task completion and habit tracking from your wrist. Complications for active timers.
Home screen widgets for quick task access and habit check-in.
Native macOS and Windows apps for power users.
Full-featured web app for task management and analytics.
This section provides quick access to all user guides, marketing materials, technical documentation, and reference pages for the 10 to Win ecosystem.
Comprehensive documentation for each access level, available in Markdown and Word-compatible formats.
| Guide | Audience | Formats | Description |
|---|---|---|---|
| Master User Guide | Master | .md | .doc | Complete system access, database operations, all HTML file inventory |
| Admin User Guide | Admin | .md | .doc | Dashboard navigation, user management, analytics, bulk operations |
| User Guide | User | .md | .doc | Task modes, habit tracking, subscriptions, referral program |
| Viewer Guide | Viewer | .md | .doc | Read-only access, viewing capabilities, upgrade path |
10 to Win includes a comprehensive bug reporting and feedback management system accessible to users and administrators.
Users can submit bug reports and feedback through multiple channels:
When reporting a bug, include:
Administrators manage bug reports through the Admin Dashboard:
| Type | Description | Priority Default |
|---|---|---|
| Bug Report | Something isn't working correctly | Medium |
| Feature Request | Suggestion for new functionality | Low |
| General Feedback | Comments, praise, or general input | Low |
Email notifications are sent via Resend integration.
Bug reports submitted via the feedback form are processed by the backend:
POST /api/feedback
Content-Type: application/json
{
"type": "bug" | "feature" | "feedback",
"name": "User Name",
"email": "user@example.com",
"message": "Description of the issue..."
}
Admin notifications are sent to configured admin emails via the Resend integration.
Printable brochures for different marketing purposes:
| Brochure | Link | Focus |
|---|---|---|
| Main Brochure | brochure.html | General marketing overview |
| Feature Focus | brochure2.html | Detailed feature highlights |
| Benefits Brochure | brochure3.html | User benefits and outcomes |
| Comparison Brochure | brochure4.html | Tier comparison and pricing |
| Testimonials | brochure5.html | User testimonials and success stories |
| Page | URL | Access Level | Description |
|---|---|---|---|
| Admin Dashboard | /admin/index.html | Admin+ | Main admin control panel |
| Master View | /admin/master-view.html | Master | System-wide analytics and control |
| Feedback Manager | /admin/feedback.html | Admin+ | User feedback management |
| Session Manager | /admin/SessionManager.html | Admin+ | Active session management |
| User Dashboard | /dashboard/index.html | User+ | Self-service account management |
| Document | URL | Description |
|---|---|---|
| Project Details | /internal/project-details.html | Internal project documentation and notes |
| Design Guidelines | /DesignGuidelines.html | This document - comprehensive design reference |
| Storage Capacity | /StorageCapacity.html | Database limits, storage thresholds, and Enterprise data management |
| Development Log | /docs/development-log.html | Chronological development changelog and feature tracking |
| Mobile App Checklist | /docs/mobileappchecklist.html | Feature completeness comparison and implementation status |