SaaS Website Builder Platform
A multi-tenant website-builder enabling non-technical users to launch production sites with custom themes, domains, and content.

What was built
A multi-tenant website-builder SaaS where users create, theme, and publish websites through a visual editor. Built for the Mreshet product line.
What it solved
Non-technical users needed to launch and maintain production-quality websites without involving developers, while the platform maintained strict tenant isolation and real-time content updates.
What I built
Built the visual editor frontend, designed the Node.js API and PostgreSQL multi-tenant schema, implemented WebSocket-based real-time collaboration, and owned the Docker-based deployment pipeline.
How it was built
Frontend
React-based visual editor with a component tree model, drag-and-drop layout, and live preview rendering.
Backend
Node.js + Express REST API handling tenant provisioning, content persistence, and theme compilation.
APIs
RESTful endpoints for site CRUD, theme management, and publishing; WebSocket events for live edits.
Database
PostgreSQL with per-tenant row-level isolation, Redis for session caching and real-time pub/sub.
State Management
Normalized client store for the editor canvas with optimistic updates.
Infrastructure
Dockerized services behind NGINX with Redis for caching and pub/sub.
Deployment
CI/CD pipeline with containerized builds and zero-downtime rollouts.
System structure
What was hard
Multi-tenant data isolation
Designed a PostgreSQL schema with tenant-scoped rows and enforced access boundaries at the API layer to prevent cross-tenant data leakage.
Real-time collaborative editing
Implemented WebSocket-based presence and live edit propagation with Redis pub/sub, handling conflict resolution for concurrent edits.
Theme compilation performance
Cached compiled theme assets and streamed incremental updates to avoid full re-renders on every edit.
Why these choices
Row-level tenant isolation over schema-per-tenant
Chose a shared schema with tenant IDs to keep migrations manageable as the tenant count grew, trading query complexity for operational simplicity.
Redis pub/sub for collaboration
Used Redis as the WebSocket fan-out backbone to keep the Node.js processes stateless and horizontally scalable.
Impact
- Shipped and maintained the platform as part of the Mreshet product offering.
- Enabled non-technical users to launch sites end-to-end without engineering involvement.