Automatically synced with your v0.app deployments
This repository will stay in sync with your deployed chats on v0.app. Any changes you make to your deployed app will be automatically pushed to this repository from v0.app.
Your project is live at:
https://v0-ai-bookmark-organizer.netlify.app
Continue building your app on:
https://v0.app/chat/projects/zItTXaLWcQE
- Create and modify your project using v0.app
- Deploy your chats from the v0 interface
- Changes are automatically pushed to this repository
- Netlify deploys the latest version from this repository
The app requires several environment variables to connect to Supabase and handle encryption keys.
- Copy
.env.exampleto.env.localand fill in the values. - In Netlify:
- Navigate to Site settings → Build & deploy → Environment.
- Add the following variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYAPP_KMS_MASTER_KEY- Optional:
NEXT_PUBLIC_DEV_SUPABASE_REDIRECT_URL - Optional:
NEXT_PUBLIC_SITE_URL
- Save the variables and trigger a new deploy.
The repository now ships with a Manifest V3 extension in chrome-extension/ that can sync bookmarks and reading list entries from Chrome.
- Clone/download this repository so the
chrome-extensionfolder is on disk. - Visit
chrome://extensions, enable Developer mode, and click Load unpacked. - Select the
chrome-extensiondirectory. The popup provides login and “Sync now” controls.
See public/chrome-extension/README.html for a step-by-step guide that can be shared with end users.
The extension posts bookmark payloads to POST /api/import-chrome. The handler validates URLs, ensures categories exist, fetches metadata, calls Gemini for summaries, and enqueues embeddings so the dashboard stays searchable. Requests must include a Supabase access token via Authorization: Bearer <token>.
POST /api/organizeaggregates recent bookmarks, clusters them into suggested categories with Gemini, and surfaces potential duplicates using embedding similarity.- The dashboard’s AI Suggestions tab lets users review the generated moves and apply them with one click.