What is Kolibri?
Kolibri is an open-source, offline-first learning platform designed to bring high-quality educational content to communities with limited or no internet connectivity. Developed by Learning Equality, Kolibri enables teachers, coaches, and learners to access educational resources in environments where traditional online platforms are not viable.Kolibri is MIT-licensed and freely available for use. The project welcomes contributions from developers worldwide.
Key Features
Offline-First Architecture
Kolibri is designed to work entirely offline, making education accessible in low-resource environments:- No internet required for day-to-day use
- Content can be imported via USB drives, local networks, or one-time internet downloads
- Peer-to-peer synchronization allows devices to share content and data without internet
Flexible Deployment
Kolibri runs on a wide variety of platforms and devices:- Desktop platforms: Windows, macOS, Linux
- Server deployments: Ubuntu/Debian servers, Raspberry Pi
- Mobile platforms: Android (via Python-for-Android)
- Containerized environments: Docker support
Plugin Architecture
Kolibri uses a modular plugin system that allows for extensibility and customization:- Frontend interfaces (Vue.js components)
- Backend APIs (Django REST Framework)
- Custom content renderers
- Navigation elements and hooks
Multi-User Support
Kolibri includes comprehensive user and facility management:- Role-based access control: Learners, coaches, facility admins, and super admins
- Multiple facilities on a single device
- Progress tracking and reporting for learners
- Class and group management for organizing users
Content Ecosystem
Kolibri can host diverse educational content:- Khan Academy exercises and videos
- PDF documents and eBooks (EPUB)
- Interactive HTML5 applications
- Videos with subtitles and multiple languages
- Quizzes and assessments (Perseus, QTI formats)
- Slideshows and presentations
Internationalization
Kolibri supports over 35 languages and is designed for global use:- RTL (Right-to-Left) language support
- Custom fonts for non-Latin scripts
- Translation infrastructure using Crowdin
- Locale-aware date, time, and number formatting
Architecture Overview
Backend: Python/Django
The server is built with Django and includes:- Database support: SQLite (default) and PostgreSQL
- REST API: Django REST Framework with custom
ValuesViewsetpatterns - Authentication: Django-based with role-based permissions
- Task queue: Background job processing for imports and syncs
- Morango: Custom synchronization framework for offline data sync
Frontend: Vue.js
The client-side interface uses modern JavaScript:- Vue 2.7 Composition API: Modern reactive patterns with
setup() - Design system: Reusable components (
KButton,KModal,KTextbox, etc.) - Theme tokens: Consistent styling with
$themeTokensand$themePalette - Responsive design: Mobile-first with responsive-window/responsive-element systems
- Accessibility: ARIA attributes and keyboard navigation
Build System
Kolibri uses a sophisticated build pipeline:- ES6 → ES5 transpilation (Bublé)
- Vue Single File Components
- SCSS → CSS with auto-prefixing
- Code minification and compression
- Bundle splitting and lazy loading
- Asset optimization (fonts, images)
Who is Kolibri For?
End Users
- Learners: Students in schools, community centers, or home environments without reliable internet
- Teachers/Coaches: Educators managing classes and tracking student progress
- Administrators: IT staff deploying and managing Kolibri installations
Developers
This documentation is for developers who want to contribute to Kolibri:- Frontend developers: Building UI components, improving UX, adding features
- Backend developers: Working on APIs, data models, synchronization, performance
- Plugin developers: Creating custom plugins for specialized use cases
- DevOps engineers: Improving build systems, CI/CD, deployment tools
- QA engineers: Writing tests, improving test coverage, manual testing
Technology Requirements
To develop Kolibri, you’ll need:- Python: 3.9 or higher (but below 3.14)
- Node.js: Version 20.19.x (required)
- pnpm: Package manager for JavaScript dependencies
- Git: Version control with Git LFS extension
- Operating System: Linux or macOS recommended (Windows via WSL)
Project Philosophy
Offline-First
Every feature must work without internet. Network connectivity is a bonus, not a requirement.Low-Resource Environments
Kolibri must run on modest hardware:- Single-board computers (Raspberry Pi)
- Older desktop computers
- Shared servers with many concurrent users
Accessibility and Inclusion
Education should be available to everyone:- Support for assistive technologies
- Multi-language support including RTL languages
- Simple, intuitive interfaces for users with varying technical skills
Open Source
Kolibri is built in the open:- MIT license allows free use and modification
- Community-driven development
- Transparent decision-making and roadmap
Getting Help
As you work with Kolibri, you can:- Ask questions in the community forums
- Report bugs via GitHub issues
- Join the conversation in developer chat channels
- Read the docs: This developer documentation plus the User Guide
The Kolibri project was founded by volunteers dedicated to making educational materials more accessible to those in need. Every contribution, large or small, makes a difference.
Next Steps
Quick Start
Get Kolibri running locally in minutes
Installation Guide
Detailed setup for all platforms
Architecture
Deep dive into Kolibri’s technical design
Contributing
Learn how to contribute code