canvascope ecosystem
student-centered lms layer over canvas: search across assignments, files, modules, pages, announcements, pdfs, and course context, with privacy-first local indexing and opt-in sync. expanding into lectra, dropbridge, ipad annotation, and assignment workflows.
- manifest v3
- chrome extension
- supabase
- ios
- semantic search
- startup
canvascope started as a single chrome extension i shipped from my dorm, because i could not find a single screen of everything happening across my canvas course shells. the larger thesis is a student-first interface over an lms that was mostly designed around instructors and admins: assignments, files, modules, pages, announcements, due dates, pdfs, and course context should feel like one academic workspace.
the product direction is intent-based search, not just keyword search. a student asking for “physics lab this week” should surface the lab file, assignment, module item, and relevant due date even when canvas organizes them badly. the entire pipeline — fuzzy search over assignments, semantic retrieval over course materials using embeddings, even the cross-device sync layer — runs local-first. nothing leaves the browser unless the user opts into supabase sync for handoff between devices.
architecture
- manifest v3 extension architecture built around permission minimization, service workers, chrome storage, alarms, active tab access, scripting, and scoped host permissions across real canvas domains.
- fuzzy index built incrementally in the service worker as canvas pages are visited; n-gram tokenization tuned for academic strings (course codes, due dates, file types).
- semantic layer uses sentence-transformer embeddings stored in indexeddb with cosine similarity over a top-k window.
- sync is opt-in only; supabase row-level security scoped per user, no shared keys, no telemetry. all uploads happen inside a single edge function that strips identifying metadata.
- lectra is a sibling extension that overlays a pdf annotator with text-layer aware highlight persistence — survives canvas’s cdn-rewritten urls.
- dropbridge is a third tool that turns any device with a browser into a temporary airdrop target via webrtc with a 6-digit code.
- ipad companion uses pencilkit for native apple pencil ink, syncing annotations into the same supabase namespace.
trust model
- designed around a local-first privacy model where course indexing and search happen with minimal exposure of student academic data.
- prioritized security and permission minimization even when it made implementation slower: no blanket telemetry, no broad data collection, and clear separation between local search and opt-in sync.
- worked through chrome web store privacy and compliance requirements, permission justifications, host permission design, and extension review constraints.
- built against real-world canvas deployments including berkeley bcourses, ucla bruin learn, ucsd canvas, asu canvas, mit canvas, and other instructure instances.
startup direction
canvascope is the wedge into a student-centered academic operating system: canvas search, assignment syncing, pdf annotation, ipad workflows, cross-device handoff, and eventually calendar/email-aware student planning. the product strategy is grounded in student pain, campus expansion, retention, and the fact that every university has the same fragmented course workflow.
scale
canvascope is currently in use across 10+ university domains with sub-50ms search latency on a 5-year course history. the entire production stack costs less than $5/month.