Lustra - Mirror Parliament 🏛️
Lustra is a digital public infrastructure designed to track legislation and empower civic oversight. It parses raw government data, uses AI to generate neutral summaries, and provides a civic platform for voting on bills and drafting citizen initiative legislation. It's meant to transform democracies from indirect to direct.
👉 Live App: lustra.news
🎯 The Mission
95% of legislation goes unnoticed because legal texts are unreadable for citizens. Media coverage is often biased or focused on outrage. Lustra aims to fix this by:
- Direct Source Access: Linking every summary to the raw PDF/XML source.
- Context Sterilization: Using LLMs with temperature=0 and strict JSON prompts to strip emotional language.
- Civic Projects: Enabling citizens to draft and vote on model laws (like The Human Preservation Act).
- FOIA Injection: Converting API failures into legal pressure.
🛠️ Tech Stack
- Frontend: Flutter (Mobile & Web Monorepo)
- Backend: Firebase (Auth, Firestore, Cloud Functions) + Google Cloud Run
- AI Engine: Vertex AI (Gemini Flash) via strictly typed API calls.
- CI/CD: Codemagic / GitHub Actions
🧩 Architecture & Contributing
The project uses a Service-Oriented Architecture.
- Note to Contributors: Some legacy code comments are currently in Polish 🇵🇱. We are actively migrating documentation to English. Pull Requests translating comments are highly appreciated and a great way to start contributing!
- Refactoring: We are in the process of breaking down larger UI monoliths into smaller widgets. Check the [Issues] tab for current tasks.
🔒 Transparency & AI Ethics
We believe in "Radical Transparency".
- System Prompts: The exact instructions sent to our AI models are public and can be found in the app ("How it works" section).
- Logs: We will publish raw AI input/output logs for contested bills soon.
🌍 Bring Lustra to Your Country
Lustra is designed to be global. The core logic (AI, UI, Voting) is separated from data sources.
Want to add Canada, Israel, or Ireland? You don't need to build an app. You just need to write a Data Adapter. If you have access to official APIs/JSONs for:
- Legislation text (PDF/HTML) + status
- MP profiles
- Voting records
...you can integrate your country in a few days. We provide the base classes and instructions. Open an Issue titled "New Country: [Name]" to get started!
🚀 Getting Started (For Developers)
Prerequisites
- Flutter SDK (3.x+)
- Firebase Project
Setup
- Clone the repo.
- Create your own Firebase project.
- Add
firebase_options.dart(useflutterfire configure). - Run:
flutter pub get flutter run
📄 License
This project is Source Available under the PolyForm Noncommercial License 1.0.0.
- ✅ You are free to read, learn from, and fork this code for non-commercial, educational, or civic purposes.
- ❌ You may NOT use this code for commercial purposes without explicit permission.
We chose this license to protect the project from corporate capture while keeping it open for the community.
For AI Researchers & Civic Tech Builders
See /docs/ for technical specifications.
Maintained by the Lustra Initiative.