Live deployment
WebRTC room
I built this to learn the awkward parts of browser-to-browser calls: signaling, room state, reconnects, chat, and getting the whole thing through Docker, Nginx, and HTTPS.
Room status
Deployed and tested
Playground
The WebRTC room is a deployed application. The rest are deliberately small browser demos: enough UI to make the backend idea visible without pretending each one is a finished product.
Demos
Live deployment
I built this to learn the awkward parts of browser-to-browser calls: signaling, room state, reconnects, chat, and getting the whole thing through Docker, Nginx, and HTTPS.
Room status
Deployed and tested
TypeScript utility
I was tired of rewriting defensive checks for nested object paths. This is the small test bench I use for the utility, including missing values, arrays, and broken JSON.
Result: true
API integration
A cut-down example from integration work: take somebody else’s payload, keep where it came from, and turn it into a shape the rest of the application can trust.
{
"source": "external-crm",
"receivedAt": "2026-08-22T09:30:00.000Z",
"customer": {
"id": "cus_1024",
"fullName": "Saeed Ghofrani",
"tags": [
"backend",
"api-integration",
"realtime"
]
},
"normalizedFields": 4
}Elasticsearch
Type a phrase and this shows the query I would send instead of passing raw search input through to Elasticsearch. The stack filter stays fixed on purpose.
{
"index": "projects",
"query": {
"bool": {
"must": [
{
"match": {
"summary": "backend architecture"
}
}
],
"filter": [
{
"terms": {
"stack": [
"nestjs",
"postgresql",
"redis"
]
}
}
]
}
},
"highlight": {
"fields": {
"summary": {}
}
}
}WebSocket pricing
The numbers here are generated locally, not pulled from an exchange. I use the demo to show the shape of ticks and spread data; the linked repository contains the real WebSocket client.
Streaming backend
Move the file-size slider to see the upload split into 8 MB chunks. It is a visual explanation of the streaming approach in the repository, not a fake upload progress bar.