The challenge
Independent work rarely lives in one place. Notes sit beside a project tracker, customer records, timesheets, invoices, research and publishing tools, leaving context fragmented across products. BlokNotes began in 2025 as an independent product initiative to keep thinking and delivery inside one connected workspace.
David owns the product direction, architecture and full-stack implementation. The current V2 generation turns that idea into a multi-tenant SaaS platform designed for both personal knowledge work and operational workflows.
One connected workspace model
Rich BlockNote documents form the writing surface, with structured blocks for tables, code, attachments, diagrams, links, mentions and safe secret references. Notes connect directly to daily work, meetings, people, companies, opportunities, projects, tasks, issues, research and files.
The same workspace model also supports custom fields and objects, data tables, CRM activities, timesheets, invoices and content collections. Tags, backlinks, relations, notifications and a timeline keep information navigable instead of recreating isolated modules inside one interface.
Clear full-stack boundaries
The responsive client uses Next.js, React, TypeScript and Mantine, with TanStack Query, Zustand and runtime schemas separating UI state from API contracts. A .NET 10 ASP.NET Core host exposes focused FastEndpoints and keeps domain, application and infrastructure concerns in separate projects.
Clerk establishes user identity, while workspace membership and role checks establish authorization. An active workspace scope feeds Entity Framework Core query filters, making tenant isolation part of the persistence boundary. PostgreSQL remains the durable source of truth; object storage, external drives and signed download intents handle binary assets.
Durable realtime collaboration
Collaborative notes combine Yjs in the browser with an authenticated SignalR hub and MessagePack transport. PostgreSQL stores documents, snapshots, update tails, commands and a durable outbox. Redis Streams wake dispatchers only after work commits, avoiding constant database polling while preserving recovery after a Redis outage or deployment reconnect.
Presence, active viewers, note history and conflict information give collaboration explicit operational behaviour instead of treating live editing as a browser-only feature.
Publishing and product services
Content channels let a workspace publish typed collections, assets and forms to external websites. A dedicated Cloudflare Worker serves APIs and R2 assets through edge caching, conditional requests, rate limits and workspace-level usage metering. Configuration invalidation keeps published changes timely without exposing the private workspace API.
The wider product includes Stripe subscriptions, invoice and timesheet PDFs, transactional email, calendar connections, AI assistance and secure public sharing. Each capability reuses the same identities, permissions and connected records.
Result
BlokNotes is now a working beta with a production-oriented foundation rather than a collection of disconnected prototypes. Containerized Railway hosting, Cloudflare delivery, health checks, output caching, structured telemetry and layered backend, frontend, browser and Worker tests support continued evolution. Most importantly, new capabilities can build on shared workspace context—keeping the product’s central promise intact as its scope grows.