Overview
Discover what makes LimeSurvey powerful
LimeSurvey is a mature, open‑source survey engine that delivers end‑to‑end data collection, analysis, and reporting. From a technical standpoint it exposes a rich REST/JSON‑RPC API and a legacy XML‑RPC interface, enabling developers to programmatically create surveys, push responses, or harvest statistics. The platform is built on a classic LAMP/LEMP stack with PHP 7.4+ as the application layer, and supports several relational databases (MySQL ≥ 8.0, PostgreSQL ≥ 12, MariaDB ≥ 10.3, or MSSQL ≥ 2016). Its modular architecture allows for granular permission control, multi‑tenant survey hosting, and extensive customization through themes and JavaScript hooks.
Core Framework
Database Layer
Web Server
Caching
Overview
LimeSurvey is a mature, open‑source survey engine that delivers end‑to‑end data collection, analysis, and reporting. From a technical standpoint it exposes a rich REST/JSON‑RPC API and a legacy XML‑RPC interface, enabling developers to programmatically create surveys, push responses, or harvest statistics. The platform is built on a classic LAMP/LEMP stack with PHP 7.4+ as the application layer, and supports several relational databases (MySQL ≥ 8.0, PostgreSQL ≥ 12, MariaDB ≥ 10.3, or MSSQL ≥ 2016). Its modular architecture allows for granular permission control, multi‑tenant survey hosting, and extensive customization through themes and JavaScript hooks.
Architecture
- Core Framework: PHP 7.4+ with Composer‑managed dependencies, following MVC conventions. The codebase is split into core, plugins, and themes directories, each with its own autoloading rules.
- Database Layer: Doctrine‑style PDO abstraction; schema migrations are managed by a custom migration tool that can be run via CLI or the web UI.
- Web Server: Apache 2.4+ or Nginx 1.x with PHP‑FPM; URL rewriting is required for clean routes (
/admin,/survey, etc.). - Caching: Opcache and optional Redis/Memcached for session and query caching.
- Front‑End: Vanilla JS with optional jQuery for legacy plugins; CSS is output via SCSS, allowing theme overrides.
Core Capabilities
- Survey Design API: Create/modify surveys, question groups, and questions through REST endpoints (
/api/v1/surveys). Supports conditional logic, validation rules, and quota management. - Response API: Submit responses programmatically (
/api/v1/responses) or retrieve them for downstream analytics. - Export Engines: Built‑in CSV, XLSX, STATA XML, and JSON exporters; developers can hook into the export pipeline to add custom formats.
- Authentication & Authorization: Pluggable auth backends (LDAP, CAS, SAML, OAuth2) and fine‑grained ACLs for survey owners vs. respondents.
- Webhooks: Trigger HTTP callbacks on events like
survey_created,response_submitted. Useful for CI/CD pipelines or data pipelines. - Audit Log: Plugin that records all admin actions, exportable via API for compliance.
Deployment & Infrastructure
LimeSurvey is fully self‑hosted and can run on any LAMP/LEMP stack. For production, the recommended setup includes:
- Containerization: Official Docker images are available on Docker Hub (
limesurvey/limesurvey). Compose files expose volumes fordata,plugins, andthemes. - Scaling: Horizontal scaling is achieved by sharing the same database instance; session data can be persisted in Redis to keep state across pods.
- Backup: Database dumps plus
publicdirectory snapshots; the API offers/admin/backupendpoints. - High Availability: Use a load balancer in front of multiple web nodes; ensure that the database is configured for read‑replicas to handle heavy analytics queries.
Integration & Extensibility
- Plugin System: Developers can write PHP plugins that hook into lifecycle events (
onSurveyCreate,onResponseSubmit). The plugin API is documented in the manual and includes event names, payloads, and return expectations. - REST API: Fully documented with OpenAPI spec; supports OAuth2 for secure access. Rate limits can be configured in
config.php. - Webhooks & Callbacks: Custom URLs can receive JSON payloads; this is ideal for synchronizing LimeSurvey data with external CRMs or BI tools.
- Theme & Question Types: Themes can override CSS/JS and template files; new question types are added via plugins that implement the
Questioninterface. - Third‑Party Integrations: Built‑in connectors for Google Analytics, SAML, LDAP, and SURFconext; developers can extend these via the plugin API.
Developer Experience
- Documentation: The official manual provides a comprehensive developer guide, API reference, and plugin development tutorials. Inline code comments are plentiful.
- Community: Active forums, a Discord channel, and an issue tracker on the bug‑reporting site foster rapid support. The community contributes plugins that cover most niche use cases.
- Testing: PHPUnit tests are included; CI pipelines run on GitHub Actions. Developers can fork the repo and run
composer installto get a testable environment. - Configuration: All runtime settings live in
config.php, which can be templated for environment variables. This makes it straightforward to deploy across dev, staging, and prod.
Use Cases
- Enterprise Feedback Loops: Companies can host internal surveys for employee satisfaction, automatically ingest responses into their HR analytics stack via webhooks.
- Academic Research: Universities can deploy multilingual, quota‑controlled surveys and export data directly to SPSS or Stata for statistical analysis.
- Event Management: Event organizers can generate post‑event feedback surveys, embed them on event pages, and use the REST API to pull results into dashboards.
- Compliance Audits: Governments or NGOs can host GDPR‑compliant surveys, leveraging the audit log and data anonymization features to satisfy regulatory audits.
Advantages
- **Open
Open SourceReady to get started?
Join the community and start self-hosting LimeSurvey 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
Rygel
DLNA/UPnP media server and renderer for home networks
Typemill
Hybrid CMS for user manuals, docs, and eBooks
CloudBeaver
Web‑based database manager for teams
ngIRCd
Lightweight, portable IRC server for small networks
Zulip
Topic‑based team chat for live and async collaboration
2FAuth
Self‑hosted 2FA manager for desktop and mobile
