Project Hub
Alerts are account-scoped
Alert rules, channels and delivery history belong to your stack. Sign in with GitHub to configure them — nothing is fillable or clickable until then.
📖 Vibe-Coding Glossary
You don't need a CS degree to ship. But some words come up in every AI chat, and knowing them makes the agent's answers dramatically better. Here's the vocabulary, in plain words, with the tiniest useful examples.
Your first prompt — start here
Copy this into your regular chatbot (ChatGPT, Claude, Gemini) — not into the coding agent (VS Code, Codex, Antigravity). The chatbot plans and teaches; the coding agent builds. Beginners lose weeks by pasting vague goals straight into the agent and letting it free-run.
Start here: the file that talks to your agent
When you start a project, AI agents (Claude Code, Cursor, Copilot) look for an instruction file in the repo root. It's usually called AGENTS.md or agent.md — a plain text file where you describe the project: what it is, what stack it uses, what rules the agent must follow ("always run tests before committing", "never edit the schema without asking"). Think of it as the sticky note on the fridge for your robot coworker. Write it on day one, keep it short, update it when the rules change — it's the cheapest way to stop repeating yourself in every chat.
GitHub — where code lives
A repo (repository) is a folder with your project plus its full history. A commit is a saved snapshot ("changed the pricing text"), a push uploads snapshots to GitHub, and a Pull Request proposes changes before they land. Even solo, use it: the history means you can always go back to yesterday's working version. Vibe-coding rule of thumb: commit after every feature that works — small, boring commits are the cheapest insurance in software.
Database — where data lives
Code forgets everything when it restarts. A database remembers. The common type is a relational database — think of a supercharged spreadsheet: tables (sheets), rows (entries), columns (fields). You ask it questions with SQL:
SELECT email, plan FROM users WHERE plan = 'free';That reads: "give me the email and plan of every user whose plan is 'free'". An ORM (like Prisma) lets your code do the same thing without writing SQL. Two flavors you'll meet: SQLite — the whole database is one file, perfect for small projects — and Postgres — the industry standard, hosted for you by services like Supabase or Neon. If you don't know which to pick: Postgres via Supabase, and don't look back.
Cron job — the alarm clock
A cron job is code that runs on a schedule without you. "Every day at 9:00, email my users their summary." "Every 5 minutes, ping my API and check it's alive." The schedule is written in a cryptic 5-field string you never need to memorize:
0 9 * * * → every day at 09:00
*/5 * * * * → every 5 minutes
0 0 * * 1 → every Monday at midnightYou'll meet crons as GitHub Actions (free for public repos), platform features (Vercel Cron, Cloudflare Cron Triggers), or hosted services (cron-job.org). The classic beginner trap: a cron that silently dies — you find out weeks later. That's exactly what heartbeat monitoring (and Frankenstack) exists for.
Domain — your address on the internet
A domain (frankenstack.app) is a name you rent from a registrar (Namecheap, Cloudflare, Porkbun — yearly, usually $10-15). DNS is the phonebook that turns the name into a server address: an A record points to an IP, a CNAME points to another name (this is how "myapp.vercel.app" becomes "myapp.com"). A subdomain is a free child you can point anywhere (blog.myapp.com). Rule of thumb: buy the domain the day you pick the name — cheap insurance against the name being taken.
The platforms, grouped by what they do
AGENTS.md — the ready-made template
What it is: a copy-paste instruction file you drop into your repo root as AGENTS.md. Coding agents (Claude Code, Cursor, Copilot, Codex) read it automatically at session start — it is how you tell your robot coworker the rules once, instead of repeating them in every chat.
What's inside: a fill-in Project section (name, stack, commands), standing rules (commit every session, verify deploys in production, never change the schema silently), a free-first tool policy, a structure for growing projects — the 3-layer architecture (Markdown SOPs in directives/, the agent as the routing layer, deterministic tools in execution/), a self-annealing loop (every bug updates the directive, so the system gets stronger) — and three pre-configured agent tools:
- vexp — context-aware code navigation: one
run_pipelinecall returns the files you need instead of opening them one by one. Runs entirely on your machine — free, no key. - Rafter — a security review gate: when your change touches auth, payments, input handling, SQL or files, the agent must run a security review before calling it done. Local secrets scan is free and offline; the deep scan asks for an API key once, and falls back to a manual review checklist if you don't have one.
- Ponytail — "lazy senior dev" mode: a ladder that prefers reuse, stdlib and one-liners over new dependencies and speculative abstractions — while never simplifying away validation, security or accessibility.
- 3-layer architecture — for when the project outgrows a single chat: SOPs in Markdown (
directives/), the agent routes between them, deterministic scripts do the work (execution/). Includes a self-anneal loop and a strict file layout (.tmp/never committed, secrets in.gitignore).
How the free-first rule works: the agent runs everything on the free tier by default. The first time a paid feature comes up, it asks you once ("Do you have an API key for this?"). If yes, it switches on the deeper mode and never asks again this session; if no, it does the free fallback, tells you clearly, and keeps going. Keys are read from environment variables only — never hardcoded, never echoed, never committed.
This glossary is growing. Next up: snippets we actually use (cron configs, Supabase keepalive, webhook handlers) and ready-made solutions from our own projects — linked right from here, so a beginner can copy working code instead of assembling it from forum posts. Want a term explained? open an issue.