Overview
Discover what makes Plainpad powerful
Plainpad is a lightweight, self‑hosted note‑taking platform that prioritizes data sovereignty and minimalism. From a developer’s standpoint, the application exposes a small yet well‑structured API surface for CRUD operations on notes while keeping user isolation and encryption at the core of its data model. The server side is written in PHP, leveraging a classic LAMP stack (Linux, Apache/Nginx, MySQL) which makes it trivial to integrate into existing hosting environments or to containerize with Docker Compose. On the client side, Plainpad is a Progressive Web App (PWA) built with vanilla JavaScript and modern CSS, enabling offline access through service workers while maintaining a clean single‑page interface.
Backend
Database
Frontend
Containerization
Overview
Plainpad is a lightweight, self‑hosted note‑taking platform that prioritizes data sovereignty and minimalism. From a developer’s standpoint, the application exposes a small yet well‑structured API surface for CRUD operations on notes while keeping user isolation and encryption at the core of its data model. The server side is written in PHP, leveraging a classic LAMP stack (Linux, Apache/Nginx, MySQL) which makes it trivial to integrate into existing hosting environments or to containerize with Docker Compose. On the client side, Plainpad is a Progressive Web App (PWA) built with vanilla JavaScript and modern CSS, enabling offline access through service workers while maintaining a clean single‑page interface.
Technical Stack
- Backend: PHP 7+/8, PDO for database access, JSON‑based REST endpoints.
- Database: MySQL (or MariaDB) with a single
notestable that stores encrypted payloads and metadata. - Frontend: Vanilla JS with a minimal build pipeline (no heavy frameworks), HTML5, CSS3, and the PWA manifest.
- Containerization: A ready‑to‑use
docker-compose.ymlorchestrates the PHP/FPM container, MySQL, and optional Nginx reverse proxy. This configuration can be extended with Docker‑Compose overrides for CI/CD pipelines.
Core Capabilities
- User Management: Authentication is handled via PHP sessions; each note belongs to a single owner, ensuring privacy across multiple users.
- Encryption: Notes are encrypted client‑side using Web Crypto API before transmission, then stored as binary blobs in MySQL. The server never sees plaintext data.
- API Endpoints:
/api/notessupportsGET,POST,PUT, andDELETE. Pagination, search by title, and tag filtering are available through query parameters. - PWA Features: Service workers cache assets, enabling offline editing; changes are queued and synchronized once connectivity resumes.
Deployment & Infrastructure
Plainpad’s architecture is intentionally lightweight, allowing it to run on a single virtual machine or even a Raspberry Pi. The Docker Compose stack can be scaled horizontally by adding replicas of the PHP container behind an Nginx load balancer. For high availability, MySQL replication or a managed database service can be used; the application’s statelessness means any instance can serve requests. The docker-compose.yml includes volume mounts for persistent storage, making backups straightforward with standard MySQL dump utilities.
Integration & Extensibility
While the core application is focused on simplicity, developers can extend it via:
- Custom Middleware: PHP classes can hook into the request lifecycle to add authentication backends (OAuth, LDAP).
- Webhooks: A simple
POSTendpoint can be configured to trigger external services when a note is created or updated. - Plugin System: By exposing a
plugins/directory, third‑party developers can drop PHP scripts that register new API routes or UI components.
Developer Experience
The codebase is intentionally small (~2,500 LOC), with clear separation between public assets and server logic. Documentation resides in the README and inline comments, making onboarding fast for PHP developers familiar with MVC patterns. The project is licensed under GPL v3.0, ensuring that any modifications remain open source. Community support is modest but active; issues and pull requests are addressed promptly by the maintainer.
Use Cases
- Internal Knowledge Base: Small teams can host Plainpad on a shared server to maintain private documentation without relying on third‑party services.
- Secure Personal Journal: Individuals who need encrypted, offline‑first note storage can deploy Plainpad on a personal NAS.
- Educational Projects: Students learning web development can study the PHP‑MySQL interaction and PWA implementation in a real project.
Advantages
Plainpad offers a compelling mix of simplicity, security, and openness. Its minimal dependencies reduce attack surface, while client‑side encryption guarantees that only owners can read notes even if the database is compromised. Compared to heavyweight CMS or SaaS note apps, Plainpad’s footprint is tiny—making it ideal for low‑resource environments and giving developers full control over data residency.
Open SourceReady to get started?
Join the community and start self-hosting Plainpad today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
OpenEMR
Free, open‑source medical records and practice management
RSSMonster
Web‑based RSS aggregator with Google Reader style
portkey
Your personal web portal for links and custom pages
REI3
Open low‑code platform for self‑hosted apps
WebThings Gateway
Self‑hosted smart home hub for privacy and control
Liwan
Privacy‑First Web Analytics in a Single Binary
