Overview
Discover what makes myTinyTodo powerful
myTinyTodo is a lightweight, self‑hosted task management engine written in PHP and jQuery. It exposes a REST‑like API for CRUD operations on tasks, lists, tags, and users while rendering a responsive UI that works across mobile browsers. The core of the application is intentionally minimal: a single PHP entry point (`index.php`) dispatches requests to a set of controller classes, each responsible for one resource type. All data is persisted in a relational database via PDO, with support for SQLite, MySQL/MariaDB and PostgreSQL out of the box. The application’s architecture follows a classic MVC pattern, but without an opinionated framework; this gives developers the flexibility to integrate it into existing PHP projects or to use it as a drop‑in microservice.
Language & Runtime
Front‑end
Database
Licensing
Overview
myTinyTodo is a lightweight, self‑hosted task management engine written in PHP and jQuery. It exposes a REST‑like API for CRUD operations on tasks, lists, tags, and users while rendering a responsive UI that works across mobile browsers. The core of the application is intentionally minimal: a single PHP entry point (index.php) dispatches requests to a set of controller classes, each responsible for one resource type. All data is persisted in a relational database via PDO, with support for SQLite, MySQL/MariaDB and PostgreSQL out of the box. The application’s architecture follows a classic MVC pattern, but without an opinionated framework; this gives developers the flexibility to integrate it into existing PHP projects or to use it as a drop‑in microservice.
Technical Stack
- Language & Runtime: PHP 7.2+ (requires
mbstring,pdo_*extensions, andintl). - Front‑end: jQuery 3.x for DOM manipulation, AJAX and UI widgets (sortable lists, date pickers).
- Database: PDO abstraction layer; supports SQLite, MySQL 5.7+/MariaDB 10.2+, PostgreSQL 10+.
- Licensing: GNU GPL v3, allowing commercial use under copyleft terms.
The application ships with a schema generator (schema.sql) that can be applied to any of the supported databases. Since it uses raw SQL and PDO, developers can easily extend queries or swap in a different database engine with minimal changes.
Core Capabilities
- REST‑like API: Endpoints such as
/api/tasks,/api/listsaccept JSON payloads and return JSON responses. - Task Metadata: Each task carries
title,notes,tags,due_date,priority(int range –1 to +2) and asort_order. - Drag‑and‑Drop Sorting: Uses jQuery UI’s sortable widget; the new order is persisted via an AJAX call to
/api/tasks/sort. - Smart Syntax: Inline creation syntax (
±priority Task #Tag @duedate) is parsed on the server, simplifying bulk task imports. - Security: Password protection via simple HTTP Basic Auth or a built‑in user table; sessions are stored server‑side.
- Export & Print: A print‑friendly CSS file and a
/exportendpoint generate CSV or JSON dumps.
Deployment & Infrastructure
myTinyTodo is designed for self‑hosting on LAMP/LEMP stacks. It requires only a web server (Apache/Nginx) with PHP 7.2+ and the aforementioned extensions. The application is stateless beyond its database, making it trivial to run behind a reverse proxy or in a Docker container. Official Dockerfiles are not provided, but the lightweight codebase (≈3 KB gzipped) can be containerized with a minimal php:7.4-apache image and a volume mount for the database file or socket.
Scalability is achieved through horizontal replication of the database; since all state lives in SQL, multiple instances can share a single PostgreSQL or MySQL cluster. The front‑end is static and served via the same PHP process, so adding read replicas only requires adjusting the PDO DSN.
Integration & Extensibility
The application exposes a small but well‑documented API that can be consumed by external services. Webhooks are not built in, but developers can hook into the task_created, task_updated events by overriding the controller methods or adding triggers in the database. The UI is built with jQuery, so custom widgets can be injected via additional scripts without touching the core. For advanced use cases, developers can extend the Task model to add custom fields or integrate with external authentication providers (OAuth, LDAP) by modifying the session handling layer.
Developer Experience
Documentation is concise and focused on API usage, schema migration, and configuration. The source code follows PSR‑0 naming conventions, making it straightforward to locate classes. Community support is modest but active; issues are triaged on GitHub, and the project encourages pull requests. Because it is GPL‑licensed, any modifications must remain open source, which aligns with many open‑source projects that value transparency.
Use Cases
- Team Task Tracker – Deploy behind an existing intranet, use the API to sync tasks with a custom front‑end or mobile app.
- Embedded Todo Widget – Embed the UI into an existing PHP application as a widget, leveraging the same database for persistence.
- CI/CD Task Automation – Use the API to programmatically create tasks from CI job logs, with due dates set to build schedules.
- Personal Productivity Server – Run on a Raspberry Pi or NAS, with SQLite for lightweight local storage and the web UI accessible via mobile browsers.
Advantages
- Simplicity – Minimal dependencies mean quick setup and low maintenance overhead.
- Flexibility – Raw SQL via PDO allows developers to integrate or replace the data layer without refactoring.
- Performance – Lightweight PHP code and jQuery front‑end keep memory usage low; suitable for resource constrained hosts.
- Licensing – GPL ensures that any enhancements remain open, fostering community contributions and transparency.
- Extensibility – The API and smart syntax provide a developer‑friendly interface for automation and bulk imports.
Overall, myTinyTodo offers a
Open SourceReady to get started?
Join the community and start self-hosting myTinyTodo today
Related Apps in development-tools
Hoppscotch
Fast, lightweight API development tool
code-server
Self-hosted development-tools
AppFlowy
AI-powered workspace for notes, projects, and wikis
Appwrite
All-in-one backend platform for modern apps
PocketBase
Lightweight Go backend in a single file
Gitea
Fast, lightweight self-hosted Git platform
Weekly Views
Repository Health
Information
Explore More Apps
PdfDing
Self‑hosted PDF manager, viewer and editor
StartOS
Empower your own private server with an easy‑to‑use Linux distro for everyone
Convos
Browser‑based IRC client with persistent bouncer and video chat

OneDev
All-in-one DevOps platform for code, CI/CD, and task management
Gaseous Server
Self-hosted other
Multi Theft Auto: San Andreas
Open‑source multiplayer engine for GTA: San Andreas
