deploy-vercel
Skill0 starsChanged 4 months agoMITView on GitHub
Optional wizard to put the Claude Code Time Tracker online as a private, magic-link-gated dashboard on Vercel, fed by your real data. Walks through deploying the app (Vercel CLI or dashboard), turning on passwordless email login (Resend + an email allowlist), wiring private Vercel Blob storage, and scheduling the hourly push that sends your local report up. Run when the user types /time-tracker:deploy-vercel, or says "host the time tracker", "deploy the dashboard to Vercel", "put my time tracker online", "share my dashboard with a login". Local use needs none of this - it's purely for a hosted copy.
- Reads credentials
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- prinx/agentstheir own version, first seen Oct 20, 2026
- ultimatethemedev-bit/claude-vitrine-kittheir own version, first seen Sep 20, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- prinx/agents★ 0same name
- ultimatethemedev-bit/claude-vitrine-kit★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 42
Check for the Vercel CLI: vercel --version.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deploy to Vercel - a private, hosted dashboard
Stand up an online copy of the dashboard, gated behind a passwordless magic-link login
(only emails you allow can sign in), showing your real data. Because a Vercel server has no
~/.claude folder, real data gets there by a small hourly push from this machine to private
Vercel Blob storage; the hosted app reads it server-side, behind the login. With no data
pushed yet, the site shows the bundled demo.
This is entirely optional. If the user just wants the dashboard for themselves, point them at
/time-tracker:launch instead and stop.
Secret-handling boundary. You (Claude) orchestrate the deploy and set non-secret config (the generated
AUTH_SECRET, the email allowlist, the app URL). The user enters their own credentials - the Resend API key and anything from their Vercel/Resend accounts - into the Vercel dashboard or viavercel env addthemselves. Never ask the user to paste an API key into the chat, and never echo a secret back.
The pieces
| Env var | Where | What it does |
AUTH_SECRET | Vercel (Production) | Turns on the login gate; signs the magic-link/session tokens. You generate it. |
ALLOWED_EMAILS | Vercel (Production) | Comma-separated allowlist - only these addresses can sign in. |
RESEND_API_KEY | Vercel (Production) | Sends the login email via Resend. User supplies. |
MAGIC_FROM | Vercel (Production, optional) | From-address for the login email. Defaults to Resend's sandbox onboarding@resend.dev, which only delivers to your own Resend account email - fine for solo use; verify a domain in Resend to email others. |
APP_URL | Vercel (Production, optional) | Your prod URL (e.g. https://<app>.vercel.app) so magic links point at prod. |
BLOB_READ_WRITE_TOKEN | Auto on Vercel; manual locally | Read/write the private report Blob. Vercel injects it when you connect a Blob store; the local push needs a copy. |
How to run
Walk these steps interactively. Confirm before anything irreversible (creating the Vercel project, deploying, scheduling a job).
1. Preflight
- The deployable app is the local copy at
APP_DIR="${CCTI_APP_DIR:-$HOME/.claude-time-tracker}"(from/time-tracker:setup). If it's missing, run/time-tracker:setupfirst. - Check for the Vercel CLI:
vercel --version. If absent, eithernpm i -g vercel(ask first) or use the Dashboard path in step 3. - Confirm the user has (or will make) free accounts at vercel.com and resend.com.
2. Generate the auth secret (non-secret orchestration)
openssl rand -hex 32Hold this value for step 4's AUTH_SECRET. (It's freshly generated, not a user credential.)
3. Create the project & first deploy
CLI path (recommended - no GitHub needed):
cd "$APP_DIR"
vercel link # create/link a Vercel project (interactive; the user picks scope/name)
vercel deploy # a preview build to confirm it compilesDashboard path (no CLI):
- Fork
github.com/ewebdzine/claude-code-time-trackerto the user's GitHub, then in Vercel: Add New → Project → Import that fork. Framework autodetects as Next.js. Deploy once.
4. Turn on the login gate + email (env vars)
Set these on the Production environment. Non-secrets you can set directly; the user enters
RESEND_API_KEY themselves.
CLI (each command prompts for the value on stdin - not echoed):
vercel env add AUTH_SECRET production # paste the hex from step 2
vercel env add ALLOWED_EMAILS production # e.g. you@example.com,teammate@example.com
vercel env add APP_URL production # your https://<app>.vercel.app
# USER runs this one with their Resend key:
vercel env add RESEND_API_KEY production
# optional, only if they verified a sending domain in Resend:
vercel env add MAGIC_FROM production # e.g. login@theirdomain.comDashboard: Project → Settings → Environment Variables → add the same keys for Production.
Resend key: the user creates it at resend.com → API Keys. For solo use they can skip domain verification and rely on the sandbox sender (delivers only to their Resend account email).
5. Connect private Blob storage
- Vercel dashboard → the project → Storage → Create Database → Blob → connect it to the
project. Vercel automatically adds
BLOB_READ_WRITE_TOKENto the project's env - do not set it by hand. The app already reads/writes this store withaccess: "private", so the report is never public.
6. Redeploy to production
cd "$APP_DIR" && vercel deploy --prod(Or Redeploy in the dashboard so the new env vars take effect.) Then visit the URL: you should hit the login screen; an allowed email gets a magic link; the dashboard shows the demo until step 7 pushes real data.
7. Schedule the hourly push (real data)
The hosted app only shows your data once this machine pushes it. The push needs the Blob token locally:
- Get the token:
cd "$APP_DIR" && vercel env pull .env.local(writesBLOB_READ_WRITE_TOKENinto.env.local), or copy it from the dashboard into$APP_DIR/.env.local. - The push command (score first if the user wants prompt-health, then upload - both read local
logs, only derived numbers leave the machine):
cd "$APP_DIR" npm run score-sessions -- --new # optional; needs ANTHROPIC_API_KEY in .env.local npm run push-blob # uploads the report to private Blob - Schedule it hourly:
- macOS/Linux (cron):
crontab -e, add0 * * * * cd $HOME/.claude-time-tracker && /usr/bin/env npm run push-blob >> $HOME/.claude-time-tracker/push.log 2>&1(prepend thescore-sessionsline if scoring). Load env from.env.localin the command or a wrapper script so the token is present. - Windows: Task Scheduler → hourly task running the same
npm run push-blobinAPP_DIR.
- macOS/Linux (cron):
- Confirm: run the push once by hand, reload the hosted dashboard, and verify real data appears (not the demo).
8. Report
Give the user: the URL, who's on the allowlist, that login is magic-link only, that
Blob is private and only derived metrics (timestamps, token counts, tool names, ratings -
never code or prompts) are uploaded, and that data refreshes hourly via the scheduled push.
Note they can add/remove people later by editing ALLOWED_EMAILS and redeploying.
Notes
- Nothing here affects local use. The gate only activates when
AUTH_SECRETis set, which is only on the hosted deploy -/time-tracker:launchstays open and keyless. - Privacy. Prompt-health scoring runs on this machine (needs
ANTHROPIC_API_KEY); only the resulting ratings are pushed. Message content and code never leave the machine. - Costs. Vercel Hobby, Vercel Blob, and Resend all have free tiers that comfortably cover a personal dashboard.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

