Omnifocus For The Web



When you log in to OmniFocus for the Web, you provide your encryption key to the web app. (For many people this is the same as their password, though not necessarily: we support having a separate key.) Then we start a new isolated instance of OmniFocus that’s. OmniFocus on the web is designed to be used in conjunction with the OmniFocus app on iOS or Mac. OmniFocus on the web includes many of the core features of the popular task management system, but. Omni Sync Server is a free service that enables all of your Omni apps to sync between all of your devices. This includes our Mac and iOS apps and OmniFocus for the Web.

If you listen to The Talk Show Live from WWDC 2019, near the beginnning (around 3:33) you’ll hear the host John Gruber talk about OmniFocus for the Web:

…instead, what these crazy people did is they’re using the same Objective-C and Swift code that OmniFocus for Mac is built with, and they’re running it on Mac servers, and they just have web output display from the same code. Crazy, right? And so for all of the consternation that people like us, and all the anger we have at developers who make web apps and put it in a shell and call it their Mac app, The Omni Group has done the right thing! They took their Mac app and now it’s on the web! Super-super great. It’s so very Omni to do something so nutty-sounding.
  1. Omnifocus For The Web: Perspectives arrive on the test service. 1: 279: September 15, 2020 Embed an OmniFocus project in a wiki. 6: 924: August 23, 2020 Mobile Friendly Version. 5: 944: August 12, 2020 Omnifocus web folder display. 1: 311: June 18, 2020.
  2. OmniFocus is the trusted, gold-standard to-do app for Mac that helps you accomplish more every day. It includes free syncing with OmniFocus for iOS (sold separately) and with OmniFocus for the Web (which requires a subscription). OmniGraffle 7 OmniGraffle is a comprehensive, yet easy to use diagramming and drawing application.

John’s right: it’s so Omni, and it does sound a little nutty — but only because it’s not what most companies do.

It actually makes complete sense!

Shared Database and Syncing Code

Our model code — the code that manages the database and syncing — was already shared between OmniFocus for Mac and iOS, and it’s a mix of Objective-C and Swift code.

For OmniFocus for the Web, we could have written a new version of this code in another language such as Go or Ruby. But that would have meant more work up front and more ongoing work, as both versions would have to be in step with each other.

And it’s likely that each version would have different bugs. Something that works perfectly in one place might not work in another, or might work subtly differently.

Given that this code is all under-the-hood code — it’s not user interface code — we realized that we could run it on the web, too, as long as we’re using Mac servers. So… why not?

And that’s what we did. It means that, when you’re using OmniFocus for the Web, you’re actually connecting to a sandboxed instance of that same OmniFocus code that’s running on your Mac, iPhone, or iPad.

That code is the heart of OmniFocus. But it’s not the only thing running on the web.

Web-only Components

In addition to that shared model code, the web version has additional components that aren’t shared — they’re only for the web app.

They are: API hosts, the coordinator, the notifications sytem, and the front end (the user interface).

API Hosts

API hosts sit between the front end and the shared model code. The front end doesn’t talk directly to the shared code — instead, we’ve created an API, and the front end talks to one of our API hosts, which then talks to the shared model code.

We run more than one of these, so that if we need to take one offline (for an upgrade, for instance) then OmniFocus for the Web will continue working.

Coordinator

The coordinator initiates an instance of the shared model code for each user, and makes sure that user is connected to that instance. It also cleans up idle instances and takes care of API host scaling.

This component is written in Python. (It may be a surprise to hear that we have a lot of Python experience. We do.)

Notifications Service

The notifications service, written in Go, had originally been written to send notifications to the non-Mac-App-Store edition of OmniFocus for Mac. In those days you couldn’t use Apple’s push notifications service with apps distributed outside the App Store. (Now you can.)

But we found this useful for OmniFocus for the Web — an API host gets a notification that something changed, and it triggers an update in the front end, in your browser.

This is how you can have OmniFocus open on your Mac or iOS device and have OmniFocus for the Web open, and a change made on your Mac, iPhone, or iPad will show up in your browser without your having to do anything.

Front End

The front end is the HTML and JavaScript that runs the user interface and that talks to an API host. This is what’s actually running in your web browser. The front end is written in React.

It’s served by a Content Delivery Network to make sure it’s as fast in Australia as it is here in Seattle.

See Also

For more on this topic, listen to (or read the transcript of) the episode of The Omni Show from October 2018: How We Built OmniFocus for the Web.

For details about security, see our blog post How Security and Encryption Work in OmniFocus for the Web.

Preferences in OmniFocus govern ways the app behaves and how you interact with it, with settings that can be customized to suit your needs. Choose OmniFocus > Preferences (Command-,) to open the Preferences window.

General

The General tab includes settings for common interactions you’ll have with OmniFocus.

Outlining

Choose between Classic Mode and Modern Mode outlining, governing the behavior of common keyboard actions when items in the outline are selected.

Quick Entry Shortcut

Set a custom keyboard shortcut for Quick Entry here (the default is Control-Option-Space).

Clippings Shortcut

Use the Clippings Shortcut button to open System Preferences and set up your system-wide keyboard shortcut for Clippings.

Organization

Projects

The Organization tab includes settings for keeping your database views tidy and determining how projects and perspectives are organized.

Clean up inbox items which have

You can choose Organize > Clean Up (Command-K) to help keep your Inbox tidy by moving items with changed status or metadata to their correct locations. This preference governs which changes cause an item to be swept up in the cleanup process.

Clean up items completed on this Mac

If you’d prefer that items be cleaned up as soon as they are marked complete, choose Immediately. Otherwise, completed items will be cleaned up when you switch between perspectives or when you invoke a cleanup manually.

New projects and action groups are

Choose Sequential if you tend to create projects whose actions must be completed in a specific order, or choose Parallel if your projects and groups are often closer to unordered lists.

Omnifocus Web Perspectives

In Tags and Flagged

If you’d prefer to display items completely detached from the projects or groups they belong to when you’re looking at the Tags or Flagged perspectives, uncheck the box for this preference.

In the Projects perspective

Choose Show Inbox to display the Inbox as the first item in your Projects list (unlike other items, this one cannot be reordered in the list). This option is available for convenience of interaction between your Inbox and Projects perspectives, and does not otherwise change the behavior of the Inbox.

Layout

The Layout tab controls how data is displayed in OmniFocus’s outline.

Fluid

Omnifocus For Pc

This option displays information related to items in the outline in a row beneath each item’s title.

Columns

This option provides a configurable set of columns for each item. Your data appears in columns on the same row as each item’s title, and these columns can be selectively shown or hidden with the checkboxes in this section.

With OmniFocus Pro, you can use individual perspectives’ View options to choose whether Layout preferences apply to that particular perspective. If you use a variant layout, you can further customize it by choosing columns that show only the data most relevant to the perspective.

Style

The Style tab controls the fonts and colors used throughout OmniFocus.

Font size

The slider here offers scaling font size for easy readability or higher data density.

Color palette

Choose a themed set of colors to apply to your OmniFocus interface. The following styles are included:

  • OmniFocus
  • OmniFocus Dark

The checkbox below the color palette menu offers the option to use color for Due Soon, Overdue, and First Available items. When this checkbox is selected, these items will be styled in colors appropriate to their status.

Dates and Times

OmniFocus starts with an educated guess at some default parameters for what it means for items to be due, due soon, and deferred, as well as an interval for project reviews. You can change these settings in the Dates & Times tab of Preferences.

“Due Soon” means

OmniFocus displays actions and projects that are due soon with an amber title and status circle. What “due soon” means is up to you—the default is two days away from the present, but you can pick a different value here.

For

Default time for defer dates

When you create an action or project with a defer date but no specific time of day, OmniFocus helpfully provides one for you. Use this preference to pick a default time for defer dates that most suits your needs.

Default time for due dates

As with the previous preference, you have free reign over the time that your actions and projects come due by default (when only a due date is assigned).

By default, review projects every

This preference governs how often projects will show up in your Review queue by default. (You can set custom review intervals for specific projects using the inspector.)

Badges

OmniFocus can operate in complete stealth mode, or it can alert you each and every time an action is due. The Badges tab of Preferences holds settings for fine-grained control over when and how the app tells you what’s up next.

Show badges

How visibly do you want OmniFocus remind about items you’ve decided are relevant? This preference adds some visual oomph to let you know what’s going on, by:

  • Badging the OmniFocus icon in your dock with a number equal to the items you’ve chosen to be reminded about (based on the Badge counts section below).

  • Equipping the OmniFocus sidebar with badges displaying due soon and overdue items in projects and tags (for any perspective that displays them).

Highlight perspectives

When there are items asking for your attention in one of the built-in perspectives, OmniFocus can give you a subtle reminder by adding a colored bar to the left edge of the perspective’s tab. Use this preference to choose which perspectives can be highlighted when something relevant comes up.

Badge counts

Check the boxes in this section for items you want to include in the badge count number that appears in the places set in the Show badges section above.

Show in Today

With the Today extension turned on, you can fine-tune the list of items you see when you look at Today in Notification Center. Items that can be shown include Overdue, Due Today (the default), Deferred Until Today, Flagged, and Inbox Items.

With OmniFocus Pro, you also have the option of choosing a custom perspective to display in Notification Center via the Today extension. Choosing Show a Custom Perspective reveals a dropdown menu from which you can pick the existing custom perspective that you’d like to display.

Omnifocus Web Api

Synchronization

Establishing a cloud-connected copy of your database is a great way to keep OmniFocus in harmony across all your devices. The Synchronization tab has the options you need to set up your sync account.

Don’t Sync

This setting isn’t recommended, but if you plan to use OmniFocus exclusively on your Mac and syncing to a remote server is prohibitive, you can choose to disable OmniFocus’s sync features. In all other cases, having a cloud-based copy of your data is a great way to rest at ease that your work won’t be lost in a local catastrophe.

Omni Sync Server

Omni maintains a set of servers designed to interface cleanly with OmniFocus, providing unique features like email capture and support for your needs as an OmniFocus user. We recommend this as the best sync solution for most users, since it’s the one we can provide the most support for; it also happens to be free!

Check out the Getting Synced appendix for details on getting set up and for more information on how sync works.

Advanced (WebDAV)

If you choose to entrust your data with the Omni Sync Server, we’ll treat it with utmost care and responsibility (see our Terms of Service and Privacy Policy). That said, if you have exceptional security needs or other privacy concerns, you may want to use a third party WebDAV server (or set up your own). That’s great! Find out more about syncing to a custom WebDAV server in Other WebDAV Options.

Account Information

When you’ve chosen a sync preference, a field appears beneath the sync choices for entering the server address or account name. You can sync immediately with the Sync Now button and view detailed information about your sync setup with Show Sync Details. Choose Send Settings via Email to create a handy message that’ll help configure sync on your other devices.

Show Sync Details

When you click Show Sync Details a sheet appears with tabs that contain advanced information about your connected sync account, including:

  • A list of Devices currently syncing to the account. Selecting a device shows how recently it synced to your OmniFocus database, and provides the option to unregister it as an approved sync client.

  • Push-triggered sync options, with push enabled by default. Technical details of your push connection are shown here, along with advanced options (primarily used for troubleshooting). The Learn More link connects to a support article with details on how push works, and why even the most data security-conscious users will likely want to leave it enabled.

  • A sync Log with a list of all your recent OmniFocus database sync activity, and the reasons for each sync event along with their durations. If anything seems strange here, you can copy the log for use when contacting Omni support.

  • Details about the Encryption status of your data on the sync server. OmniFocus uses a database format that encrypts your data on the server. Verify the encryption status of your sync data here, and (optionally) set up a separate passphrase for decrypting your database.

Update

The Update tab controls how frequently OmniFocus checks for updates to itself (for non-Mac App Store builds only), and offers the option to help Omni improve future versions of OmniFocus by sending us anonymous data about your Mac.

Check for updates (Omni Store Only)

OmniFocus is naturally curious about when updates are available for itself. If you’d prefer for the app not to check for updates automatically, uncheck the box for this preference; otherwise, you can choose an interval that suits you best (it’s not a very intrusive or bandwidth-heavy process). You can check for updates manually using the Check Now button, or with Check for Updates in the OmniFocus menu.

Omnifocus Online

Send anonymous system information to The Omni Group

Omnifocus Web App

If you’d like to help us improve future versions of OmniFocus for you and others, you can choose to send us anonymous information about your system when you check for updates to the app. Click Learn more about what kind of information is sent to see a list of exactly what info is collected, and learn how it’s used.