Typemill is a lightweight, self-hosted content management system designed for technical writers, documentation teams, and small businesses that need to maintain structured, long-form content like user manuals and knowledge bases. It eliminates database complexity by storing all content as Markdown and YAML files, making it ideal for teams seeking a simple, version-control-friendly publishing workflow.
Built with Slim PHP, Vue.js, and Tailwind CSS, Typemill supports deployment via ZIP, GitHub/Composer, or Docker. It includes a visual block editor, media library, multi-project support, and plugins for PDF and ePUB export, enabling single-source publishing across web and print formats.
What You Get
- Flat-file Architecture - Stores all content, settings, and media as Markdown and YAML files, eliminating the need for a database and enabling easy version control with Git.
- Visual Block Editor - A WYSIWYG editor with block-based content creation that supports rich text, embeds, and media insertion, alongside a toggle for raw Markdown editing.
- eBook Studio - Built-in PDF and ePUB generation engine using Twig templates and Paged-Media CSS to convert documentation into professional, branded eBooks.
- Multi-Project Support - Manage multiple documentation sets (e.g., product manuals, internal handbooks) within a single Typemill instance with isolated content and settings.
- Media Library - Centralized upload and management of images, videos, audio, and files with drag-and-drop support and automatic optimization.
- REST API Access - Expose content via a configurable REST API to integrate documentation into external apps or automate publishing workflows.
- Multi-Language Support - Use project-based structures to create and manage multilingual websites, ideal for global documentation teams.
- AI Assistant Integration - Integrated Kixote interface for AI-powered content suggestions, translation, and editing assistance.
- Plugin and Theme System - Extend functionality with PHP/Vue.js plugins or customize appearance with Twig-based themes and developer kits.
- Access Control & User Roles - Define granular permissions for editors, contributors, and viewers to secure sensitive documentation content.
Common Use Cases
- Building user manuals for SaaS products - A product team uses Typemill to write, update, and publish interactive user guides with embedded videos and screenshots, then exports them as PDFs for customer download.
- Maintaining internal company handbooks - HR departments use Typemill’s multi-project system to manage onboarding guides, policies, and compliance documents with role-based access control.
- Creating technical documentation for open-source tools - Developers publish API docs and tutorials using Typemill’s Markdown editor and export them as ePUB for offline reading on tablets.
- Running a multilingual knowledge base - A global support team maintains English, German, and French versions of help articles using Typemill’s project-based language structure and AI translation tools.
Under The Hood
Architecture
- PHP application built on Slim framework with dependency injection via PHP-DI, enforcing clear separation between HTTP routing, middleware, and business logic through PSR-4 autoloading
- Plugin system with dynamic namespace registration that isolates core functionality while enabling extensibility through a clean plugin-host model
- Event-driven communication using Symfony’s EventDispatcher to decouple content processing and theme rendering without direct dependencies
- Flat-file CMS design leveraging YAML for configuration and templating, eliminating database overhead while preserving flexibility
- Frontend logic powered by Vue.js with server-side integration, maintaining a clean boundary between PHP backend and reactive UI
Tech Stack
- PHP 8.1+ backend using Slim 4, PHP-DI, and Twig for templating and dependency management
- Flat-file architecture with YAML-based content and Parsedown for Markdown processing
- Vue.js frontend bundled directly into the server application, enabling rich admin interfaces without a separate SPA
- Apache server hosted in Docker with essential PHP extensions and mod_rewrite for clean URLs
- Composer-managed ecosystem including Slim plugins, Valitron, Laminas ACL, and Symfony components
- Cypress for end-to-end testing and Tailwind CSS for utility-first styling in the admin interface
Code Quality
- Limited test coverage relying on manual validation rather than automated assertions
- Inconsistent code organization with components and utilities mixed in flat directories, lacking clear module boundaries
- Superficial error handling using generic try-catch blocks without custom exceptions or recovery strategies
- Inconsistent naming conventions across files, templates, and utilities, reducing predictability and maintainability
- Absence of type safety mechanisms, leading to runtime vulnerabilities in data flow
- Linting is either absent or inconsistently applied, allowing stylistic and structural inconsistencies to persist
What Makes It Unique
- Native visual content editor with real-time preview and block-based composition, eliminating external WYSIWYG dependencies while retaining full rendering control
- Unified API and web interface architecture that synchronizes backend operations with frontend rendering through a single codebase
- Dynamic plugin and theme system that extends routing, middleware, and CSP policies without modifying core code
- Built-in multilingual routing and translation management operating at the HTTP layer for seamless content delivery
- Zero-dependency content serialization engine that converts Markdown and custom blocks into structured JSON, enabling true headless capabilities
- Embedded license validation and plugin activation hooks that create a self-contained commercial CMS ecosystem without SaaS dependencies