Own Your Conversations.
The open-source communication platform that gives you control.
Tired of proprietary platforms that monetize your conversations? FreedomTalk is your answer.
Built for communities that value privacy, transparency, and control, FreedomTalk delivers enterprise-grade real-time communication without the vendor lock-in.
| Feature | Description |
|---|---|
| Real-Time Messaging | Instant text chat with Markdown support, reactions, and attachments |
| Voice & Video Calls | Crystal-clear calls directly in your browser or desktop app |
| Server & Channel Organization | Flexible structure for communities of any size |
| Self-Hosted | Deploy on your infrastructure. Your data, your rules. |
| Modern Architecture | Built on cutting-edge tech for reliability and scale |
| Technology | Purpose |
|---|---|
| Fastify 5.x | High-performance web framework |
| Socket.io 4.x | Real-time WebSocket communication |
| PostgreSQL 16+ | Reliable data persistence |
| Redis 7+ | Caching and pub/sub |
| RabbitMQ | Message queue for scalability |
| TypeScript | Type-safe development |
| Technology | Purpose |
|---|---|
| Next.js 16.x | React framework with App Router |
| React 19.x | Modern UI development |
| Tailwind CSS 4.x | Utility-first styling |
| Zustand | Lightweight state management |
| Socket.io Client | Real-time updates |
- Docker - Containerized development environment
- npm Workspaces - Monorepo management
Ensure you have the following installed:
- Node.js 20.0.0+
- npm 11.0.0+
- Docker & Docker Compose
-
Clone the repository
git clone <repository-url> cd freedomtalk
-
Install dependencies
npm install
-
Start infrastructure services
docker-compose up -d
-
Configure environment variables
# API configuration cp packages/api/.env.example packages/api/.env # Web application configuration cp packages/web/.env.example packages/web/.env.local
Update the
.envfiles with your specific configuration before proceeding. -
Launch development servers
npm run dev
Your FreedomTalk instance is now running.
freedomtalk/
├── packages/
│ ├── api/ # Backend API server (Fastify + Socket.io)
│ ├── web/ # Web application (Next.js)
│ ├── shared/ # Shared types, schemas, and utilities
│ ├── desktop/ # Desktop app (Electron) — Coming Soon
│ ├── mobile/ # Mobile app (React Native) — Coming Soon
│ └── scripts/ # Development and deployment scripts
├── docker-compose.yml
├── package.json
└── tsconfig.json
npm run dev # Start all packages in development mode
npm run build # Build all packages for production
npm run start # Start production servers
npm run lint # Run ESLint across all packages
npm run lint:fix # Auto-fix linting issues
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking
npm run clean # Remove build artifactsnpm run docker:up # Start PostgreSQL, Redis, RabbitMQ
npm run docker:down # Stop all services
npm run docker:logs # View service logsnpm run dev --workspace=@freedomtalk/api # Development server
npm run migrate:latest --workspace=@freedomtalk/api # Run migrations
npm run migrate:make --workspace=@freedomtalk/api # Create migration
npm run test --workspace=@freedomtalk/api # Run testsnpm run dev --workspace=@freedomtalk/web # Development with Turbopack
npm run build --workspace=@freedomtalk/web # Production build
npm run start --workspace=@freedomtalk/web # Production server- Monorepo architecture with npm workspaces
- Backend API with Fastify
- Frontend application with Next.js
- Shared package for types and utilities
- Docker development environment
- TypeScript configuration
- Code quality tooling (ESLint, Prettier)
- Database schema and migrations
- User authentication and authorization
- Real-time messaging system
- Voice and video calling
- File sharing and attachments
- Desktop application (Electron)
- Mobile application (React Native)
- Plugin/extension system
- Self-hosting deployment guides
| Service | Port | Purpose |
|---|---|---|
| PostgreSQL | 5432 | Primary database |
| Redis | 6379 | Caching and pub/sub |
| RabbitMQ | 5672 | Message queue |
| RabbitMQ Management | 15672 | Admin UI at http://localhost:15672 |
For detailed Docker configuration, see docs/setup/docker.md.
Documentation is organized under docs/:
- Setup and environment guides:
docs/setup - Architecture and implementation planning:
docs/architecture - Product and roadmap docs:
docs/productanddocs/roadmap - Historical notes and superseded planning:
docs/archive
- Create a feature branch from
main - Implement your changes
- Run quality checks:
npm run lint && npm run type-check - Build all packages:
npm run build
- Test your changes thoroughly
- Commit and push
- Open a pull request
We welcome contributions from the community. Whether you're fixing bugs, adding features, or improving documentation — your help makes FreedomTalk better for everyone.
Contributing guidelines will be added soon.
License information to be announced.
FreedomTalk — Because your conversations deserve freedom.