
TaskTree
Tasks and projects for small teams, with AI that splits the work fairly. My own product: founder and CEO, preparing for public release.
Problem
Small teams have no tool their own size. Jira is too heavy, and a task list does not know that someone is travelling today, is on sick leave, or went on holiday, so work lands on people who will not do it. Ours was split across chat, a spreadsheet and a few other tools at once, and handing work out took hours a week on its own.
See the solution
Solution
One app on phone and desktop, both working off the same realtime state. The calendar knows each person's blockers, and the AI names an assignee together with reasoning you can read and argue with. Projects are built from 25 tile types, from the quote to the client report; hand it a goal and a deadline and it lays out dated tasks. Handing work out drops from hours a week to minutes, because the context behind the decision collects itself.
What it does
- Workspaces with CEO, admin and member roles; code invites, CEO handover
- Tasks: multiple assignees, statuses, deadlines, tags, comments
- AI proposes the assignee and writes down why
- The calendar knows the blockers (meetings, sick leave, holiday, travel) and routes assignments around them
- Projects built from 25 tile types: brief, tasks, client, calls, quote, payments, risks, report
- In-app file preview: PDF page by page, Markdown, HTML, JSON, images
- Realtime presence: who is online, what state their app is in, how much battery is left, what time it is where they are
- AI keys belong to the user, three providers, no fallback key
How it's built
- 01Client: React Native 0.81 on Expo SDK 54, one codebase for Android, iOS and web
- 02State in eight Zustand stores, no Redux and no context-for-everything
- 03Navigation: a hand-written state machine instead of expo-router or react-navigation
- 04Data: Firestore in europe-west1, onSnapshot listeners rather than polling
- 05Server logic in 21 Cloud Functions v2 on Node 22, the same TypeScript as the client: one language on both sides
- 06Sign-in through Firebase Auth, push notifications through Firebase Cloud Messaging
- 07Desktop: the same app in Electron 43, updating itself through electron-updater
- 08Animation and gestures in Reanimated 4, computed on the UI thread: busy JavaScript never stalls a scroll
- 09AI keys in expo-secure-store; the model and key are set per team, the team key encrypted AES-256-GCM inside a function
Phone and desktop
On the phone
The same dashboard on a phone: the greeting, the counters and the team's latest activity
Stack
- React Native 0.81
- Expo SDK 54
- TypeScript
- Zustand
- Firebase (Auth, Firestore, Functions)
- Electron
- Reanimated 4
Story
Navigation is a hand-written state machine: no expo-router, no react-navigation. That was deliberate: the app has modes that overlap, and the ready-made routers imposed a tree those modes do not have. AI keys belong to the user and there is no shared fallback key: no key means no AI, not a quiet bill for the author.
Want to use it?
The product is not out publicly yet. Leave your contact and I will write when it launches.
- What is missing from the tools you use today?
- What should happen on its own, so you stop thinking about it?
- Where does most of your week go?
Got an opinion? Put it in the message, I read every one.