How to vibe codeThings
The award-winning personal task manager for Apple devices
culturedcode.com ↗Productivity
The verdict: can you vibe code Things?
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.
Estimated effort: 4-6 weeks of part-time work
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
Founded
2007
Raised
—
Team
~12
Cheapest paid tier
$49.99
What Things 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
- iPad$19.99
- iPhone & Watch$9.99
Funding
Unknown / bootstrapped
The hard parts of vibe coding Things
- 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 vibecode Things
Prerequisites
Mac
Required for macOS and iOS native application development
Xcodefree
Official IDE for building native SwiftUI applications
Apple Developer Account$99/yr
Required for running builds on physical iOS devices and configuring CloudKit entitlements
AI coding tools
Recommended 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 & infrastructure
| Apple iCloud | CloudKit container for private user data sync across local devices | $0/mo |
Build guide
01Project 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.02Natural 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.03Core 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.04Projects, 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).05Quick 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).06CloudKit 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 for Things
What will you build it with?
Starting total with Claude Code~$99 one-time
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 Things
$0/mo ($110 one-time ecosystem purchase)
Your time to build
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)
Vibe code Things: FAQ
- Can you vibe code Things yourself?
- Serious undertaking — 45/100 vibecodeable. Build a single-platform macOS SwiftUI subset for personal use, but expect a multi-week fight to match their buttery-native UI fluidity.
- How long does it take to vibe code Things?
- 4-6 weeks of part-time work — roughly 40-60 hours of hands-on time with an AI coding agent.
- How do you build your own Things?
- Scoped to personal use: SwiftUI + AppKit on the front, Local Swift Persistence (SwiftData) behind it, SQLite / SwiftData local store for data. Follow the 6-step build guide on this page — each step has a paste-ready prompt for an AI coding agent.
- How do you code your own Things without being an expert?
- Use an AI coding tool (Claude Code or Cursor) and work in small steps: scaffold, data model, core screens, then deploy. Realistic effort: 4-6 weeks of part-time work. The prompts on this page are written so the AI does the heavy lifting.
- How much does it cost to vibe code Things instead of paying?
- About ~$119 one-time to start and ~$8.25/mo to run, versus $0/mo ($110 one-time ecosystem purchase) for Things. Break-even: Never (Things is a perpetual purchase, build is for learning).
- What stack should you use to vibe code Things?
- SwiftUI + AppKit; Local Swift Persistence (SwiftData); SQLite / SwiftData local store; plus NaturalLanguage framework (Date parsing), EventKit (Calendar sync), UserNotifications (Reminders).