Skip to content
TsakmakTsakmak

Product

Tasks

A private kanban for work and life, self-hosted in Greece instead of a SaaS cloud.

Live
Status
Live
Platforms
Web, Android
Hosting
Self-hosted, Greece (EU)

The problem

I needed my everyday tasks and useful notes within reach from anywhere, on the laptop and on the phone. Some of them are sensitive: customer details, private notes, things that should not sit with a task app vendor. Most task tools are SaaS, so that content lives on someone else's servers, and work and personal life end up in two separate apps. I build tools for my own use first, and this one makes every working day a little easier to start.

What it does

Tasks keeps work and personal tasks in one kanban app that runs on a private server in Greece, not in a SaaS cloud. You capture a task in one typed line, organise it on a board, get reminded when it is due and start each day from a clear Today view. The web app works in English and Greek, in light or dark theme, and a native Android app shows the same lists on the phone behind a fingerprint.

How it works

  1. Sign in on the web or on the Android app. The app has a single account, so nobody else can register.

  2. Capture a task in one line, for example "Order tiles Friday 9am p1 #DEMO @errand every week". It becomes a task with a due date, priority, project, label and recurrence.

  3. Organise it: drag the card across columns, add a description, checklist, attachments and links to other tasks.

  4. Set a due date, a recurrence and a reminder. A background worker sends the reminder as a push notification.

  5. Start each day from the Dashboard or Today list, on the web or the phone, tick tasks off and keep habit streaks going.

Key features

Boards where the column is the status

Areas, projects, boards, tasks and subtasks, with Work and Personal areas from day one. Moving a card into a Done column marks it done, so status and column never disagree. Columns can have a WIP limit, and each task gets a readable ID such as DEMO-12.

Board for a demo "Website relaunch" project: Backlog, Doing and Done, with priorities and due dates
The same board in the dark theme

One-line quick add

Type a task the way you would say it, in the quick add bar or the command palette (Cmd or Ctrl+K). Dates, times, priority p1 to p4, project, labels and recurrence are read from that line, with the time zone taken into account.

One line in, a structured task out: date, priority, repeat, project and label

Dashboard and Today

The Dashboard shows Today, Overdue, Next 7 days, Blocked tasks and progress per project. Separate Today, Inbox, Search and Calendar views keep the daily list short and the rest out of the way.

Dashboard: open, due today, overdue, blocked and done this week, plus per project progress
Today: everything due or overdue in one list

Task details that go beyond a card

A side panel with autosave holds a Markdown description, a checklist, coloured labels, image and link attachments, epics and "relates" or "blocks" links. A task that is waiting on an unfinished one shows a "blocked" badge.

Task details: status, priority, dates, repeat, labels and a checklist

Recurring tasks, reminders and habits

Tasks can repeat on a fixed schedule or a set time after completion. Reminders go out as Web Push notifications, sent at most once, and they have been checked end to end on Mikael's own devices. There are no email reminders. Recurring tasks also feed a habit tracker with streaks and a 12-week heat-map.

Habits with streaks and a 12 week heat-map
  • Android app with fingerprint unlock

    A native Android app (Kotlin, Jetpack Compose) with Home, Today and Inbox, Board, Habits and quick capture, plus a task detail sheet for editing status, priority, due date, checklist and links. After the first password login, the app locks every time you leave it and opens again with your fingerprint or the device PIN. It shows a "Due now" notification for tasks that are due, checked about every 15 minutes, without Firebase. The app needs a connection; it has no offline mode. It was built for Mikael's own testing and is not published.

Security and privacy

  • Where data lives: tasks, notes and attachments are stored in PostgreSQL and Redis on Mikael's own server at his home in Greece (EU), on his own hardware and under his own management, not with a SaaS vendor.
  • Who can see it: the app is single-user. Registration closes once the account exists, and every record is tied to its owner.
  • Sign-in: the app's own login page is the only gate; there is no extra access layer in front of it. Passwords are hashed with scrypt and a per-user salt. Only a hash of each session token is stored, so a database leak cannot be replayed as a login. Repeated failed logins from one address are blocked for 15 minutes, and unknown users and wrong passwords get the same answer. Passkeys, two-factor sign-in and recovery codes are planned, not built.
  • Server setup: the database, Redis and the reminder worker sit on an internal Docker network the proxy cannot reach, with no host ports. The app container runs as a non-root user. Every response carries security headers (Content Security Policy, HSTS, frame blocking).
  • Backups: a daily database dump and attachment archive on the server, with 14 kept, and a restore script that can restore into a separate scratch database. Copies are also taken off the server by hand from time to time.
  • Your data, your exit: full JSON export and account deletion from Settings.
  • Third parties: traffic passes through Cloudflare, which handles TLS and the tunnel to the server. Reminders use the browser vendors' push services. Link previews fetch only the page you attach. There is no third-party task or storage service.
  • On the phone: the session token is kept in Android encrypted storage, protected by a key in the Android Keystore. No password is stored on the device. App backup is turned off, the app talks to the server over HTTPS only, and signing out clears the token. On a phone without any screen lock the app cannot ask for a fingerprint, so a screen lock is needed for the lock to work.

Under the hood

A Next.js web app with a REST API, a separate Node worker for reminders and a one-shot migration step, all run with Docker Compose behind a Cloudflare Tunnel and a reverse proxy. Natural-language dates are parsed with chrono-node, recurrence uses rrule, and drag and drop uses dnd-kit. The web app is also an installable PWA. The Android companion uses Retrofit, OkHttp and WorkManager for its reminders.

Tasks was a quick personal build with agentic AI, and also a trial of local LLMs. AI agents, local models and third party ones, planned and wrote much of the code, which made it fast to build and iterate. Mikael set the requirements, reviewed the result and owns the security. The security review was done by AI agents, with Mikael reviewing parts of the code himself.

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • PostgreSQL
  • Redis
  • Docker
  • Kotlin
  • Jetpack Compose

Status and roadmap

Live

Live and in daily personal use by Mikael. It is a single-user app, not open for sign-up and not offered to teams. The Android app is at version 0.1.0, in English only, and is not published.

Planned:

  • Open source release of the code (planned).
  • A self-host guide, so others can run their own copy (planned).
  • Passkeys, two-factor sign-in and recovery codes (planned).

Parked ideas, not built and not scheduled: project and recurring-task templates, time blocking and a Pomodoro timer, and offline-first sync for the phone.

Who it is for

  • Mikael, today

    work and life tasks, sensitive notes and habits in one private place on his own server, reachable from the laptop and the phone, with no SaaS vendor holding the content.

  • People who self-host, later

    once the code is open sourced and the self-host guide is out, anyone who wants a private kanban with quick add, reminders and habits can run it on their own server. Until then there are no accounts for others.

Interested in Tasks?

A self-hosted kanban and task manager with one-line quick add, reminders, habits and an Android app. Personal use today, self-host guide planned.