AI-powered political campaign operations platform
PolitikTok is a comprehensive GenAI platform for political party operations. It provides 26 integrated modules covering everything from volunteer matching and policy chatbots to opposition research, sentiment monitoring, and campaign compliance -- all powered by local LLMs for data sovereignty.
Why? Political campaigns generate and consume massive amounts of data. PolitikTok brings AI capabilities in-house so parties can operate efficiently without relying on third-party cloud services that may compromise voter data privacy.
| # | Module | Description |
|---|---|---|
| F01 | Volunteer Matching | AI-powered volunteer-task matching with churn prediction |
| F02 | Policy Chatbot | RAG-based Q&A over party documents for citizens |
| F03 | Sentiment Monitor | Real-time social media sentiment analysis with spike detection |
| F04 | Campaign Copy | Multi-format campaign content generation (email, social, press) |
| F05 | Opposition Research | Automated briefing generation and contradiction detection |
| F06 | Canvassing Scripts | Dynamic door-to-door conversation scripts |
| F07 | Fundraising Assistant | Donor engagement scoring and solicitation drafting |
| F08 | Accountability Engine | Manifesto promise tracking with evidence classification |
| F09 | Empathy Simulator | Audience persona-based policy impact analysis |
| F10 | Narrative Contagion | Message spread modeling and virality prediction |
| F11 | Coalition Detector | Coalition tension analysis and stress scoring |
| F12 | Candidate Briefings | Auto-generated event and meeting preparation briefs |
| F13 | Call Intelligence | Constituent call transcription and theme extraction |
| F14 | Coaching & Debate | AI-powered debate rehearsal with pressure simulation |
| F15 | Multilingual Outreach | Translation and cultural adaptation of campaign materials |
| F16 | Question Anticipation | Predicted voter questions with preparation checklists |
| F17 | Local Issues | Hyper-local issue mapping and prioritization |
| F18 | Policy Diff | Semantic policy comparison and mutation testing |
| F19 | Faction Mapper | Internal faction consensus and tension mapping |
| F20 | Regulatory Monitor | Plain-language regulatory change alerts |
| F21 | Media Monitor | Media bias and coverage tracking |
| F22 | Disinfo Warning | Disinformation early warning system |
| F23 | Compliance | Electoral compliance reporting and audit trails |
| F24 | Meeting Summarizer | Meeting transcription, summary, and action tracking |
| F25 | Knowledge Base | Internal knowledge base Q&A |
| F26 | Admin Panel | System administration, user management, module config |
| Layer | Technology |
|---|---|
| Frontend | Dioxus 0.7.3 (fullstack SSR + hydration), Tailwind CSS 3, DaisyUI 4 |
| Backend | Axum 0.8, tower-sessions, Dioxus server functions |
| Database | PostgreSQL 16 (via sqlx) |
| Vector Store | Qdrant (semantic search, RAG) |
| Auth | Keycloak 26+ (OAuth2 + PKCE) |
| LLM | Ollama (OpenAI-compatible API) |
| Search | SearXNG (meta-search for news/social feeds) |
- Rust 1.89+
- Dioxus CLI (
dx) - Docker & Docker Compose (for services)
# Clone the repository
git clone https://github.com/mighty840/politiktok.git
cd politiktok
# Start external services
docker compose up -d
# Configure environment
cp .env.example .env
# Edit .env with your service URLs
# Run the dev server
dx serve --port 9000| Service | Purpose | Default URL |
|---|---|---|
| PostgreSQL | Relational data store | localhost:5433 |
| Qdrant | Vector database for RAG | localhost:6335 |
| Keycloak | Identity provider / SSO | localhost:8081 |
| Ollama | Local LLM inference | localhost:11434 |
| SearXNG | Meta-search engine | localhost:8889 |
src/
app.rs Root component, Router, auth shell
lib.rs Module declarations
components/ Reusable UI components (sidebar, table, modal, etc.)
pages/ Full page views for each module
models/ Shared data models (web + server)
infrastructure/ Server-side: auth, config, DB, LLM, vector store
modules/ Per-module server logic and server functions
assets/ Static assets (CSS, icons, logo)
bin/ Binary entrypoint
docs/ Documentation (mdBook)
Full documentation is available at https://mighty840.github.io/politiktok.
# Check server compilation
cargo check --features server --no-default-features
# Check web/WASM compilation
cargo check --features web --no-default-features
# Run tests
cargo test --features server --no-default-features
# Format code
cargo fmt
# Lint
cargo clippy --features server --no-default-features -- -D warningsContributions are welcome! Please read the contributing guidelines and submit pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes using Conventional Commits
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 -- see the LICENSE file for details.
Built with Rust, Dioxus, and a commitment to democratic technology.