Selected work / Case study
swift-ship
An AI customer support desk.
Build checkedOverview
A customer support prototype built with Next.js 15, Supabase, and OpenAI, with pgvector for document search. The public link shows sign-in; authenticated support workflows need separate verification.
- Next.js 15
- Supabase
- OpenAI
- pgvector
The problem
swift-ship explores an AI-assisted customer support desk that combines ticket handling, knowledge search, and customer conversations. Its source also includes freight estimates and shipment tracking.
My contribution
I built a support prototype with ticket queues, replies and internal notes, knowledge editing, and customer portal pages. The AI chat routes requests to support, documentation, quote, or shipment agents. These capabilities are present in source; their authenticated behavior remains unverified.
How it's built
Next.js pages and API handlers use service modules backed by Supabase Auth, PostgreSQL, and Realtime. The AI route forwards responses from Supabase Edge Functions as server-sent events. Documentation search uses OpenAI embeddings and a pgvector database query.
Simplified AI request path
The browser sends chat messages to the Next.js AI support route. That route forwards the request to a support, documentation, quote, or shipment Edge Function and relays its server-sent events. Paired arrows show requests and responses.
The documentation agent creates an OpenAI embedding of the query, retrieves matching content through the PostgreSQL match_embeddings function, and uses that content in an OpenAI chat completion.
This view follows the main AI route. Ticket services, Supabase Auth, and Realtime are separate application paths. A second agent implementation also exists inside the Next.js codebase.
This is source-level structure. The public demo shows sign-in only. Authenticated support, AI responses, and a fresh database setup remain unverified.
What's verified
Production build passes. Authenticated workflows are not verified.
Eyrie verified the production build on October 29, 2026 using placeholder service configuration. The live capture shows sign-in only. Tests are not green; authenticated support and AI workflows remain unverified.
What remains unverified
The public link shows sign-in only. The production build used placeholder service configuration and skips TypeScript and lint checks; those checks and the tests fail separately. The checked-in migrations are not a verified fresh-database setup. Login, ticket operations, and AI responses still need functional verification.
