# Project pack: Tududi @ fd80157 Facts about **Tududi** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > Tududi is a self-hosted task manager for one person or a small household. You sort life into areas, projects and tasks, keep notes alongside them, and get a daily view of what matters. It works with recurring tasks and Telegram and runs as a small Docker container. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://docs.tududi.com - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/chrisvel/tududi - Pinned commit: `fd80157b851f7b046cf0b0f9f56be627f97b04b5`. Use exactly this version. - Zip the person can download in a browser: https://github.com/chrisvel/tududi/archive/fd80157b851f7b046cf0b0f9f56be627f97b04b5.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://docs.tududi.com - Licence: **MIT**. Free to use, change and share, even commercially. Keep the original copyright notice. ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/chrisvel/tududi bespoke-tududi cd bespoke-tududi git checkout --detach fd80157b851f7b046cf0b0f9f56be627f97b04b5 # Prepare development requirements and local configuration first. npm install npm run backend:dev npm run frontend:dev ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh docker run -d --name tududi -p 3002:3002 -e TUDUDI_USER_EMAIL=you@example.com -e TUDUDI_USER_PASSWORD=choose-a-strong-password -e TUDUDI_SESSION_SECRET=replace-with-a-long-random-string -v tududi_db:/app/db -v tududi_uploads:/app/uploads chrisvel/tududi:latest # then open http://localhost:3002 ``` - Tools these commands use: Docker for a trial, Node 22 for development - Develop: `npm run backend:dev # and, in another terminal: npm run frontend:dev` - Test: `npm test` - Check/lint: `npm run lint` - Stack: typescript, javascript (React, Express, Sequelize, Webpack). Difficulty for a non-developer with an AI: **easy**. A compact Node and React app with SQLite and no external services. Most changes are a component, a route and a migration. - The project's own AI instructions, in the repository: `CLAUDE.md`. Personal data: **yes**. Stored in: SQLite database and uploads in /app/db and /app/uploads (Docker volumes). Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/tududi/fd80157/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/tududi/fd80157/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/tududi/fd80157/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/tududi/fd80157/r3/SKILL.md)