Sherlock is a static Vite application that deploys cleanly to Vercel with no server database required. Workspace and artifact data live entirely in the visitor’s browser via SQLite over IndexedDB, and API keys stay browser-local when users add them through Settings → Runtime. This makes Vercel an ideal host — you get global CDN delivery and zero backend infrastructure to manage.Documentation Index
Fetch the complete documentation index at: https://sherlock-osint.vercel.app/docs/llms.txt
Use this file to discover all available pages before exploring further.
How the deployment works
Sherlock builds to a standard staticdist/ directory. The repo includes a vercel.json that configures the build commands and ensures all page routes work correctly for direct navigation and bookmarked links.
The
vercel.json at the repo root handles routing automatically. If you configure the build manually in the Vercel dashboard, set install command to npm ci --include=optional, build command to npm run build, and output directory to dist.Deploying to Vercel
Import the GitHub repository
Go to vercel.com and click Add New Project. Select the Sherlock GitHub repository. Vercel will detect the
vercel.json configuration automatically.Review build settings
Vercel reads the build configuration from
vercel.json. You should see install command npm ci --include=optional, build command npm run build, and output directory dist. No manual changes are needed.Configure the tldraw license key (optional)
If your deployment uses Sherlock’s research board feature (powered by tldraw 4.x), add
VITE_TLDRAW_LICENSE_KEY as an environment variable in the Vercel project settings before deploying. This is an app-level license for the canvas SDK — it’s different from the AI provider API keys.Leave provider API keys unset for public BYOK hosting
For a public or shared deployment where each visitor uses their own AI provider account, do not set
VITE_GEMINI_API_KEY, VITE_OPENROUTER_API_KEY, VITE_OPENAI_API_KEY, or VITE_ANTHROPIC_API_KEY in Vercel. Each visitor will add their own key in Settings → Runtime after the site loads.Add a demo workspace seed (optional)
If you want first-time visitors to land in a pre-seeded demo workspace, place a workspace backup JSON file at
public/seeds/demo-workspace.json in the repository before deploying. Sherlock will auto-import it once for any browser profile that visits with an empty workspace.Environment variables
Important notes
Preview URLs have isolated storage Each Vercel preview URL is a separate browser origin. Workspace data and API keys stored onpreview-xyz.vercel.app are completely separate from data on your production domain. This is useful for testing — you can use a preview deployment without touching production data.
Redeploying does not wipe user data
Deploying a new version to the same domain does not clear visitors’ browser storage. Their workspaces, artifacts, and saved keys persist across redeployments unless they explicitly clear their browser data or use the Delete Data action in Settings.
VITE_TLDRAW_LICENSE_KEY is not a provider API key
The tldraw license key is an SDK license for the board canvas feature. It’s configured at deploy time in Vercel (or in .env.local for local development) rather than entered in Settings → Runtime like provider API keys. You only need it if you’re using the research board surface.
Alternative static hosts
Because Sherlock outputs a standarddist/ directory from Vite, it deploys to any static hosting platform that supports SPA routing. You’ll need to configure a catch-all rewrite rule (equivalent to the one in vercel.json) on whatever platform you use:
- Netlify — add a
_redirectsfile with/* /index.html 200 - Cloudflare Pages — add a
_routes.jsonor configure custom headers - GitHub Pages — requires a workaround for SPA routing (a 404.html copy of index.html)
