Sketch Flow — A Sketching Tool
- Architected and built a real-time collaborative whiteboard system supporting multi-user concurrent editing with low-latency updates using WebSockets.
- Implemented a custom HTML Canvas rendering engine from scratch (no third-party drawing libraries), supporting shapes, freehand drawing, text, erasing, and interaction state management.
- Designed a scalable real-time event pipeline using Redis as an in-memory queue, enabling fast UI updates while asynchronously persisting canvas state to PostgreSQL.
- Developed invitation-based access control for shared canvases, allowing secure multi-user collaboration.
- Optimized rendering and network payloads to handle high-frequency drawing events without frame drops or UI lag.
- Built a monorepo architecture using Turborepo, sharing types and utilities across frontend, HTTP API, and WebSocket services.
- Designed a fault-tolerant backend using Express and WebSockets, capable of handling multiple concurrent sessions per canvas.
- Modeled relational data using PostgreSQL + Drizzle ORM, ensuring consistency between real-time state and persistent storage.
- Containerized services using Docker to ensure reproducible development and production deployments.
- Delivered a production-grade feature set comparable to Excalidraw, including free real-time collaboration.
Next.jsNode.jsExpress.jsRedisWebSocketsTurboRepoDockerShadCnReact.jsTypeScriptDrizzlePostgres SQLTailwind CSS