A full-featured platform enabling property brokers to create, manage, and digitally sign documents at scale — with dynamic templates, mass contract generation, and legally validated digital signatures.
.png&w=3840&q=90)
The real estate brokerage industry runs on paperwork — contracts, listing agreements, disclosure forms, and addenda — most of which was still being handled through fragmented tools: email, PDF editors, and physical signatures. Brokers were spending hours per transaction manually generating documents, chasing down signatures, and tracking what had been signed across a dozen channels.
The client needed a centralized platform that would allow their broker network to create, customize, and send documents for digital signature — all from a single place. The challenge was not just building a functional app, but designing a system robust enough to handle dynamic templates, variable signer configurations, and the legal requirements of certified digital signatures.
Starting from zero with no existing codebase or design system, I was responsible for the entire frontend architecture, technical decisions, and implementation of the platform from the ground up.
A real-time command center giving brokers an immediate overview of all documents in motion. Pending signatures, recently completed documents, urgent actions, and volume metrics are surfaced at a glance — reducing the time spent checking status across multiple sources to zero.
.png&w=3840&q=90)
The operational core of the platform — a full document lifecycle manager with advanced search, multi-dimensional filter combinations, bulk selection, and status-based workflows. Brokers can create documents from templates, attach files, assign signers, and track every stage from draft to completed signature without leaving the app.
.png&w=3840&q=90)
A flexible signer configuration module allowing brokers to define signing order, assign roles, and configure advanced digital signatures with qualified electronic certificates — required for documents with legal validity. Each signer receives a secure, tokenized signing link with no account registration required.
.png&w=3840&q=90)
One of the most complex features of the platform. Brokers define reusable templates with dynamic placeholders — names, dates, property addresses, amounts — which are then injected with client-specific data to generate personalized documents in bulk. Managing placeholder syntax, rendering live previews, and guaranteeing data integrity during mass contract generation required careful state design and thorough edge-case handling.
Next.js App Router was chosen for its server-side rendering capabilities, delivering fast initial page loads — critical for a tool used in time-sensitive real estate transactions. The file-based routing also kept the codebase organized and predictable as the feature set grew over multiple iterations.
Document state across the platform is complex — a single document can be in any of a dozen lifecycle states, with signers that have their own statuses and signing modes. Zustand provided a simple but powerful store for managing this without the boilerplate overhead of Redux, keeping state logic readable and easy to reason about.
Building a design system from scratch benefited greatly from Tailwind's utility-first approach. Consistent spacing, typography, and component patterns were established early and maintained reliably as new features were added — without accumulating a growing pile of one-off CSS files.
The document domain has many overlapping entities — templates, documents, signers, signature events, and certificates. TypeScript's type system was essential for keeping these relationships clear and for preventing data modeling errors that would have been difficult to diagnose at runtime.
The platform is now actively used by a network of property brokers, processing hundreds of documents monthly. What previously required manual PDF editing and physical signature collection is now completed in minutes directly from the platform. The mass contract generation feature alone saves brokers several hours per large transaction batch. The client has since expanded the product scope beyond the initial brief, commissioning additional modules based on broker feedback.
I'm available for freelance projects worldwide — from leading your frontend from day one, to modernizing an existing app, to building an MVP end-to-end.