# How to Vibe Code Your Own Lunatask (and Stop Paying for It)

> Encrypted to-do list, life-tracking, journaling and notes app

- Site: https://lunatask.app
- Category: Productivity & Life Tracking
- Platforms: macOS app, Windows app, Linux app, iOS app, Android app
- Verdict: **Serious undertaking** (38/100 vibecodeable)
- Estimated effort: 3-5 months of part-time work

## Verdict

Build a web-based task tracker subset instead, or keep paying for Lunatask; client-side end-to-end encryption across five native platforms makes a faithful clone a serious undertaking.

Replicating Lunatask as a solo developer using AI agents is severely bottlenecked by its multi-platform footprint (Electron desktop plus mobile apps) and zero-knowledge end-to-end encryption. While an AI coding agent can spin up a Next.js or Expo prototype with basic lists and charts in days, implementing local client-side AES encryption where search, filters, and relational links work seamlessly on encrypted blobs is notoriously painful to debug. Furthermore, wrangling OAuth tokens, calendar sync edge cases, and building a unified UI that glues together notes, Kanban boards, habit streaks, mood charts, and a CRM will trap you in months of unglamorous integration work.

### What you can't replicate

- The exact native feel and auto-updating binaries across macOS, Windows, Linux, iOS, and Android
- Zero-knowledge server architecture combined with high-performance encrypted local search
- Years of nuanced UI/UX polish tailored specifically for ADHD productivity patterns

## What it does

An all-in-one, privacy-focused personal productivity and life-tracking application combining task management, habit tracking, mood logs, secure notes, personal CRM, and calendar integration with end-to-end encryption.

### Core features

- Now/Later and Eisenhower Matrix task prioritization workflows
- Visual habit tracker with streaks and recurrences
- Mood, energy, and stress level tracking
- Client-side End-to-End Encrypted (E2EE) markdown notes and journals
- Personal CRM for relationships and reconnection reminders
- External calendar sync (Google, Outlook, CalDAV) and time-blocking
- Pomodoro task timers and work-in-progress (WIP) limits

## The business

### Pricing

- Free Plan: Free — Basic personal use with limited areas and habits
- Premium: $8/mo — Full access to all features and unlimited records

Founded 2019.
Team size: 2.

## The hard parts

- Client-side end-to-end encryption architecture supporting fast relational queries and local search without leaking plaintext keys
- Cross-platform synchronization and offline-first caching across macOS, Windows, Linux, iOS, and Android
- Bidirectional calendar sync and OAuth integrations with brittle external providers (Google, Microsoft Graph, CalDAV)
- Replicating an all-in-one productivity suite's dense, interconnected UI without feeling bloated

## How to vibe code Lunatask

### Prerequisites

- Node.js (free): Runtime for building the web dashboard and Expo tooling.
- GitHub (free): Source control and CI/CD repository management.
- Expo Account (free): Required for building and deploying the cross-platform mobile app client.

### Recommended AI tools

- Claude Code: Best-in-class agentic coding tool for scaffolding full-stack features and writing complex encryption logic across multiple files.
- Cursor: Essential for iterative UI refinement, Tailwind styling, and reviewing code diffs component by component.

### Stack

- Frontend: Next.js (Web dashboard) + Expo / React Native (Cross-platform mobile apps)
- Backend: Next.js API Routes / Server Actions
- Database: Turso (Edge SQLite)
- Auth: better-auth
- Payments: None (Personal use clone)
- Other: Tailwind CSS, CryptoJS (for client-side E2EE), PostHog (analytics)

### Hosting

- Vercel (Hosting the Next.js web dashboard and API endpoints): $0/mo
- Turso (Serverless edge SQLite database storage): $0/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the monorepo with Next.js and Expo, set up Tailwind CSS, configure Turso database tables for users, areas, tasks, habits, mood logs, and notes.

```
Scramble up a full-stack Next.js project configured with TypeScript, Tailwind CSS, and Turso via libSQL. Create database migration files for the core data model: users, areas_of_life (id, user_id, name, position), tasks (id, area_id, title, description_encrypted, status, priority, workflow_type, due_date, estimated_minutes), habits (id, user_id, title, recurrence, current_streak, record_streak), mood_logs (id, user_id, date, mood_score, energy_level, stress_level, notes_encrypted), and notes (id, area_id, title, content_encrypted, is_pinned). Ensure strict type safety and establish a clean directory structure separating server actions, components, and encryption utilities.
```

2. **Client-Side End-to-End Encryption Layer** — Implement local encryption and decryption helpers using Web Crypto API / CryptoJS so sensitive task descriptions, notes, and journal entries are encrypted in the browser before transmission.

```
Implement a client-side end-to-end encryption module using standard cryptographic primitives (AES-GCM via Web Crypto API). Create React hooks and utility functions that encrypt task descriptions, note bodies, and journal entries using a user-derived master key before sending payloads to the server API routes. Ensure that decryption happens transparently upon fetching data on the client side. Add robust error handling for missing keys or invalid ciphertexts, and verify that the backend database only ever stores opaque ciphertext strings for sensitive fields.
```

3. **Forgiving Task Workflows & Prioritization Engine** — Build the core task management interface supporting Now/Later, Eisenhower Matrix, and Must/Should/Want workflows with automated sorting and WIP limits.

```
Build the task management interface in Next.js featuring multiple opinionated productivity workflows: Now/Later columns, Eisenhower Matrix quadrants, and Must/Should/Want lists. Implement frontend state management and backend sorting logic that automatically bubbles high-priority and aging tasks to the top based on age, user priority settings, and WIP limits. Include interactive drag-and-drop or status-toggle actions, pomodoro timer components, and keyboard shortcuts (e.g., Shift+Arrow Up) for rapid task promotion.
```

4. **Habit Tracker & Mood Logging Dashboard** — Develop the visual habit tracking grid, streak counters, and daily well-being charts for mood, energy, and stress levels.

```
Create a dedicated life-tracking dashboard containing two main subsystems: a visual habit tracker and a mood/energy logger. For habits, build a grid view supporting daily/weekly recurrences, multi-completion tracking, and automatic calculation of current and record streaks. For mood and well-being, build interactive charting components (using Tailwind and lightweight SVG or chart libraries) to visualize daily emotional states, energy fluctuations, and stress levels over time, ensuring all journal and mood notes are encrypted client-side before persisting to Turso.
```

5. **Secure Notes, Notebooks, and Personal CRM** — Add markdown-supported secure notes with PIN protection and a personal CRM section for managing relationships and reconnection reminders.

```
Implement a secure notes and notebook manager supporting markdown editing, note templates, deep linking, and PIN-protected notebook locking. Alongside notes, build a Personal CRM module allowing users to track friends and family contacts, store relationship notes, view interaction timelines, and configure automated reconnection reminders. Ensure all contact notes and journal entries integrate seamlessly with the client-side encryption utility created in Step 2.
```

6. **Calendar Integration & Time-Blocking UI** — Build a daily calendar view supporting manual task time-blocking and external calendar event rendering.

```
Build a daily calendar and time-blocking interface that displays scheduled tasks and external calendar blocks side-by-side. Implement drag-and-drop scheduling to drop tasks onto time slots, along with a calendar integration settings page that supports importing iCal feeds and parsing external calendar events. Add UI support for quick one-click video conference joining for detected meeting links (Zoom, Google Meet, Microsoft Teams).
```

7. **Cross-Platform Mobile App Client via Expo** — Package the core task and habit features into a React Native Expo app for iOS and Android sync.

```
Scaffold an Expo React Native mobile client that connects to the Next.js backend API. Implement mobile-optimized screens for the Now/Later task list, habit check-ins, and quick note capture. Ensure secure local token storage using Expo SecureStore and maintain offline-first caching of encrypted task blobs using local SQLite, syncing changes back to the Turso backend when network connectivity is restored.
```

### Cost vs paying

**Starting costs (one-time):**

- Domain name (optional): $12/yr
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Vercel Hobby Hosting: $0/mo
- Turso Edge DB: $0/mo
- Total: $0/mo

- Paying for the SaaS instead: $8/mo
- Build time: 40-60 hours
- AI tool credits: $20 (Claude Pro / Cursor Pro)
- Break-even: Never (built for learning & privacy control)

## Sources

- [Lunatask Official Website & Documentation](https://lunatask.app)