Inspiration
What traice does
Turn messy browsing behavior into structured, synthesized intelligence.
traice is a Chrome Extension that runs silently in the background during a research session. It converts your browsing behavior—highlights, dwell times, pasted screenshots, and scraped prices—into a structured CSV decision matrix and a Markdown checklist the moment you end your session.
Instead of saving static bookmarks, traice captures your intent and stores it in a persistent, queryable semantic memory graph.
🏗️ Architecture & Tech Stack
traice is built on a highly optimized, four-layer architecture designed to keep the browser fast and the data secure:
- Capture (Chrome Extension):
- Monitors
mouseupevents for text highlights. - Runs a 15-second dwell timer to scrape visible text and lazy-loaded prices.
- Manages inactivity pauses and screenshot ingestion.
- Monitors
- Ingestion & Storage (Cloudflare):
- Workers: Acts as the edge API. The extension uses fire-and-forget fetch calls to ensure zero browser latency.
- KV: Acts as a temporary session buffer. Events stream here to protect against browser crashes (2-hour TTL).
- R2: Stores user-pasted screenshots and returns lightweight public URLs.
- AI Synthesis (Aedify):
- A Node.js/Express backend hosted effortlessly via Aedify.
- Formats the session payload into a behavioral narrative and prompts GPT-4o-mini to force-output a structured CSV matrix and actionable Markdown checklist.
- Persistent Knowledge Graph (Supermemory):
- The final synthesized output is pushed to Supermemory.
- Sessions are stored semantically, allowing users to query their past research (e.g., "What CRM tools was I comparing last week?").
🔒 Data Flow & Privacy
traice will not bloat your storage. Every research session is completely self-contained and identified by a unique UUID.
- Active Sessions: Data streams to Cloudflare KV. This is a temporary buffer, not a database.
- Session End: The Cloudflare Worker merges edge data with local extension data, forwards it to the Aedify backend for synthesis, and deletes the session from KV. Peak KV usage remains around ~200KB.
- Long-term Storage: The only place data persists is Supermemory, which is explicitly designed to handle long-term, semantic session recall. Screenshots accumulate in Cloudflare R2, remaining well within the generous 10GB free tier.
🚀 Setup & Installation
Please follow these steps in order so you are never blocked waiting on a credential.
Step 1: Cloudflare Configuration
- Install Wrangler:
npm install -g wranglerand runwrangler login. - Create the KV namespace:
wrangler kv:namespace create SESSION_STORE. Note the ID for yourwrangler.toml. - Create the R2 bucket:
wrangler r2 bucket create traice-screenshots. - Deploy the worker:
wrangler deploy. - In the Cloudflare Dashboard, go to R2 -> traice-screenshots -> Settings -> Public Access and enable it. Note the public URL domain.
Step 2: Aedify Backend Deployment
- Install the Aedify VS Code extension.
- Add the deployed Cloudflare Worker URL to the backend code (for CORS/routing).
- Ensure your
.envfile is listed in.gitignoreand.deployignore. - Deploy the backend via the Aedify VS Code extension.
- In the Aedify web console, set your environment variables:
OPENAI_API_KEYandSUPERMEMORY_API_KEY. Note the live Aedify URL.
Step 3: Supermemory Integration
- Create an account at Supermemory.ai and generate an API key.
- Ensure this key is added to your Aedify console environment variables. (Note: The push to Supermemory is asynchronous and non-blocking).
Step 4: Chrome Extension Setup
- In the extension source code, replace the placeholder URLs with your live Cloudflare Worker URL and R2 Public URL.
- Open Chrome and navigate to
chrome://extensions/. - Enable Developer mode (top right).
- Click Load unpacked and select the
traiceextension directory. - Start a session and begin researching!
How we built it
Grit & Grind & Love (aura)
Challenges we ran into
Back-end Deployment
Accomplishments that we're proud of
Our biggest technical hurdle was bypassing Chrome’s strict local storage limits by engineering a pipeline that streams raw screenshot data directly to Cloudflare R2, keeping the extension perfectly lightweight. We also built a zero-latency, fault-tolerant edge architecture using Cloudflare Workers and KV, ensuring that even if a user’s browser crashes mid-session, their continuous behavioral data is never lost. Finally, we successfully tamed chaotic, unstructured browsing data by building an Aedify backend that reliably forces an LLM to output a deterministic, perfectly formatted CSV matrix every single time.
What we learned
Aedify, Supermemory, Cloudflare
What's next for traice
Our immediate next step is building multiplayer collaborative sessions using WebSockets, allowing teams or partners to stream their browsing behavior into a single, shared decision matrix in real-time. We also plan to make our Supermemory integration proactive, meaning traice will automatically surface your past research the moment it detects you browsing a topic you've explored before. Long-term, we want to expand beyond the browser with a local desktop client that routes the synthesis payload to offline, on-device models for total enterprise privacy.
Log in or sign up for Devpost to join the conversation.