texvim is a scalable chat app foundation. unlike typical chat applications, where messages are emitted directly on the server, texvim uses redis to emit messages and then distribute them to multiple servers, ensuring that users on different servers receive messages seamlessly. from redis the message is sent to kafka for stream processing, stored in postgresql, and consumed by node.js.
- turborepo: a monorepo for managing multiple projects efficiently.
- tailwind CSS: utility-first CSS framework for styling the application.
- typescript: a strongly-typed superset of javascript for better code quality.
- redis: for handling real-time message distribution.
- kafka: for streaming and managing large-scale data pipelines.
- postgreSQL: a relational database for storing messages.
- node.js: used for consuming Kafka messages and managing server operations.
- yarn: a fast, reliable, and secure dependency management tool.
you can fork this repo by clicking the fork button in the top right corner of the page.
git clone https://github.com/shamikhan005/texvim.git
cd texvim
yarn install
- create a
.env
file in the root directory of the project. - add the required environment variables such as Redis URL, Kafka broker details, and PostgreSQL connection details.
yarn dev
after starting the development server, you can interact with that chat application:
- open
http://localhost:3000
in your browser. - send a message and observe the real-time message handling across different servers