Grigory
Backend for real-time chats, notifications and microservice communication. Has both REST and WebSockets support.
Install / Use
/learn @Anttek-io/GrigoryREADME
Grigory
Grigory is backend for notification service, real-time chats and microservices communication.
It's built on top of Django and Django Channels.
It's designed to be used as a microservice in a microservice architecture,
but can be used as a standalone service as well.
It provides both REST API and WebSockets for clients and microservices.
If you find this project useful, please consider giving it a star ⭐️
Who was this project made for?
Everybody who wants to implement chat and notifications in their project.
For example, frontend developers who needs chat and/or notifications functionality.
How it works

- Any client or microservice sends some message via REST API or WebSockets
with the indication of the chat it belongs to.
1.1. If chat with user doesn't exist, it will be created automatically. - Then this message gets saved in database.
- After that, the message is sent to real-time chat via WebSockets.
Message history can be retrieved via REST API or WebSockets.
Demo
<img src="docs/media/demo-1.png" alt="demo"/>Grigory needs some pretty demo site. But I'm bad at frontend, so if you want to help, please contact me at rustam@astafeev.dev.
You can try the demo at https://grigory-demo.anttek.io.
To test it, open 2 tabs in your browser and login as 2 different users.
Then you can send messages between them.
There are 2 users in the demo:
demo-1anddemo-2.
They have same password:demo-123.
API is available at https://grigory-demo.anttek.io/api.
WebSockets are available at wss://grigory-demo.anttek.io/ws.
Features implemented
- [x] WebSockets with JWT auth (with Rest Framework Simple JWT)
- [x] Real-time chats and chat list
- [x] Chat management (creating, updating, deleting, adding and removing members, etc.)
- [x] File attachments via REST API only (because there's limitation for message size in Django Channels / Redis)
- [x] Microservice architecture-ready
Features to be implemented
- [ ] Marking messages as read by concrete user
- [ ] Show unread messages count in chat list
- [ ] Using system events as messages in chats
Quick start
First clone the repo
git clone https://github.com/Anttek-io/grigory.git
cd grigory
Create .env file and put at least GRIGORY_WEB_PORT
GRIGORY_WEB_PORT=8000
Run the app
docker compose up -d
Documentation
Hand-writed docs available here: link to GitHub Pages.
Demo auto-generated docs available here: link to RapiDoc UI.
Postman workspace
There's public Postman workspace with all the requests and collections. You can import it to your Postman and start testing the API right away.
Related Skills
bluebubbles
351.2kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
gh-issues
351.2kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
351.2kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
