Shajara
Platform for family trees and family heritage

- Client
- Idrok Group
- Year
- 2026
- What we did
- Web developmentUI/UX design
- Stack
- React 19ViteFastifyDrizzleSocket.IOd3PostgreSQL
Shajara is our own startup for building family trees. Relatives edit the tree together in real time, and the interface works in Uzbek, Russian and English.
Challenge
Uzbek families traditionally know their ancestors seven generations back, but that knowledge usually lives in elders' memories and old notebooks. Existing genealogy services felt to us like they were built for Western families: large households, dense family ties and varied spellings of names don't fit them well.
We wanted a tree that a family starts today and their descendants keep alive for generations.
What we built
The server runs on Fastify 5 with Drizzle ORM and PostgreSQL; the client on React 19 + Vite. Sign-in is through Google.
The hardest part was the tree layout. We wrote our own on top of d3, shaped like an hourglass: ancestors above, descendants below, spouses side by side. When complex family ties make a person appear twice, both occurrences are marked as the same person.
Several people can edit at once: changes travel over Socket.IO and everyone sees them immediately.
Outcome
- 01Real-time collaborative tree editing
- 02Custom layout with ancestors above, descendants below
- 03Uzbek, Russian, English
- 04Launched in 2026 at shajara.idrok.group


Read next

A year of AI assistants in our studio: what got faster and what didn't
How AI coding assistants changed the work of a five-person studio in Tashkent: where Claude and Cursor save hours, and where they add bugs and security risks.

Nuxt, Next.js, Rust: why we change our stack, and when not to
Why we moved from Nuxt 3 to Next.js, why the Damka engine was rewritten in Rust, why Shajara runs on Fastify, and why client websites get a boring stack.

Similar projects
All workGot a task? Message us — let’s talk.
Write on Telegram directly to the studio’s founder. Describe what you need in a couple of lines — we’ll reply with questions and a rough estimate.



