Inspiration
Your best work happens with 40 tabs open across a few browsers. Research for one project, docs for another, a half-finished draft in a third window. Then a restart, a new laptop, or a switch between projects wipes it all out, and you spend the next 20 minutes rebuilding your own context from memory and browser history. Bookmarks don't fix this because nobody bookmarks 40 tabs by hand. We wanted your workspace to follow you instead of living in one window on one machine.
What it does
SunSight syncs your open tabs across every browser you use. Save a config in the app, and each browser with the Sunsight extension captures its open tabs and sends them to your account. That includes your laptop, your desktop, and your school or work computer. Open Sunsight on any device and your whole setup is there, with the URL, title, window, and pinned state of every tab. There's nothing to export and nothing to remember to do.
How we built it
The extension is a Manifest V3 Chrome extension. The backend is an API that stores tab snapshots in MongoDB.
When you save a config, the app creates a sync request. The browser you saved from captures its tabs instantly, because the web app messages the extension directly. Your other browsers pick up the request by polling on a timer and then capture their own tabs. Each browser gets a unique device ID at install, so snapshots from different machines stay separate and you can see which tab came from where.
Each extension signs in with its own revocable token, which you generate in the app's settings. We store only a hash of it, and we don't reuse your login session. Snapshots are idempotent, so if a request retries after a bad connection, it never creates duplicates. We also validate and cap every payload on the server.
Challenges we ran into
Chrome kills Manifest V3 service workers constantly, so we couldn't rely on long-lived connections or in-memory state. We switched to Chrome alarms and saved state, so a worker that restarts picks up exactly where it left off. Getting sync to work across browsers that might be offline, asleep, or on a bad network meant building a retry queue with backoff and a cap, so failures don't pile up or get lost.
Privacy was the other big one. Tab URLs and titles are personal, so we skip incognito windows and internal Chrome pages, limit the extension's permissions to the minimum, and show a consent screen explaining exactly what gets sent before anything leaves the browser.
Accomplishments that we're proud of
Saving a config in one browser captures tabs in all of your others, with no manual step. Every sync is safe to retry, and each device is tracked separately. The extension never sends a tab you didn't agree to share, and you can revoke access any time. We're also proud that it works as a real end-to-end loop: save in the app, capture in the extension, store in MongoDB, view on another device.
What we learned
Extensions are far more constrained than normal web apps, and you have to design around the browser killing your code at any moment. We also learned that good sync is mostly about handling retries, failures, and trust, not about the happy path. And with data this personal, privacy choices have to be built in from day one, not added at the end.
What's next for SunSight
One-click restore, so a saved workspace reopens in the right windows and tab groups. Tab group support, so your organization carries over. Sharing workspaces with teammates, so a researcher can hand a whole project setup to a collaborator. After that, Firefox and Safari extensions and search across all your saved snapshots.
Built With
- chrome-extensions-api
- esbuild
- javascript
- manifest-v3
- mongodb
- node.js
- typescript
- zod
- zoustang

Log in or sign up for Devpost to join the conversation.