May 2025 – Sept 2025 · Solo
SolAI Dashboard: An Operator Workspace for AI-Assisted Workflows
A three-column command center for the operator side of an AI assistant platform — email, scheduling, and task follow-up in one screen, backed by a full-stack TypeScript API.
Results
- Three-column operator dashboard shipped as a working MVP: templated email, multi-step meeting scheduling, and task/notification tracking in one screen
- Quick Compose modal with template picker, variable substitution, live preview, and an optional AI-polish toggle before send
- Full-stack TypeScript architecture (client/server/shared) with a clear seam between mocked provider actions and production integrations
- Deployment-ready for both a Node runtime and Netlify serverless functions
Stack
- React
- TypeScript
- Vite
- Express
- Supabase
- Tailwind CSS
- Radix UI
Step 1
One screen: actions, assistant, notifications
The three-column layout keeps the operator's whole job in view at once — trigger an action on the left, talk to the assistant in the center, watch what's coming up on the right — instead of switching between separate tools.
Step 2
Compose and send instantly
Quick Compose picks a template, fills in the recipient, and offers an optional AI-polish pass before anything goes out — a live preview stands between the operator and hitting send.
Step 3
Scheduling without back-and-forth
The scheduler pulls up the client, checks working hours and existing calendar items, and generates a set of proposable time slots — turning "when are you free" into a single guided step instead of an email chain.
Step 4
Follow-up stays visible
Tasks carry priority and due dates and persist on their own tab, so what the assistant or operator committed to doesn't disappear the moment the chat scrolls past it.
Step 5
A chat surface, ready to be the front door
The AI Assistant panel sits in the center of every view, timestamped and ready for natural-language input. Right now it's a chat surface rather than a router — sending a templated email or scheduling a meeting still goes through their own dedicated flows above, not through a message typed here. Wiring the chat to trigger those same actions directly is the natural next step.