Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
Web performance report from CRUX data
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @MaxwellCohenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗pnpm workspace containing the Next.js dashboard and the Void API (Cloudflare worker).
| Package | Path | Deploy |
|---|---|---|
| Web | apps/web | Vercel — root directory apps/web |
| API | apps/api | Void / Cloudflare — see below |
From the repo root:
pnpm install
pnpm dev:web # Next.js at http://localhost:3000
pnpm dev:api
Other root scripts: pnpm test, pnpm typecheck, pnpm build:web.
| App | Env file | Required variables |
|---|---|---|
apps/web | .env (see .env.example) | WORKER_URL, WORKER_API_KEY, NEXT_PUBLIC_POSTHOG_* |
apps/api | Cloudflare secrets (void secret put) | PAGESPEED_INSIGHTS_API, WORKER_API_KEY |
If you still have .env at the repo root from before the monorepo move, copy it to apps/web/.env.
apps/web)In the Vercel project for web-perf-reporting:
Root Directory — apps/web
Install Command (monorepo lockfile at repo root):
cd ../.. && pnpm install --frozen-lockfile
Build Command — pnpm build (runs in apps/web)
Environment variables — WORKER_URL (Void API, for example https://web-perf-report-api.<account>.workers.dev) and WORKER_API_KEY (same value as the API worker secret). The Google API key and Turso credentials stay on the API worker.
Ignored Build Step (optional):
git diff HEAD^ HEAD --quiet -- apps/web pnpm-lock.yaml pnpm-workspace.yaml package.json
apps/api)The API worker is a separate Cloudflare worker, web-perf-report-api. It reuses the existing KV namespace and api-results R2 bucket, stores CrUX history in a new D1 database, and queues Google PageSpeed and CrUX calls.
From apps/api, with the Void CLI logged into the same Cloudflare account:
pnpm --filter api dev
void secret put PAGESPEED_INSIGHTS_API
void secret put WORKER_API_KEY
pnpm --filter api import:history
void deploy --platform cloudflare
import:history copies Historical_Metrics from Turso into a local SQLite file and prints row counts. After the first deploy creates D1, load that file into the remote database with void db (or wrangler d1 execute) before pointing WORKER_URL at the new worker.
apps/web/README.md