CyclesCycles Field Guide
All notes

Cycles Field Guide

Local-First Productivity Tools Keep Your Planning Data Yours

Local-first software keeps your planning data on your device, not a server. Learn how data ownership, privacy, and offline reliability change productivity tools.

You open your planning app to map out the week ahead. Maybe you want to check what recurring tasks are coming up, adjust a rotation, or see whether you have room for a new commitment. Instead of your schedule, you get a loading spinner. The server is slow. Or unreachable. Or temporarily down for maintenance. Your own data, on a device in your hands, is temporarily behind a wall someone else built.

That frustration points to a structural problem with how most productivity apps work. There is a better architectural model, and it has a name: local-first software. The idea is straightforward. Your data lives on your device first, not on a server. Sync becomes an enhancement, not a dependency. And three things follow from that: you own your data, your privacy is built into the architecture rather than promised in a policy, and your planning works whether or not you have an internet connection.

What "local-first software" actually means (and how it differs from "offline mode")

The term "local-first software" comes from a 2019 essay by Martin Kleppmann, Adam Wiggins, and collaborators at the research lab Ink & Switch. Their paper laid out seven ideals for a new generation of applications, but the core principle is simple: the copy of data on your local device is the primary, authoritative copy, not a cache of something stored on a server.

A person's hands working on a laptop at a wooden desk with a notebook open beside it, illustrating local-first productivity on your own device
Local-first means your planning data lives on your device, not in someone else's server.

Here is how Kleppmann and Wiggins described the distinction:

"In cloud apps, the data on the server is treated as the primary, authoritative copy of the data; if a client has a copy of the data, it is merely a cache that is subordinate to the server. Any data modification must be sent to the server, otherwise it 'didn't happen.' In local-first applications we swap these roles: we treat the copy of the data on your local device as the primary copy."

That inversion changes everything about how an app feels and behaves. In a cloud-dependent app, your phone or laptop holds a temporary copy. The server holds the real one. In a local-first app, your device holds the real one, and syncing to other devices is something that happens in the background when it can.

This is fundamentally different from "offline mode." Offline mode is a patch added to a cloud app so it can limp along without a connection. The app is still designed around the server. When the connection drops, you get a degraded experience, limited functionality, or a read-only view. Local-first apps are designed local from the ground up. They work fully and normally without a server. Connectivity is a bonus, not a requirement.

Cloud-dependent vs. local-first: two architectures, two experiences

Think of it this way. A cloud-dependent app stores your planning data in someone else's filing cabinet. You can look at it when the cabinet is open and the owner lets you in. A local-first app keeps your data on your own desk. You can reach it anytime.

A closed filing cabinet next to an open personal notebook on a table, a visual contrast between cloud storage and local data ownership
Cloud apps store your schedule in someone else's filing cabinet. Local-first tools keep it on your own desk.

The technical difference plays out in every single interaction:

Cloud-dependent app

Local-first app

Where data lives

Server is the source of truth; device holds a cache

Device holds the primary copy; sync is optional

Each edit

Network request, server processing, response, UI update

Direct write to local database, background sync when available

Typical latency

100 to 200ms or more; often 500ms+ on poor connections

1 to 20ms for local database operations

Offline behavior

Often read-only or refuses to open

Full functionality with no connectivity

Loading spinners

Common for routine actions

Eliminated for local reads and writes

Every major planning app, including Todoist, TickTick, Notion, Habitica, and Streaks, is built on the cloud-dependent model. When you check what task is next, adjust a recurring schedule, or reorder your priorities, that action travels to a server and back. On a fast connection, the delay is barely noticeable. On a slow one, it accumulates into a frustrating experience where checking your own schedule feels like waiting in line.

Local-first apps eliminate that friction for routine operations. Checking what comes next in a rotation, adjusting a weight, or reshuffling a schedule is a local computation. It happens against data already on your device, in milliseconds.

Data ownership: why your schedule belongs to you

Cloud productivity apps store your planning data on servers you do not control. The app provider has ultimate access to that data. In some cases, "free" cloud apps monetize user data to sustain their business model. Even when providers act in good faith, your planning history, your routines, and your schedule sit on infrastructure you cannot inspect, audit, or control.

Local-first tools flip that relationship. Your data lives on your device. You own it. The developer cannot remotely access, read, or modify it because there is no server-side copy to access. Data ownership in this model is not a privacy policy promise. It is an architectural fact.

This matters beyond privacy. It is about long-term access. When your planning history lives on someone else's server, you depend on that company staying in business, maintaining your account, and not changing their terms. Vendor lock-in is a real cost. Tools like Obsidian, Bear, and Logseq have attracted large user bases specifically because they store data locally, in formats users control. People choose them because they want their notes and plans to remain accessible on their own terms, not at the pleasure of a service provider.

Privacy regulations like GDPR in Europe and CCPA in California are making large-scale cloud storage of personal data more legally complex and financially risky for companies. That pressure reinforces the case for local-first: less data on servers means less exposure, fewer compliance burdens, and a simpler trust model between user and tool.

Your schedule, your device: privacy for sensitive routines

Planning data is among the most personal digital information you produce. Household chore rotations reveal the texture of domestic life. Health and fitness schedules expose routines tied to physical and mental well-being. Financial planning cycles show income patterns and obligations. Creative project cycles reflect private ambitions and working habits.

Most people would not voluntarily hand a stranger a log of their exercise routine, their household task distribution, or their creative output schedule. But that is effectively what happens when that data lives on a third-party server. You are trusting the provider, their security practices, their employees, their vendors, and the continued goodwill of their business model.

Local-first architecture provides stronger privacy by default. There is no central server to breach. The attack surface that makes cloud databases attractive targets simply does not exist. Your data is not sold to advertisers because it never leaves your device unless you choose to sync. And the developer cannot remotely change your privacy settings because there is no server-side account to manage.

Contrast this with cloud apps, where privacy depends on terms-of-service agreements. Those agreements can change. Companies get acquired. Policies get updated. A privacy commitment made today may not hold tomorrow. With local-first, privacy is structural. It does not depend on a document.

On a plane, in a tunnel, during an outage

The offline reliability benefit of local-first software is best understood through concrete situations.

A person using a smartphone to plan tasks on an airplane tray table with a window showing clouds outside, showing offline planning on a flight
On a flight, in a tunnel, during an outage: local-first planning works without a connection.

Editing on a flight. You are at 35,000 feet with no Wi-Fi. You want to adjust your weekly rotation, reprioritize recurring tasks, and check whether you have capacity for a new commitment next week. A local-first app handles all of that instantly, against data already on your device. A cloud-dependent app is either unable to load your schedule at all or shows you a stale read-only snapshot. Your planning is hostage to your altitude.

Commuting through a dead zone. You are on a subway, making scheduling decisions during the ride. Signal drops in and out. A local-first app responds to every tap without hesitation. A cloud-dependent app stalls, retries, and eventually shows an error. The difference between a 5ms local read and a 500ms network round-trip is the difference between a tool that helps you think and one that interrupts your thinking.

Home internet outage. Your connection goes down for the evening. You still need to manage household task rotations, adjust schedules, and plan tomorrow. A local-first app works exactly as it always does. When your connection returns, changes sync automatically. No manual merge. No conflict resolution. Kleppmann put the principle plainly: "The availability of another computer should never prevent you from working."

Why a rotation planner benefits fundamentally from local-first architecture

Rotation planning involves a specific pattern of use: frequent, rapid decisions. What comes next in this rotation? Do I have capacity for this? Should this task be weighted higher? Can I shuffle the order today? Each of these is a small computation that should happen instantly, the moment you think of it.

These micro-decisions are exactly the operations that suffer most from server round-trips. When every capacity check requires a network request, the planning process acquires a stutter. You think, you tap, you wait, you get a result, you think again. That latency breaks the flow of decision-making.

Cycles is a rotation planner built local-first from the ground up. Strict, weighted, and shuffled rotation logic runs on-device. Capacity checks, priority adjustments, and "what's next" queries resolve against local data in milliseconds. The architectural advantage becomes a planning advantage: the tool keeps up with your thinking instead of making you wait for it.

Local-first does not mean limited access. Cycles is available across Web, iOS, Android, macOS, and iPadOS. It is part of a broader suite of purpose-built apps under thoughtbubble.dev, each addressing a focused problem. Local-first means ownership and reach, not confinement to a single device.

The local-first movement is gaining momentum

Local-first is no longer a niche developer preference. It is becoming a mainstream expectation, and the technology has caught up with the philosophy.

Browser storage APIs have matured dramatically. IndexedDB, once limited to 5 to 50MB per site, now supports hundreds of megabytes to gigabytes in modern browsers. The Origin Private File System (OPFS) API enables near-native file read and write speeds in the browser. WebAssembly brings near-native computation to the client side. Together, these advances have made complex local-first web apps viable for the first time.

Even cloud-first companies are adding local sync and offline capabilities in response to user demand. The pendulum, which swung hard toward cloud-only models over the past decade, is swinging back. Users are growing skeptical of services that monetize their data, change terms without notice, or lock them out during outages. The idea that your data should live on your device, under your control, is moving from an architectural preference to a baseline expectation for productivity tools.

Take control of your planning data

Local-first software rests on three pillars: your data is yours, your privacy is architectural rather than promotional, and your planning works anywhere, with or without a connection.

Planning tools benefit from this model more than most software because planning decisions are frequent, personal, and time-sensitive. A rotation planner that requires a server round-trip for every capacity check or priority adjustment is working against the rhythm of real decision-making. A local-first rotation planner works with it.

Cycles brings local-first principles to rotation planning. Strict, weighted, and shuffled rotations compute on-device, instantly. Your planning data stays on your device. And the tool never has to ask a server for permission to help you plan.

See how Cycles works and experience planning that responds at the speed of thought.