Vercel Templates — submission readiness·
Owner decision D-006: make it submission-ready, do not submit. The charter's URL for the template
docs (vercel.com/docs/deployments/templates) returns 404 as of 2026-09-15; the live sources are
https://vercel.com/templates/submit (form + requirements) and https://vercel.com/docs/deploy-button
(button query parameters). Checked against both on 2026-09-15.
Requirements stated on the submission page·
| # | Requirement (verbatim gist) | Status | Evidence |
|---|---|---|---|
| 1 | Public GitHub repository URL | BLOCKED — owner | repo is private (D-003); the button URL in the README already names cagataycali/tiny-vercel and works the moment it is public |
| 2 | Next.js templates must use App Router | DONE | apps/web/app/* only, no pages/ |
| 3 | Adhere to Vercel best practices | DONE (self-assessed) | Node 22, vercel.json with framework + monorepo install/build, maxDuration declared for the streaming route, env-driven configuration, no secrets in repo (gitleaks in CI) |
| 4 | Working demo deployed on Vercel | DONE | https://tiny-vercel-scratch.vercel.app (project tiny-vercel-scratch, docs/PROVISIONED.md); /api/health ok, anonymous chat streams. Authenticated flows wait for the GitHub OAuth App (D-010) |
| 5 | README includes a Vercel Deploy button | DONE | README first block; URL carries root-directory=apps/web, env= (10 keys), envDescription, envLink → docs/DEPLOY.md, demo-* card |
| 6 | Visually appealing design following Vercel's Web Interface Guidelines | PARTIAL | UI ported 1:1 from production (glass theme, light/dark, mobile-first). Not audited against the guidelines document yet — see "Before submitting" |
| 7 | Template name (≤ ?) and description ≤ 140 chars | READY | name tiny-vercel; description: "Start your own tiny.technology: personal AIs, devices, memory, passkeys — on Vercel + Cloudflare." (98 chars) |
| 8 | Thumbnail: PNG/JPEG/WebP, aspect between 1:1 and 1600:630, ≥ 630 px tall, no EXIF | TODO | make a 1600×840 screenshot of the demo home page once sign-in works; strip EXIF (exiftool -all=) |
| 9 | Repository details: owner / repo / branch / path | READY | cagataycali / tiny-vercel / main / apps/web |
| 10 | Filters | READY | Use case: AI · Framework: Next.js · CSS: Tailwind · Database: other (Cloudflare D1) · Authentication: other (GitHub OAuth + WebAuthn) |
| 11 | Advanced: custom build / install command | READY | in apps/web/vercel.json, not needed in the form |
| 12 | Integrations (optional) | none | Upstash could be listed for rate limiting (optional feature) — decide at submission |
| 13 | Required environment variables + description + docs URL | READY | same 10 keys as the button; docs URL docs/DEPLOY.md |
| 14 | Publisher name + contact email | owner | not recorded here on purpose |
Deploy-button parameters used (docs/deploy-button)·
repository-url, project-name, repository-name, root-directory (monorepo; also used by Vercel's own
vercel/examples monorepo templates), env, envDescription, envLink, demo-title,
demo-description, demo-url, demo-image. No envDefaults: the docs say defaults are for
non-sensitive values only and every key we ask for is either a secret or deployment-specific.
NEXT_PUBLIC_APP_URL is deliberately not in the list — it is unknown until the first deploy and the
app falls back to the request origin until it is set (docs/DEPLOY.md step 5).
Before submitting (owner + one more loop iteration)·
- Flip the repository public (D-003) — or fork/mirror to a public repo and update
repository-url. - Create the GitHub OAuth App for the demo (D-010) so the demo's sign-in works for reviewers.
- Walk the README button yourself once on a clean Vercel account; time it (target ≤ 15 min).
- Thumbnail (row 8) + a pass over https://vercel.com/design/guidelines for row 6.
- Decide integrations (row 12) and the publisher contact (row 14).
- Submit at https://vercel.com/templates/submit.