Ecommerce Template
Modern ecommerce template built with Next.js 16, React 19, Drizzle, Better Auth, Supabase, and Stripe.
הסועד סורק את הקוד שעל השולחן ופשוט מדבר. קיודר לוקח את ההזמנה בכל שפה, בודק אלרגנים, מפצל את החשבון ומעדכן את המשמרת. הכסף עובר בסליקה שלכם.
Translation pending
CommerceJavaScript · CSSGitHub @qderaiOnlineOwner 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
A calm, real-time dashboard of your GitHub organisation: every commit, push and pull request, who made it (and with which AI agent), what changed and what shipped. Self-hosted on Cloudflare Workers + D1 or Node.
Taken from the repository README
Loading the full README.
Read the full README ↗Every commit, push and pull request across your GitHub organisation, as it happens: who made it (and with which AI agent), what changed, what is stuck, and what shipped. On one calm page that managers and engineers both read.
Big organisations push thousands of commits a day across hundreds of repositories. GitHub shows them one repository at a time, in screens built for the person who wrote the code. Track for Git puts the whole organisation on one timeline, in plain words, and stays fast and current while it does: GitHub's webhooks bring a push within seconds, and polling inside GitHub's rate limits fills in the rest.
It is free and open source (Apache-2.0). You host it yourself on Cloudflare Workers + D1 in a few minutes, or in Node or Docker anywhere else. It reads GitHub with read-only permissions. Your code activity stays in your own account, behind your own sign-in.
TIME_ZONE). Each one can also be read as a table.Light and dark, keyboard-navigable throughout, screen-reader labelled, built to WCAG 2.1 AA, English UI with every string in one file for translation. Every picture here comes from the built-in demo organisation: the people, the company and the code are made up.
Try it in one minute, with no token:
git clone https://github.com/qderai/track-for-git && cd track-for-git
npm run demo # http://localhost:8787: Acme, a made-up organisation, with commits arriving live
(Node 22.13 or later; there is nothing to install for the demo.)
Run it for your organisation: press Deploy to Cloudflare above, or:
npm install
npx wrangler login
npm run deploy # creates the D1 database, applies the migrations, deploys the Worker
Then follow the one-page setup: connect GitHub with a read-only GitHub App (or a fine-grained token), add the webhook, put the dashboard behind Cloudflare Access or "members of this organisation only" GitHub sign-in, and turn the demo off.
Not on Cloudflare? docker compose up, or node server/node.js: the same app on SQLite (built into Node), with
the same settings.
Inside an app you already run? Mount it at a path of that app with track-for-git/embed: the page, its API
and the sync on your own Worker, database and sign-in, with your own deploys on the timeline and a Live now tile.
See Inside an app you already run.
Track for Git recognises an AI agent by the marks agents already leave: its own account (copilot-swe-agent[bot],
devin-ai-integration[bot]), the Co-authored-by: trailer many agents add (Claude Code does by default), a footer such as "Generated with Claude Code", or, for a member's pull request, the branch prefix it uses
(claude/, codex/, cursor/). Names are matched whole, so Claude Monet and Devin Smith stay people. A branch
name is never evidence on a public fork.
Any other agent shows up under its own name when its commits carry one of these trailers:
Assisted-by: Acme Coder
Generated-by: Acme Coder
AI-Agent: Acme Coder
Your company's own agents, with their own accounts or addresses, go in the AGENTS setting:
[{ "id": "forge", "name": "Forge", "logins": ["forge-agent[bot]"], "emails": ["@agents.acme.example"], "names": ["Forge"], "branches": ["forge/"] }]
The six most common agents keep fixed colours, so a colour always means the same agent. Others share "Other agents"
in the charts but keep their own names everywhere else. The rules are in src/agents.js: a pull
request adding an agent is very welcome.
Qubi is the reviewer built into Track for Git. Give it your own model API key and a GitHub App of yours, switch it on in the dashboard's Qubi tab, and it:
It stays quiet about style. The prompt (src/qubi/prompt.js) asks for bugs and security holes
only, each with the file and line, a concrete failing input, what goes wrong, the fix and a severity, and tells the
model to read the callers and the validation in front of the code before it reports anything, to drop what it cannot
show a failing case for, and that finding nothing is a good result. Every finding must then quote its line word for
word: Qubi looks the quote up in the file at the reviewed commit and leaves out any finding whose quote is not there
(it also moves a finding to the right line when the model's line number was off). The review says how many it left
out.
Money. Every run has a cap, and so does every 7 days; pull requests from outside the organisation (forks,
strangers) have a smaller allowance of their own, per author and in total. The caps are checked on the server before
any run starts, each call to the model is limited to what the run's cap has left, and the cost is recorded after every
call, so a run that fails still counts. You set the caps in the dashboard, and the ceilings they cannot pass in the
environment (QUBI_MAX_RUN_USD, QUBI_MAX_WEEK_USD). With the defaults (Claude Haiku 5.5 for reviews, $0.25 a run,
$5 a week) a typical pull request review costs about a cent.
What it can touch. The model gets three tools: read a file, list a folder, and search the code, all at the reviewed commit. With a GitHub App, they read through a token minted for that one repository with read permissions only; posting the review, and opening a fix PR, use a second token after the model is done. Text from the pull request (its title, description, diff and code) reaches the model as material to review, never as instructions, and outside authors never get a fix PR. These measures reduce the room for prompt injection; they do not make a model's judgement infallible, so treat Qubi's findings and fixes as a reviewer's suggestions.
Set it up (the details are in docs/setup.md):
npx wrangler d1 migrations apply DB --remote # migration 0002 adds Qubi's tables (npm run deploy does this)
npx wrangler secret put QUBI_API_KEY # your Claude API key
npx wrangler secret put QUBI_GITHUB_APP_ID # a second GitHub App: Contents and Pull requests read & write
npx wrangler secret put QUBI_GITHUB_APP_PRIVATE_KEY
npx wrangler secret put QUBI_ADMINS # who may change Qubi and start paid runs: logins or emails
Qubi uses the dashboard's own webhook (pushes and pull requests), so its App needs no webhook of its own. The key is never shown in the page, in the API or in a log; the Qubi tab shows only whether it is set.
Which model. QUBI_PROVIDER picks the API, and the key is QUBI_API_KEY (or the provider's usual variable):
QUBI_PROVIDER | API | Models and prices |
|---|---|---|
anthropic (default) | Claude API | Built in: Claude Haiku 5.5, Sonnet 5.5, Opus 5.5, Fable 5.1 |
openai | OpenAI | You name them in QUBI_MODELS |
xai | xAI (Grok) | QUBI_MODELS |
gemini | Google Gemini (its OpenAI-compatible endpoint) | QUBI_MODELS |
mistral, deepseek, groq | Mistral, DeepSeek, Groq | QUBI_MODELS |
openrouter | OpenRouter: many providers behind one key | QUBI_MODELS |
openai-compatible | Anything else with OpenAI's Chat Completions: Ollama, vLLM, LM Studio, a gateway (QUBI_API_URL) | QUBI_MODELS |
QUBI_MODELS lists each model with its price in US dollars per million tokens, input/output and optionally cached
input, for example (made-up names and prices) QUBI_MODELS="model-large:3/15, model-small:0.3/0.5/0.075". The first is the default for reviews, the second for bug
hunts; a local model is free (llama3:0/0). Qubi does not run without prices, because the caps are only as good as
they are. Copy them from your provider's price page and update them when it changes.
Cursor has no model API of its own to point Qubi at (inside Cursor, "your own key" means Cursor calling your
provider), so it is not a QUBI_PROVIDER. Another API fits in one file (src/qubi/providers/):
a pull request adding one is welcome.
GitHub ──webhook (HMAC-SHA256)──▶ ┐
├──▶ Worker ──▶ D1 (metadata only) ──▶ the page (static, no framework)
GitHub ◀──GraphQL + REST, read-only, every minute──┘ └──▶ diffs on demand, cached, never stored
AUTH). With Cloudflare Access, the
Worker also verifies Access's signed token on every API request. With GitHub sign-in, membership is checked with the
dashboard's own credentials, and the person's GitHub token is dropped after sign-in.npm test # node:test, against real SQLite with the real migrations
npm run demo # the app on Node with the demo
npm run dev # the app on wrangler dev with a local D1 (DEMO=1 by default)
npm run screenshots # the README's pictures (needs playwright-core and Chrome)
npm run build:embed # after changing public/: src/embed-assets.js, the page for track-for-git/embed
src/ the Worker: app.js (routes), sync.js (polling), webhook.js, queries.js (the read side), agents.js,
auth.js, demo.js, embed.js (mounting inside another app), github/ (client, App sign-in, GraphQL,
payloads into rows)
public/ the page: no framework, no build; js/, styles.css, locales/en.js (every word)
server/ Node and Docker
migrations/ D1 / SQLite schema
To translate the page, copy public/locales/en.js, translate the values, and add the language in public/js/i18n.js.
Apache-2.0, copyright 2026 Qder AI. See LICENSE and NOTICE. The Qder.ai name and logo are trademarks of Qder AI and are not covered by the license.
Track for Git is not affiliated with or endorsed by the Git project or GitHub. Git is a trademark of the Software Freedom Conservancy; GitHub is a trademark of GitHub, Inc.