Overview
Discover what makes ESMira powerful
ESMira is a self‑hosted, open‑source platform designed to manage Experience Sampling Method (ESM) studies. From a developer’s standpoint, it is essentially a PHP‑based web application that exposes RESTful endpoints for study creation, participant enrolment, and data collection. The smartphone clients (Android & iOS) communicate with the server over HTTPS using JSON payloads, enabling real‑time push notifications and timed prompts. The system’s lightweight footprint allows it to run on any LAMP stack, making it ideal for research labs with limited infrastructure.
Study Lifecycle Management
Triggering & Scheduling
Multilingual UI
Data Export
Overview
ESMira is a self‑hosted, open‑source platform designed to manage Experience Sampling Method (ESM) studies. From a developer’s standpoint, it is essentially a PHP‑based web application that exposes RESTful endpoints for study creation, participant enrolment, and data collection. The smartphone clients (Android & iOS) communicate with the server over HTTPS using JSON payloads, enabling real‑time push notifications and timed prompts. The system’s lightweight footprint allows it to run on any LAMP stack, making it ideal for research labs with limited infrastructure.
Key Features
- Study Lifecycle Management – Admins can create, edit, and archive studies through a web UI that maps directly to underlying MySQL tables (
studies,participants,events). - Triggering & Scheduling – Built‑in cron integration allows precise scheduling of prompts (e.g., random, fixed intervals).
- Multilingual UI – Uses the
translate.jodli.devservice to provide runtime translations, making it straightforward for developers to add new locales. - Data Export – CSV and JSON exports are available via API endpoints (
/api/export?study_id=…), facilitating downstream statistical analysis. - Webhooks – Optional webhook support lets external services receive real‑time notifications when a participant completes an entry.
Technical Stack
| Layer | Technology |
|---|---|
| Backend | PHP 8.2 (MVC‑like structure), MySQL 8.0 |
| Frontend | Vanilla PHP templates, minimal JavaScript (no frameworks) |
| APIs | RESTful JSON endpoints with token‑based authentication (X-Auth-Token) |
| Mobile | Kotlin (Android), Swift (iOS) – native SDKs that consume the same API |
| Deployment | Docker‑ready (compose file available), but also works on any Apache/Nginx server with PHP support |
The codebase is split into two repositories: ESMira-web (server) and ESMira-apps (mobile SDKs). The separation allows developers to extend either side independently.
Deployment & Infrastructure
ESMira’s minimal requirements make it deployable on a single VPS or even a Raspberry Pi. The Docker image bundles Apache, PHP, and MySQL, but the web server can be swapped out for Nginx with php-fpm. For scalability, developers can spin up multiple replicas behind a load balancer; the MySQL database is the single source of truth, so read‑replicas can be added for heavy analytics workloads. The application also supports SSL termination at the web server, ensuring secure data transmission.
Integration & Extensibility
- Plugin System – Developers can add PHP modules that hook into lifecycle events (e.g.,
onStudyCreate,onResponseSubmit). - API Customization – Endpoints can be extended with query parameters; authentication tokens can be issued programmatically.
- Webhook Configuration – Each study can register a callback URL; the server posts JSON payloads on response submission.
- SDKs – The mobile apps expose a simple interface (
ESMiraClient) that can be wrapped in other languages if needed.
Developer Experience
The documentation is organized into a GitHub Wiki, with clear sections for server setup, API reference, and mobile SDK usage. The code follows PSR‑12 coding standards, making it readable for PHP developers. Community support is active through GitHub Discussions and a dedicated forum; issues are triaged quickly, and pull requests receive constructive feedback. Licensing is MIT, allowing unrestricted commercial use.
Use Cases
- Psychology Research – Deploy ESM studies with hundreds of participants without relying on commercial platforms.
- Health Monitoring – Collect daily symptom logs from patients in a HIPAA‑compliant environment.
- Human‑Computer Interaction – Run real‑time user experience studies with mobile prompts and in‑app analytics.
- Educational Projects – Provide students with a hands‑on experience of building and managing a full stack research tool.
Advantages
- Zero Vendor Lock‑In – Full control over data and infrastructure.
- Low Footprint & Performance – PHP + MySQL stack is lightweight; typical response times are under 200 ms.
- Extensibility – Plugin hooks and webhook support let developers tailor the system to niche workflows.
- Open Source & Free – MIT license removes any cost barriers, while the community ensures continuous improvement.
- Security‑First – All data is transmitted over HTTPS, and the application enforces strong authentication for both admins and participants.
ESMira offers a robust, developer‑friendly foundation for any project that requires precise, time‑sensitive data collection on mobile devices while keeping the entire stack under institutional control.
Open SourceReady to get started?
Join the community and start self-hosting ESMira 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
Whoogle
Private, ad‑free Google search engine
MiroTalk SFU
Free, browser‑based real‑time video conferences
Socialhome
Federated personal profile and social networking platform
Socioboard
Social media management & content marketing platform

ProjeQtOr
All-in-One Project Management for Every Method
Prosody IM
Fast, lightweight XMPP server for secure messaging