Canvas Companion
macOS menu bar app · Electron, React, TypeScript, Tailwind CSS · 2026 - present · Built and packaged
The problem
Canvas buries the one thing students check most, what's due and when, behind clicks and tabs. I was tired of missing the forest for the login screens, so I built the view I wanted: every deadline, one glance, right in the menu bar.
What it does
- Syncs the Canvas REST and GraphQL APIs to surface assignments, submission status, and deadlines the moment the Mac wakes from sleep
- Schedules per-deadline notifications with configurable lead times and deduplication, so reminders fire when they're useful and never twice
- Buckets everything by urgency in a dashboard, with a fuse.js command palette for jumping to any course or assignment
- Dark and light mode
How it's built
The Electron build is hardened with context isolation, sandboxing, and a strict CSP. Your Canvas access token never touches a config file; it lives in the macOS Keychain. Core logic is covered by Vitest unit tests.
Beyond the code
I wrote the full PRD and TRD, made every design and UX call, and then took it past my own desk: I pitched UW IT Learning Technologies on institutional licensing for the entire 35,000+ student campus.
The repository is private. If you'd like a walkthrough, email me.