Light. Fast. Self-Hosted.
Textual is a terminal-based messaging application built with Go that offers a sleek TUI (Text User Interface) experience. Anyone can self-host their own messaging server, enabling distinct communication hubs. Each server provides:
- Friends List: Add and manage your connections (in progress).
- Groups: Create and participate in group chats (not functional yet).
- Global Chat: A unified chatroom for all server members (fully operational).
- Private Messages: Chat one-on-one with your friends.
⚠️ Note: This project is still under development. While the Global Chat tab is fully functional, the Friends tab is under construction, and the Groups feature is not yet implemented.
- Lightweight: Runs efficiently in the terminal.
- Fast: Powered by Go, with a responsive TUI.
- Customizable: Easily host your own messaging server.
- Go 1.22.2 or later
- Docker
- PostgreSQL database
git clone https://github.com/CorentinMre/Textual.git
cd TextualCopy the .env.example to .env and configure your environment variables:
DB_HOST=
DB_PORT=
DB_USER=
DB_PASSWORD=
DB_NAME=
SERVER_PORT=
JWT_SECRET=
SERVER_HOST=go mod tidyBuild and run the application with Docker:
docker compose up --buildStart the client:
go run cmd/client/main.go.
├── Dockerfile
├── README.md
├── client.log
├── cmd
│ ├── client
│ │ └── main.go
│ └── server
│ └── main.go
├── docker-compose.yml
├── go.mod
├── go.sum
├── internal
│ ├── client
│ │ ├── models
│ │ ├── network
│ │ └── tui
│ └── server
│ ├── database
│ ├── handlers
│ ├── models
│ └── utils
└── pkg
└── protocol
- Bubble Tea: TUI framework
- PostgreSQL: Database
- Docker: Containerization
Contributions are welcome! Please fork this repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for more details.
✨ Built with <3 and Go ✨



