Client portal
The portal where Sqware Logics clients review our proposals. Each client signs in without a password, sees only the proposals shared with their organization, and can discuss any section with us in place.
- Status
- In production
- Built with
- Webstir, TypeScript, SQLite, AWS
The problem
Proposals sent as email attachments drift. Several versions circulate at once, feedback arrives in long reply threads that are hard to connect to the right section, and nobody can be sure which document the client actually approved.
What we built
- One current version per client. Each proposal version is saved permanently and never edited. We choose which version a client sees, and we can restore an earlier one if needed.
- Conversations on each section. Clients and our team comment on specific sections. Open questions are gathered into a feedback summary for the next version.
- Consistent, accessible documents. Proposals are written as structured content, and the portal handles layout, navigation, printing, and PDF downloads.
- Passwordless sign-in. Clients receive a one-time link or six-digit code by email. Both expire after five minutes and work only once.
How it is built
- Access is scoped to each client organization. Staff access is granted explicitly, never inferred from an email address.
- Sign-in codes are stored only as secure hashes, limited to three attempts, and throttled.
- Proposal content is never interpreted as code, so a document cannot inject scripts or styling into the page.
- Each version is stored as a private, checksummed file in AWS. The portal database is backed up on every proposal change and nightly, and restores are tested.
- Built with Webstir, TypeScript, and SQLite, and deployed to AWS with infrastructure defined in code.
Where it stands
In production at portal.sqwarelogics.com, where we share proposals with prospective clients. The screenshots show a sample client and proposal, not a real one.