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

> The award-winning personal task manager for Apple devices

- Site: https://culturedcode.com
- Category: Productivity
- Platforms: macOS app, iOS app, iPadOS app, visionOS app
- Verdict: **Serious undertaking** (45/100 vibecodeable)
- Estimated effort: 4-6 weeks of part-time work

## Verdict

Build a single-platform macOS SwiftUI subset for personal use, but expect a multi-week fight to match their buttery-native UI fluidity.

Things 3 is an absolute masterclass in native Apple software craft. While an AI coding agent can generate the task database, CRUD logic, and natural language date parser in an afternoon, replicating the hyper-fluid custom animations, tactile touch gestures, multi-select slide interactions, and Type Travel keyboard navigation in SwiftUI requires deep, painstaking manual polish. Furthermore, scoping this to a true cross-device ecosystem suite (Mac, iPhone, iPad, Watch) multiplies the frontend effort tenfold. If you want a personal task manager, use Reminders; if you want to build this for fun, scope it strictly to a macOS menu bar or window utility.

### What you can't replicate

- The exact tactile feel of Cultured Code's custom animation engine
- Two decades of continuous design iteration and Apple Design Award pedigree
- Zero-latency CloudKit sync architecture optimized at the metal level

## What it does

Things is a premier personal task and project management application built around David Allen's Getting Things Done (GTD) productivity philosophy, featuring natural language parsing, calendar integration, and a fluid native interface.

### Core features

- Inbox capture with natural language date parsing
- Today and This Evening task scheduling views
- Upcoming calendar integration
- Projects with headings and checklists
- Quick Find and Type Travel keyboard navigation
- Multi-select and gesture-based list editing
- Time-based reminders with Fastlane push sync
- Apple Shortcuts and URL scheme integration

## The business

### Pricing

- Mac: $49.99 — Perpetual license for macOS
- iPad: $19.99 — Perpetual license for iPadOS
- iPhone & Watch: $9.99 — Perpetual license for iOS and watchOS

Founded 2007.
Team size: ~12.

## The hard parts

- Native macOS and iOS UI fluidity with custom animation engines and haptics
- Cross-device real-time sync with conflict resolution and instant push reminders
- Desktop-class keyboard navigation (Type Travel) and multi-select gesture mechanics
- Multi-platform native app architecture across Mac, iPad, iPhone, and Apple Watch

## How to vibe code Things

### Prerequisites

- Mac: Required for macOS and iOS native application development
- Xcode (free): Official IDE for building native SwiftUI applications
- Apple Developer Account ($99/yr): Required for running builds on physical iOS devices and configuring CloudKit entitlements

### Recommended AI tools

- Claude Code: Best-in-class terminal agent for scaffolding Swift models, database layers, and view architectures
- Cursor: Ideal for fine-tuning SwiftUI view layouts, gesture recognizers, and animation bindings

### Stack

- Frontend: SwiftUI + AppKit
- Backend: Local Swift Persistence (SwiftData)
- Database: SQLite / SwiftData local store
- Auth: Apple iCloud / CloudKit
- Payments: None (Personal use clone)
- Other: NaturalLanguage framework (Date parsing), EventKit (Calendar sync), UserNotifications (Reminders)

### Hosting

- Apple iCloud (CloudKit container for private user data sync across local devices): $0/mo

### Build guide

1. **Project Scaffolding & Data Models** — Initialize a multiplatform SwiftUI project in Xcode and define the core database schema using SwiftData.

```
Create a new multiplatform SwiftUI app structure supporting macOS and iOS named 'ThingsClone'. Define SwiftData models for Todo, Project, Heading, ChecklistItem, and Tag. A Todo must include properties for title, notes, status (inbox, today, upcoming, someday, completed), startDate (Date?), deadline (Date?), and a relationship to a Project or Heading. Implement schema versioning and preview data generators.
```

2. **Natural Language Date Parser & Quick Entry** — Build an intelligent parsing engine for scheduling dates and times from natural text input.

```
Implement a Swift utility class using NaturalLanguage and custom regex to parse natural language date inputs like 'tomorrow at 5pm', 'next tuesday', 'in 4 days', and 'aug 1'. Create a popover UI component ('Jump Start') that displays these suggestions dynamically as the user types, updating the Todo's start date and reminder time instantly.
```

3. **Core Views: Inbox, Today, and Upcoming** — Construct the main sidebar navigation and the three primary task lists with calendar event integrations.

```
Build the primary sidebar navigation supporting Inbox, Today, Upcoming, Someday, and Trash views. For the Today view, integrate EventKit to fetch and display native calendar events grouped neatly at the top of the list, followed by scheduled to-dos and a dedicated 'This Evening' sub-section. Ensure list rows support smooth inline expansion and touch-friendly swipe actions.
```

4. **Projects, Headings, and Checklists** — Add hierarchical project organization with movable headings and nested item checklists.

```
Implement the project detail view supporting collapsible headings, drag-and-drop reordering of tasks within and across headings, progress pies reflecting completion percentages, and nested checklist items. Ensure multi-select state management allows batch editing (completing, rescheduling, or tagging multiple selected rows at once).
```

5. **Quick Find & Keyboard Navigation** — Implement app-wide search and desktop-class keyboard navigation (Type Travel).

```
Build a lightning-fast Quick Find search overlay that activates instantly upon typing anywhere in the app (Type Travel). Support app-wide filtering by text, tags (e.g., typing '@errands'), and project titles. Implement comprehensive keyboard shortcuts matching macOS conventions (Cmd+N for new item, Cmd+K for complete, arrow keys for navigation, Shift+arrow for multi-select).
```

6. **CloudKit Sync & Reminders** — Configure local notifications and CloudKit container synchronization for multi-device support.

```
Configure SwiftData with a CloudKit private database container to enable seamless background synchronization across personal Apple devices. Implement local notifications via UserNotifications framework for time-sensitive task reminders, ensuring notifications fire accurately even when the app is backgrounded.
```

### Cost vs paying

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

- Apple Developer Account (required for device testing & CloudKit): $99/yr
- AI Coding Assistant Subscription: $20 one-time
- Total: ~$119 one-time

**Ongoing costs (monthly):**

- Apple Developer Program Renewal: $8.25/mo ($99/yr)
- Total: ~$8.25/mo

- Paying for the SaaS instead: $0/mo ($110 one-time ecosystem purchase)
- Build time: 40-60 hours
- AI tool credits: $20 (1 month of Claude Pro / Cursor)
- Break-even: Never (Things is a perpetual purchase, build is for learning)

## Sources

- [Things Official Website](https://culturedcode.com)
- [Things Support - Getting Things & Pricing Structure](https://support.culturedcode.com/article/76-getting-things)
- [Apple App Store - Things 3 Listing & Reviews](https://apps.apple.com/us/app/things-3/id904237743)