Monorepo for Agora Citizen Network.
We are at a critical moment where social media platforms are increasingly evolving into tools of computational propaganda (the use of bots and algorithms to manipulate public opinion), polarizing society, and threatening democratic values worldwide. Recent advancements in AI have unfortunately accelerated this dangerous trend.
Agora Citizen Network was born out of our belief that digital public spaces must be intentionally designed to strengthen the social fabric of our societies. We envision a future where technology transforms social diversity into a catalyst for progress, rather than a driver of division.
- Using zero-knowledge proof (ZKP) cryptography, Agora allows users to anonymously prove they are human - not bots - without disclosing any personal information to anyone, including us.
- Besides, most social networks today use engagement-based ranking algorithms designed to maximize user attention and engagement. Unfortunately, these algorithms often promote polarizing content, which tends to attract the most attention, whether good or bad. In contrast, Agora employs bridging-based ranking algorithms that aim to highlight content appreciated by users across different political viewpoints. The goal is not to censor extreme opinions but to preserve a rich diversity of viewpoints and identify common ground.
- Additionally, we're developing Racine, a metaprotocol built on UCAN and Rarimo, designed to give users full control over their digital identities and data. We believe that while protocols may not be inherently interoperable, verifiable data is. By putting humans at the center, Racine enables users to decide what data to share, with which service providers, and where to store it, ensuring both self-sovereignty and verifiable data provenance.
- Q1 2025: Agora MVP is live and actively seeking your feedback - Get in touch!
- Q2 2025: Evolving from MVP to SLCP (Simple, Lovable, Complete Product)
- Q3 & Q4 2025: Develop pilot projects with institutions, NGOs, market research firms, media outlets, and other partners looking to engage their audiences through Agora.
Check out detailed product development roadmap here
Install:
For detailed information about each service, licenses, and documentation, see COPYING-README.md.
Agora - A Quasar application (Vue.js frontend) providing the user interface for Agora Citizen Network.
API - A Fastify application supported by a PostgreSQL database. Main backend API handling user requests, authentication, voting, and conversation management.
Math Updater - Background worker service that periodically updates Polis clustering mathematics and generates AI-powered cluster insights using LLM models.
Python Bridge - A Flask application enabling the Node.js backend to communicate with Python data science libraries, particularly reddwarf for clustering algorithms.
Shared - Common TypeScript code shared across all services.
Shared App-API - TypeScript code shared specifically between the frontend (agora) and API service.
Shared Backend - Backend-specific code shared between API and worker services (like math-updater). Synced via rsync to maintain consistency.
LLM - LLM prompts and Python scripts for AI-related development.
NLP - Natural language processing utilities and tools.
We generate an openapi-zkorum.json
file from the backend, and then use openapi-generator-cli to generate the corresponding frontend client.
Please read READMEs in /services/agora
, /services/api
, /services/math-updater
, and /services/python-bridge
Frontend App:
make dev-app
Backend API:
make dev-api
Python Bridge:
make dev-polis
Some typescript source files are shared directly without using npm packages - by copy-pasting using rsync.
Use these commands to automatically rsync shared files to back and front:
make dev-sync
Automatically generate frontend stub from backends and subsequent openapi changes:
make dev-generate
... and start coding!
Refer to the embed documentation.
If you discover any security issues, please send an email to [email protected]. The email is automatically CCed to the entire team, and we'll respond promptly. See SECURITY for more info.
See CONTRIBUTING.md
See COPYING-README
This project has received funding from the European Union's Horizon Europe 2020 research and innovation program through the NGI TRUSTCHAIN program under cascade funding agreement No. 101093274 and the NGI SARGASSO project under grant agreement No. 101092887.
In terms of source code, the NGI SARGASSO program exclusively funded the integration with Rarimo. For detailed information, please refer to the commit messages and file headers.