CASE STUDY
Chief of Staff
A self-hosted AI chief of staff for your inbox and calendar
ROLE
Creator / Fullstack Engineer
PLATFORM
Web
FOCUS
AI · Productivity
STATUS
Shipped
The Real Problem
A lot of what I owe people lives in my inbox. I tell someone I'll send something by Friday, a meeting ends with a decision, or a reply has been waiting on me since Tuesday. These things get lost. The AI assistants I tried either forgot them or started doing things for me without asking.

The Approach
I wanted one clear list of what I owe people and what they owe me, pulled from my email and meetings, and an assistant that can help but never sends anything I haven't approved.
Chief of Staff connects to Gmail or Outlook, Google or Microsoft calendars, and Attio. It reads new mail and meeting notes and pulls out tasks, promises, replies you owe, things you are waiting on and decisions. Each item links back to where it came from, so you can always check. You can talk to it in the web app by typing or by voice, from ChatGPT, or through n8n. It writes a short briefing every morning and evening, and gets you up to speed before each meeting. You run it on your own server, so your mail stays with you.

What I Built
- A backend that syncs mail, calendars and Attio, and turns messages and meeting notes into tasks, promises and replies owed
- A job queue that runs on the same database as everything else, so there is one less service to host and look after
- Approvals tied to the exact action you agreed to. Each one runs once, exactly as approved.
- A ChatGPT connection with proper sign-in, plus signed webhooks for n8n
- A web app with an assistant you can type or talk to, and morning, evening, weekly and meeting-prep briefings

What Changed
- Every item links back to the email, note or meeting it came from
- You decide which actions need your approval, which run on their own and which are off limits, and every action that reaches other people is logged
- Login tokens and secrets are encrypted, and the keys can be rotated
- The parts that matter most are tested against a real database: keeping each person's data separate, and making sure an approval can't be used twice
