Case study · 02
2026 · Product design & full-stack development
OpenWorkspace
A cross-platform desktop automation product backed by a purpose-built AWS service.

- Year
- 2026
- Role
- Product design & full-stack development
- Stack
- Next.js/Vercel · Fastify · AWS
- Status
- Live and in production
Selected views
The work, before the process.
Two representative views establish the range before the case study moves into the decisions behind them.

How it works
A visual sequence turns a multi-step desktop workflow into an approachable product story.

Capabilities
A capability map separates what the product restores today from the wider desktop roadmap.
Project story
A product that spans the web, cloud, and installed desktop clients.
I designed the Next.js product and account experience and built the Fastify service running on AWS. Together they support licensing, checkout, accounts, workspace data, and requests from the Windows and macOS clients.
The defining constraint is release timing: installed clients do not all update at once, so the API must evolve without silently breaking software already in use.
01
Product scopeOne promise crosses four independently deployed layers.
The website explains the product and handles account flows. Fastify owns service APIs, PostgreSQL stores product state, and native clients perform desktop automation. Users experience those separately shipped layers as one product.
02
CompatibilityThe installed client is part of every backend decision.
Before an API field changes, its Windows and macOS callers have to be traced. Server updates preserve the contracts existing clients expect while authentication, licensing, and workspace behavior evolve.
03
ResponseSimplify the service without guessing what clients need.
I traced native callers before changing responses, consolidated license creation paths that had drifted, and tightened authentication control flow. Backend changes are grounded in the behavior of the installed software they serve.
Decisions
A shipped desktop app is a fixed constraint
Installed clients cannot change until a new release ships. Server updates therefore preserve their existing contracts, and client source is checked before any response field is removed.
AWS keys were being handed to every client
License validation returned raw IAM credentials that the desktop client did not use. After confirming that in the client source, I removed the field without changing client behavior.
A missing return left admin routes open
The authentication decorators returned a 401 but did not stop execution, allowing protected handlers to continue. Adding the missing return fixed the control-flow error.
Three ways to create a license became one
Checkout, the external API, and the admin UI created licenses through separate paths with different fields and responses. They now call one shared function instead.
The build
One stack from product story to native client.
The web experience, TypeScript service, PostgreSQL data layer, AWS infrastructure, and native desktop code are designed as one connected product rather than separate deliveries.
What I owned
- 01
Product positioning and responsive Next.js/Vercel frontend
- 02
Complete Fastify backend and web-server development
- 03
AWS EC2 application hosting and AWS RDS integration
- 04
Request handling for Windows and macOS desktop clients
Technology roles
Web experience
- Next.jsProduct, account, research, and trial experience
- ReactComponent model across the public web application
- TypeScriptShared type safety throughout the web and API layers
- VercelFrontend build and deployment
Cloud service
- Node.jsRuntime for the application service
- FastifyLicensing, account, checkout, and client APIs
- Drizzle ORMTyped queries and database migrations
- PostgreSQLProduct data hosted through AWS RDS
Desktop clients
- C++Core Windows desktop automation client
- .NETWindows application and system integrations
- SwiftmacOS client built with SwiftUI and AppKit
System architecture
A web-to-desktop product architecture.
The public frontend, cloud service, database, and desktop clients work as one system designed and developed end to end.
- Frontend
Next.js product experience deployed on Vercel
- Backend
Fastify web server running on AWS EC2
- Database
AWS RDS
- Clients
Windows and macOS desktop applications sending requests to the backend
Selected screens
The system, seen in practice.
Readable views of the site and the system behind it.
Desktop framework
The framework page explains Workspaces and FocalContextual as connected desktop concepts.
Research
Research gives the product thesis a clear home beyond acquisition and account flows.
Whitepaper
Long-form product thinking uses a quieter reading layout within the same visual system.
Current status
Live and in productionAvailable in production today; the live experience reflects the system shown throughout this case study.
Discuss a similar project
