The Green AI โ AI-powered content creation for sustainable politics
Live Demo ยท Documentation ยท Report Bug ยท Request Feature
- About
- Features
- Architecture
- Getting Started
- Configuration
- Usage
- Roadmap
- Contributing
- License
- Acknowledgments
Political organizations need to create compelling, consistent content across multiple channels โ press releases, social media graphics, video subtitles, and more. Traditional AI tools lack the specialized knowledge and ethical considerations required for political communication, and generic solutions don't understand party-specific terminology, style guides, or compliance requirements.
Grรผnerator is a purpose-built AI platform for members and supporters of the German Green Party (Die Grรผnen). It combines state-of-the-art AI models with domain-specific knowledge to generate high-quality political content while maintaining transparency, privacy, and EU compliance.
Grรผnerator is built on 100% European infrastructure with a commitment to digital sovereignty:
| Principle | Implementation |
|---|---|
| 100% EU Hosting | All servers located exclusively in the European Union |
| European AI Providers | Default: Mistral AI (France), Images: Black Forest Labs (Germany) |
| Privacy Mode | Self-hosted by netzbegrรผnung e.V. on German servers |
| 75% EU Target | Minimum 75% of spending with European companies |
| Feature | Description |
|---|---|
| AI Modes | Kreativ (Mistral), Reasoning (Magistral), Ultra (Claude via EU Bedrock), Self-hosted (LiteLLM) |
| Web Search | Real-time integration of facts, statistics, and political developments |
| Privacy Mode | Maximum data protection โ self-hosted AI on German servers |
| Knowledge Base | Custom instructions and organizational knowledge for tailored outputs |
| EU Compliance | GDPR-focused design with transparency guidelines |
Generate professional political content with AI assistance:
- Press releases and statements
- Social media posts (optimized per platform)
- Policy documents and motions
- Accessible language translations
Create branded social media graphics:
- Quote cards and infographics
- Campaign visuals
- Consistent party branding
- Multiple export formats
Professional subtitle generation for videos:
- AI-powered transcription
- Multiple styling options
- Instagram/TikTok optimized formats
- HD+ resolution support
Y.js-powered collaborative editing:
- Multi-user document editing
- Conflict-free synchronization
- Persistent document storage
- Grรผne Wolke โ Nextcloud integration for file sharing
- Custom Instructions โ Personalized AI guidelines
- Multi-domain Support โ .de, .at, .eu domains
- PWA Support โ Install as native app on mobile devices
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FRONTEND โ
โ React 19 + Vite 7 โ Zustand โ React Query โ React Router v7 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST API
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BACKEND โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Express โ โ Cluster โ โ AI Worker Pool โ โ
โ โ Server โโโโ Workers โโโโ Claude โ OpenAI โ etc โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Keycloak โ โ Redis โ โ PostgreSQL โ โ
โ โ OIDC โ โ Sessions โ โ Database โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Qdrant โ โ Y.js WebSocket โ โ
โ โ Vectors โ โ Real-time Collaboration โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Cluster-based Workers โ Express servers scaled across CPU cores
- AI Worker Pool โ Dedicated threads for AI API calls (non-blocking)
- Feature-Sliced Design โ Modular frontend architecture
- Multi-Source SSO โ Keycloak with identity brokering (SAML/OIDC)
- Node.js >= 22.x
- PostgreSQL >= 15
- Redis >= 7
- Keycloak (for authentication)
- FFmpeg (for video processing)
-
Clone the repository
git clone https://github.com/netzbegruenung/Gruenerator.git cd gruenerator -
Install dependencies
# Install all dependencies with pnpm pnpm install -
Configure environment
# Copy example configs cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env # Edit with your values (see Configuration section)
-
Initialize database
# Run PostgreSQL schema psql -d gruenerator -f apps/api/database/postgres/schema.sql -
Start development servers
# Terminal 1: Backend pnpm dev:backend # Terminal 2: Frontend pnpm dev:web # Terminal 3: Y.js collaboration server (optional) pnpm --filter @gruenerator/api start:yjs
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Y.js WebSocket: ws://localhost:1234
# AI APIs
MISTRAL_API_KEY=... # Primary AI provider
AWS_ACCESS_KEY_ID=... # For Ultra mode (Claude via Bedrock)
AWS_SECRET_ACCESS_KEY=...
LITELLM_API_KEY=... # Self-hosted fallback
# Keycloak Authentication
KEYCLOAK_BASE_URL=https://auth.example.com
KEYCLOAK_REALM=Gruenerator
KEYCLOAK_CLIENT_ID=gruenerator
KEYCLOAK_CLIENT_SECRET=...
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/gruenerator
# Redis
REDIS_URL=redis://localhost:6379
# Base URLs
BASE_URL=http://localhost:3000
AUTH_BASE_URL=http://localhost:5173VITE_BACKEND_URL=http://localhost:3000
VITE_SUPABASE_URL=... # Legacy, being migrated
VITE_SUPABASE_ANON_KEY=...# Frontend
npm start # Start dev server
npm run build # Production build
npm run analyze # Bundle analysis
# Backend
npm run dev # Start with nodemon
npm run start:yjs # Y.js collaboration server
npm test # Run tests
npm run test:auth # Authentication testsAndroid (Chrome)
- Open https://gruenerator.de
- Tap menu (โฎ)
- Select "Add to Home Screen"
iOS (Safari)
- Open https://gruenerator.de
- Tap Share button
- Select "Add to Home Screen"
User-facing documentation is maintained in the /documentation directory using Docusaurus.
pnpm run dev:documentation # Start documentation dev server (localhost:3000)
pnpm run build:documentation # Build documentation sitedocumentation/
โโโ docs/ # Main documentation pages
โ โโโ Grundlagen/ # Basics and guides
โ โโโ Profil/ # Profile and cloud features
โ โโโ gruenerieren/ # Content generation features
โ โโโ llm-basics/ # AI/LLM fundamentals
โ โโโ ueber-den-gruenerator/ # About Grรผnerator
โโโ blog/ # News and updates
โโโ src/ # Custom pages and components
โโโ static/ # Images and assets
Documentation is deployed to: https://xgwok08o0ccgo4g4cgcoksc8.services.moritz-waechter.de
- Core text generation
- Sharepic generator
- Video subtitler
- Real-time collaboration
- Multi-domain support (.de, .at, .eu)
- Native mobile apps
- Plugin system
- API for third-party integrations
- Multi-language interface (EN, FR)
See the CHANGELOG for recent updates.
Contributions are welcome! Please read our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use CSS variables from
variables.cssโ never hardcode colors - Follow feature-sliced architecture patterns
- Test in both light and dark modes
- Check authentication flows after auth-related changes
All Rights Reserved โ See LICENSE.md for details.
- Netzbegrรผnung e.V. โ Technical support, hosting, and Privacy Mode infrastructure
- Mistral AI โ Primary AI provider (France)
- Black Forest Labs โ Image generation (Germany)
- All contributors and supporters of European digital sovereignty
- Email: [email protected]
- Issues: GitHub Issue Tracker
- Documentation: doku.services.moritz-waechter.de