Overview
Discover what makes Antragsgrün powerful
`Antragsgrün` (also known as *motion.tools*) is a PHP‑based web application designed for the full lifecycle of motion management in non‑profit and political organizations. From a developer standpoint, it functions as a **content‑management system (CMS)** with domain‑specific extensions: motion creation, amendment tracking, voting workflows, speaking lists, and multi‑format export. The core idea is to keep the data model simple (motions, amendments, users) while exposing a robust API layer that can be consumed by custom front‑ends or external services.
Language & Runtime
Framework
Database
Front‑End
Overview
Antragsgrün (also known as motion.tools) is a PHP‑based web application designed for the full lifecycle of motion management in non‑profit and political organizations. From a developer standpoint, it functions as a content‑management system (CMS) with domain‑specific extensions: motion creation, amendment tracking, voting workflows, speaking lists, and multi‑format export. The core idea is to keep the data model simple (motions, amendments, users) while exposing a robust API layer that can be consumed by custom front‑ends or external services.
Architecture
- Language & Runtime: PHP ≥ 8.1 (recommended 8.3) running under FastCGI (php‑fpm).
- Framework: Custom MVC architecture with a lightweight router; no heavy frameworks like Laravel or Symfony, which keeps the footprint small and the source easily comprehensible.
- Database: MySQL/MariaDB (the only required DBMS). The schema is deliberately normalized, with separate tables for
motions,amendments,users,votes, and audit logs. - Front‑End: Vanilla JS with a small set of helper libraries (jQuery, date‑picker). All UI components are rendered server‑side using PHP templates; client‑side interactivity is limited to form validation and AJAX calls for voting or amendment submissions.
- Container Support: A Docker image (
devops-ansible/docker-antragsgruen) is maintained by the community, providing a reproducible environment that bundles PHP‑fpm, Nginx, and MariaDB. This makes CI/CD pipelines straightforward.
Core Capabilities
- REST‑like API: Endpoints for creating motions, posting amendments, and retrieving voting results. Although not fully documented as a Swagger spec, the source code exposes clear patterns (e.g.,
/api/motions/{id}) that developers can mimic. - Webhooks: Optional POST hooks for voting events and amendment approvals, enabling integration with external notification systems or data warehouses.
- Export: PDF and CSV generators for motions, amendments, and voting tallies; the PDF engine uses TCPDF (bundled with PHP).
- Plugin Hooks: The core contains an event dispatcher (
EventDispatcher) that allows developers to attach listeners for custom logic (e.g., sending Slack messages when a new amendment is approved). - Internationalization: All strings are stored in
messages.{lang}.phpfiles, making it trivial to add new locales or override translations.
Deployment & Infrastructure
- Self‑Hosting: Requires a LAMP/LEMP stack with PHP, MySQL/MariaDB, and either Apache or Nginx. The provided sample configs (
nginx.sample.conf,apache.sample.conf) illustrate typical reverse‑proxy setups. - Scalability: Stateless PHP processes allow horizontal scaling behind a load balancer. The database can be read‑replicated; however, write contention is minimal due to the low volume of motion edits typical in small to medium organizations.
- Containerization: The official Docker image exposes environment variables for database credentials and base URL, making it ready for Kubernetes or Docker‑Compose deployments.
- Backups: Standard MySQL dumps are sufficient; the application also ships a CLI script (
cli/backup.php) for automated snapshots.
Integration & Extensibility
- API: The internal API can be accessed via authenticated sessions (session cookie or token). Developers can build custom front‑ends in React, Vue, or even mobile apps.
- Webhooks: Enable real‑time notifications; the payload contains JSON with motion IDs, amendment statuses, and user data.
- Plugins: By extending the
PluginInterface, developers can introduce new modules (e.g., a calendar view for speaking lists or an external authentication provider). - Customization: The templating system allows overriding layouts and CSS without touching core code. Themes can be swapped by changing the
themeconfiguration.
Developer Experience
- Configuration: A single JSON file (
config/config.json) holds all runtime settings; the web‑based installer populates it automatically. - Documentation: The README is comprehensive for end users, while the source code contains inline PHPDoc comments. Community support is active on GitHub Discussions and a dedicated Discord channel.
- Testing: PHPUnit tests cover the data layer and API endpoints; continuous integration is set up on GitHub Actions.
- Licensing: MIT‑licensed, allowing unrestricted commercial use and internal modifications.
Use Cases
| Scenario | Why a developer would choose Antragsgrün |
|---|---|
| NGO conference | Rapid deployment of a motion workflow with minimal configuration. |
| Political party congress | Built‑in voting, speaking lists, and amendment tracking; export to PDF for official minutes. |
| University student union | Custom plugin to integrate with existing authentication (LDAP) and a mobile‑friendly front‑end. |
| Open‑source governance | API hooks allow integration with GitHub PRs or Discord bots for real‑time updates. |
Advantages
- Lightweight: No heavyweight framework overhead, leading to fast page loads and low memory consumption.
- Domain‑specific: Features like amendment nesting, voting mechanisms, and speaking lists are baked in, saving developers from building them from scratch.
- Open‑source & Flexible: MIT license plus a modular architecture means you can replace or extend almost any component
Open SourceReady to get started?
Join the community and start self-hosting Antragsgrün 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
Redash
Collaborative SQL dashboards for all data sources
UpSnap
Instant Wake‑On‑LAN from your browser
Socioboard
Social media management & content marketing platform
Sylius
Developer‑friendly eCommerce framework for custom B2C/B2B solutions
Slash
Organize and share links with custom shortcuts
Mailcow
Self‑hosted email suite with Docker, secure and easy to manage
