ClientLane is a local, single-user project request portal. It combines a correspondence-style React workspace with a small Node HTTP API and SQLite persistence. Users can create requests, filter by status, review request details, add comments, move work through four stages, and inspect an immutable activity history.
The included requests and comments are synthetic fixtures. ClientLane has no authentication and does not represent a hosted client system or production usage.
Requires Node.js 22.22+ or 24.15+.
npm install
npm run dev- Web interface:
http://127.0.0.1:5176 - API:
http://127.0.0.1:4313
SQLite data is created at .data/clientlane.sqlite. Delete that local file while the app is stopped to restore the synthetic seed data on the next run.
npm test
npm run typecheck
npm run buildserver/domain.tsvalidates and normalizes request, comment, and status input.server/store.tsowns schema setup, parameterized SQLite operations, transactions, synthetic seeding, and immutable audit inserts.server/api.tsexposes the/apicontract through Node's HTTP server, including JSON parsing and a 16 KiB request limit.src/api.tsis the typed browser transport layer.src/components/separates the request list, detail conversation, activity history, and creation form.src/App.tsxcoordinates selection, filters, writes, and detail refreshes.
Request creation, comment creation, and status transitions commit their audit entries in the same SQLite transaction. Comments are returned in chronological order, while audit entries remain append-only.
- This is an explicitly local single-user demo. It does not provide accounts, authentication, authorization, multi-user editing, file uploads, or notifications.
- API access is bound to
127.0.0.1; Vite proxies/apiduring local development. - The app has no migration system beyond idempotent schema creation.
- Browser drafts survive server validation errors, but not a full page refresh.
This independent portfolio demonstration was built with AI-assisted development. It is not affiliated with a private employer product and contains no client or employment data.
MIT. See LICENSE.