FreeWeb · PWA · macOS

Clear your head.
Let DyskFocus remember.

An OmniFocus-style task manager that is entirely yours. Inbox, projects, tags, perspectives, review and forecast, on your own server or on a Mac with no server at all.

  • WebAny OS, in the browser
  • PWAPhone and desktop
  • macOSNo server
TodayTry ticking a task
Pay rent !high #home tomorrow↵

Five ways to see your day.

Today, Inbox, Forecast, Calendar, plus Flagged and Completed. All of them timezone-aware.

The Today view in DyskFocus

Small on the outside, complete inside.

Quick add in plain language

Type one sentence. Priority, tags and dates are picked up for you.

Pay rent !high #home tomorrow
Priority · HighTag · homeDue · Tomorrow

Perspectives and Review

Save your favourite filters as perspectives, then go through projects one by one in Review mode.

Work this weekWaiting for replyFlaggedUntagged

Dates that make sense

Defer and due dates, flags, priorities, task colours and recurring tasks.

Projects and subtasks

Nested as deep as you need, reordered by dragging.

Markdown notes

Full notes and comments on every task.

Real-time sync and web push

Changes show up in your other tabs right away, and reminders reach your phone or desktop (self-hosted version).

In sync

Comfortable on a phone

Bulk actions, swipe gestures and a bottom sheet on small screens.

Your data, any time

Back up and restore with JSON, with a setup wizard on first launch.

Dark modeKeyboard shortcutsTime zonesFlagged and Completed

One codebase, three forms.

  • Web app

    Host it on your own server. Laravel serves the React app over an API on the same domain.

  • PWA

    Install it from the browser to your phone or desktop home screen, with web push reminders.

  • macOS app

    One .app that brings its own PHP and SQLite. No server needed at all.

Pick how to start.

Web · Windows, Linux, phones

On the web, your own server

git clone https://github.com/DyskLab/dyskfocus.git
cd dyskfocus && cp .env.example .env
composer install && npm install
npm run build && php artisan key:generate

Open the app and a wizard creates the database and your account, and can import a backup. After that, DyskFocus opens in a browser on any device and installs as a PWA.

View on GitHub ↗ (new tab)

Easiest

On a Mac, no server

Download the DMG from the latest release and drag DyskFocus into Applications. The app isn't notarized yet, so allow it in Privacy & Security › Open Anyway, or run:

xattr -dr com.apple.quarantine /Applications/DyskFocus.app
Download DMG (new tab)

Laravel · React 19 · TypeScript · TanStack Query · Zustand · dnd-kit · Tailwind · SQLite · Electron · MIT License

Privacy

Your tasks live on your own server, or on your Mac.

  • Your own database

    The self-hosted version keeps everything in a SQLite file on your server (database/database.sqlite). The Mac app keeps it in ~/Library/Application Support/DyskFocus.

  • No DyskLab server

    Your account is created on your own instance, not on a service of ours. DyskLab never sees your tasks, account or password.

  • No analytics or telemetry

    No tracking scripts, and no third-party fonts or CDNs. The app only loads files from your own domain.

  • The Mac app stays local

    Its bundled PHP server only listens on 127.0.0.1, and there is no automatic update check. It works without internet.

  • Web push goes through the browser vendor

    If you turn on push reminders, your server sends an encrypted notification (with the task title) through your browser vendor's push service, such as Google, Mozilla or Apple. Optional, and off in the Mac app.

  • Server security and backups are on you

    Use HTTPS and keep your server patched. A JSON backup holds all your data unencrypted, so store it with care.

You can check all of this in the source code.

FAQ

Does DyskFocus run on Windows or Linux?

Yes, on the web. Host the self-hosted version on any server, then open it in a browser on Windows, Linux, macOS or your phone, and install it as a PWA if you like. The native app is macOS only.

Can I use it on my phone?

Yes. Open your instance in your phone's browser and add it to the home screen as a PWA. It has swipe gestures, bulk actions and a bottom sheet, and web push reminders can reach your phone.

Is there a build for Intel Macs?

The official release is Apple Silicon only. On an Intel Mac you can build it yourself with an x86_64 static PHP and npm run dist:x64; see desktop.md. Or use the web version.

macOS says the app can't be opened. Why?

The app isn't notarized by Apple yet, so macOS blocks the first launch. Open System Settings › Privacy & Security and choose Open Anyway, or run xattr -dr com.apple.quarantine /Applications/DyskFocus.app.

What do I need to self-host it?

PHP 8.4 (with openssl, mbstring, bcmath, curl), Composer 2, Node 20+ with npm, and SQLite. Push reminders also need VAPID keys and a cron entry for php artisan schedule:run.

Is it free?

Yes. DyskFocus is open source under the MIT license, with no ads, no subscription and no paid tier.

How do I back up or move my data?

Go to Settings › Data › Export backup to download everything as JSON. Restore it with Import backup or in the first-run wizard. Importing replaces all current data.

If you used Stackr on your Mac, your data is copied over the first time you open DyskFocus, and the old copy stays where it was.

Can several people use one instance?

Yes, on the self-hosted version. Sign-up closes after the first account is created. Set ALLOW_REGISTRATION=true to let other people register on the same instance, each with their own data.

Found a bug or have an idea?

Open an issue on GitHub. Include the version, how you use it (web or Mac), and the steps to reproduce the problem.

DyskFocus is free and open source.

No ads, no accounts, no paid tier. If it helps you, these two things help a lot:

Helps other people find the project

Pays for the time behind the next features and fixes

Buy me a coffee (new tab)