Video in the works
Nexus
Signing in with Google and running the daily briefing.

About the project
Sign in with Google and let one assistant work across your Gmail, Calendar, Drive, Tasks and Forms. The Google side works; the AI chat on top was never connected.
Nexus was meant to be one AI assistant for your whole Google Workspace: ask it to find an email, schedule an interview with a Meet link, or give you a morning briefing, and it would use Gmail, Calendar, Drive, Tasks and Forms for you.
I built the Google side in one day: sign-in with offline access, a service for each API, and two combined workflows. The AI chat that would call them as tools was never connected, because the TermiX dashboard work took over two days later.
How it works
Sign in once
Sign in with Google. Tokens are stored and refreshed automatically.
Your Workspace
Gmail (search, send, drafts, attachments), Calendar (Meet links, free slots), Drive, Tasks and Forms.
Interview scheduler
Creates a Meet event, then a feedback form, then sends the email.
Daily briefing
Pulls today's events, tasks and unread mail at the same time.
Planned, not built
An AI chat that calls all of this as tools.
Under the hood
- Login
- NextAuth with Google offline access, tokens in Postgres through Prisma.
- Services
- One per Google API, each set up on first use.
- UI
- Next.js 15: dashboard, workspace and chat pages.
What I did
- Planned it in four sprints: Google sign-in, Workspace APIs, AI tool calling, then workflows and billing
- Google sign-in with offline access to Gmail, Calendar, Drive and Tasks, with each user's tokens stored safely
- One service per Google API: Gmail (search, send, drafts, attachments), Calendar (Meet links, free-slot finder), Drive, Tasks and Forms
- Two combined flows: an interview scheduler (Meet event, then feedback form, then email) and a daily briefing (events, tasks and unread mail in parallel)
- Sign-in, dashboard and workspace pages, and a chat screen
What was new
- Google OAuth with offline access across five Workspace APIs, saving refreshed tokens automatically
- Creating Meet links and finding free slots from calendar data
- Chaining several Google APIs into one workflow, as groundwork for AI tool calling
Problems I hit, and how I fixed them
Google returned an extra token field the database model didn't expect, and sign-in failed.
Fix Strip it before saving the account.
Each service needs a database lookup to build its Google client, which a constructor can't do.
Fix A lazy initialise step at the start of every method.
Access tokens expire.
Fix Listen for token refresh events and write the new tokens back.
Why it stopped: the AI chat was never wired up.
Fix Not fixed. Two days later the TermiX dashboard work took over.
Screenshots
Screenshots in the works
Real screens from Nexus go here.