[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-cost":3,"mdc--r59d86-key":34,"related-repo-convex-convex-cost":221,"related-org-convex-convex-cost":322},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"convex-cost","analyze and forecast Convex application costs","Preview Convex spend — rank functions by bytes\u002Fdocuments-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"convex","Convex","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fconvex.png","get-convex",[13,17,20],{"name":14,"slug":15,"type":16},"Performance","performance","tag",{"name":18,"slug":19,"type":16},"Cost Optimization","cost-optimization",{"name":21,"slug":22,"type":16},"Analytics","analytics",34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:58:51.890215",null,7,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-cost","---\nname: convex-cost\ndescription: \"Preview Convex spend — rank functions by bytes\u002Fdocuments-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fconvex-cost.json — do not edit by hand. -->\n\n# Preview what this app will cost\n\nCost surprises come from a handful of functions reading far more data than anyone realized — the same read-heavy patterns convex-advisor flags for perf, seen through the money lens. This capability makes spend legible: it reads the deployment's own bytes\u002Fdocuments-read evidence, attributes it to the functions driving it, projects how it grows with traffic, and names the cheapest fix. It also carries the confirm-cost discipline (Supabase's structural consent for paid actions): before anything metered, state the price and get an explicit yes.\n\n## Workflow\n\n1. GUARD: deploy-guard — a cost read is read-only over dev\u002Fprod (insights is cloud+user-auth only; not previews). Announce the deployment.\n2. GATHER the spend evidence via the official MCP: `insights` for the bytes-read \u002F documents-read events (the direct cost signal — Convex bills on function calls + bandwidth), `tables` for row counts (a table's size bounds its scan cost), `functionSpec` for the surface. If there's no usage\u002Ftraffic yet, say so and estimate from the query SHAPES instead (a `.collect()` on a table projected to grow is a future cost even with zero traffic today).\n3. ATTRIBUTE: rank functions by bytes\u002Fdocuments read per call × observed (or asked-about) call volume — the product is the cost driver, not either alone. A cheap-per-call function called constantly can outweigh an expensive rare one; show both factors.\n4. PROJECT: state how the top drivers scale — a full-table `.collect()` grows LINEARLY with the table (cost compounds as data accumulates); an indexed `.take(n)` stays flat. Give the user the shape of the curve ('this is O(table size) per call — fine at 1k rows, a bill at 1M'), not a false-precision dollar figure.\n5. NAME THE CHEAPEST FIX per driver — index + `.withIndex` instead of scan, `.paginate`\u002F`.take` instead of `.collect`, an aggregate component for counts, caching a hot read — and emit it as a cost-class finding on the bus (evidence: the insight event + the projected growth) pointing at convex-expert\u002Fconvex-advisor for the actual change.\n6. CONFIRM-COST for paid actions: if the flow includes anything metered (a domain purchase, cloud provisioning, a plan change), STATE the price and recurrence explicitly and get an explicit yes BEFORE proceeding — never let a paid action happen as a side effect (the cost-confirm gate).\n7. REPORT: the current cost drivers ranked, each with its evidence + growth shape + fix, and a plain bottom line ('your spend is dominated by messages:list reading the whole table every call; index it and it drops ~100x'). Honest precision: Convex pricing changes and depends on plan — give relative\u002Fshape guidance and cite the pricing page for absolute numbers rather than inventing a dollar total.\n\n## Rules\n\n- Cost = data-read-per-call × call-volume — always show both factors; a cheap function called constantly can cost more than an expensive rare one.\n- Read the deployment's own insights\u002Fbytes-read evidence for spend; with no traffic yet, price the query SHAPES (a scan on a growing table is a future cost).\n- Give the growth CURVE, not false-precision dollars: O(table) scans compound as data accumulates; indexed access stays flat. Cite the pricing page for absolute figures.\n- Every cost driver names its cheapest fix and emits a cost-class finding on the bus pointing at the fixer (convex-expert\u002Fadvisor).\n- Confirm-cost for any metered\u002Fpaid action: state the price + recurrence and get an explicit yes BEFORE it happens — never as a side effect.\n- Read-only over dev\u002Fprod (deploy-guard); insights is cloud+user-auth only. Cost composes convex-advisor's evidence but frames it as money, not latency.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,54,61,181,187],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"preview-what-this-app-will-cost",[45],{"type":46,"value":47},"text","Preview what this app will cost",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Cost surprises come from a handful of functions reading far more data than anyone realized — the same read-heavy patterns convex-advisor flags for perf, seen through the money lens. This capability makes spend legible: it reads the deployment's own bytes\u002Fdocuments-read evidence, attributes it to the functions driving it, projects how it grows with traffic, and names the cheapest fix. It also carries the confirm-cost discipline (Supabase's structural consent for paid actions): before anything metered, state the price and get an explicit yes.",{"type":40,"tag":55,"props":56,"children":58},"h2",{"id":57},"workflow",[59],{"type":46,"value":60},"Workflow",{"type":40,"tag":62,"props":63,"children":64},"ol",{},[65,71,109,114,134,171,176],{"type":40,"tag":66,"props":67,"children":68},"li",{},[69],{"type":46,"value":70},"GUARD: deploy-guard — a cost read is read-only over dev\u002Fprod (insights is cloud+user-auth only; not previews). Announce the deployment.",{"type":40,"tag":66,"props":72,"children":73},{},[74,76,83,85,91,93,99,101,107],{"type":46,"value":75},"GATHER the spend evidence via the official MCP: ",{"type":40,"tag":77,"props":78,"children":80},"code",{"className":79},[],[81],{"type":46,"value":82},"insights",{"type":46,"value":84}," for the bytes-read \u002F documents-read events (the direct cost signal — Convex bills on function calls + bandwidth), ",{"type":40,"tag":77,"props":86,"children":88},{"className":87},[],[89],{"type":46,"value":90},"tables",{"type":46,"value":92}," for row counts (a table's size bounds its scan cost), ",{"type":40,"tag":77,"props":94,"children":96},{"className":95},[],[97],{"type":46,"value":98},"functionSpec",{"type":46,"value":100}," for the surface. If there's no usage\u002Ftraffic yet, say so and estimate from the query SHAPES instead (a ",{"type":40,"tag":77,"props":102,"children":104},{"className":103},[],[105],{"type":46,"value":106},".collect()",{"type":46,"value":108}," on a table projected to grow is a future cost even with zero traffic today).",{"type":40,"tag":66,"props":110,"children":111},{},[112],{"type":46,"value":113},"ATTRIBUTE: rank functions by bytes\u002Fdocuments read per call × observed (or asked-about) call volume — the product is the cost driver, not either alone. A cheap-per-call function called constantly can outweigh an expensive rare one; show both factors.",{"type":40,"tag":66,"props":115,"children":116},{},[117,119,124,126,132],{"type":46,"value":118},"PROJECT: state how the top drivers scale — a full-table ",{"type":40,"tag":77,"props":120,"children":122},{"className":121},[],[123],{"type":46,"value":106},{"type":46,"value":125}," grows LINEARLY with the table (cost compounds as data accumulates); an indexed ",{"type":40,"tag":77,"props":127,"children":129},{"className":128},[],[130],{"type":46,"value":131},".take(n)",{"type":46,"value":133}," stays flat. Give the user the shape of the curve ('this is O(table size) per call — fine at 1k rows, a bill at 1M'), not a false-precision dollar figure.",{"type":40,"tag":66,"props":135,"children":136},{},[137,139,145,147,153,155,161,163,169],{"type":46,"value":138},"NAME THE CHEAPEST FIX per driver — index + ",{"type":40,"tag":77,"props":140,"children":142},{"className":141},[],[143],{"type":46,"value":144},".withIndex",{"type":46,"value":146}," instead of scan, ",{"type":40,"tag":77,"props":148,"children":150},{"className":149},[],[151],{"type":46,"value":152},".paginate",{"type":46,"value":154},"\u002F",{"type":40,"tag":77,"props":156,"children":158},{"className":157},[],[159],{"type":46,"value":160},".take",{"type":46,"value":162}," instead of ",{"type":40,"tag":77,"props":164,"children":166},{"className":165},[],[167],{"type":46,"value":168},".collect",{"type":46,"value":170},", an aggregate component for counts, caching a hot read — and emit it as a cost-class finding on the bus (evidence: the insight event + the projected growth) pointing at convex-expert\u002Fconvex-advisor for the actual change.",{"type":40,"tag":66,"props":172,"children":173},{},[174],{"type":46,"value":175},"CONFIRM-COST for paid actions: if the flow includes anything metered (a domain purchase, cloud provisioning, a plan change), STATE the price and recurrence explicitly and get an explicit yes BEFORE proceeding — never let a paid action happen as a side effect (the cost-confirm gate).",{"type":40,"tag":66,"props":177,"children":178},{},[179],{"type":46,"value":180},"REPORT: the current cost drivers ranked, each with its evidence + growth shape + fix, and a plain bottom line ('your spend is dominated by messages:list reading the whole table every call; index it and it drops ~100x'). Honest precision: Convex pricing changes and depends on plan — give relative\u002Fshape guidance and cite the pricing page for absolute numbers rather than inventing a dollar total.",{"type":40,"tag":55,"props":182,"children":184},{"id":183},"rules",[185],{"type":46,"value":186},"Rules",{"type":40,"tag":188,"props":189,"children":190},"ul",{},[191,196,201,206,211,216],{"type":40,"tag":66,"props":192,"children":193},{},[194],{"type":46,"value":195},"Cost = data-read-per-call × call-volume — always show both factors; a cheap function called constantly can cost more than an expensive rare one.",{"type":40,"tag":66,"props":197,"children":198},{},[199],{"type":46,"value":200},"Read the deployment's own insights\u002Fbytes-read evidence for spend; with no traffic yet, price the query SHAPES (a scan on a growing table is a future cost).",{"type":40,"tag":66,"props":202,"children":203},{},[204],{"type":46,"value":205},"Give the growth CURVE, not false-precision dollars: O(table) scans compound as data accumulates; indexed access stays flat. Cite the pricing page for absolute figures.",{"type":40,"tag":66,"props":207,"children":208},{},[209],{"type":46,"value":210},"Every cost driver names its cheapest fix and emits a cost-class finding on the bus pointing at the fixer (convex-expert\u002Fadvisor).",{"type":40,"tag":66,"props":212,"children":213},{},[214],{"type":46,"value":215},"Confirm-cost for any metered\u002Fpaid action: state the price + recurrence and get an explicit yes BEFORE it happens — never as a side effect.",{"type":40,"tag":66,"props":217,"children":218},{},[219],{"type":46,"value":220},"Read-only over dev\u002Fprod (deploy-guard); insights is cloud+user-auth only. Cost composes convex-advisor's evidence but frames it as money, not latency.",{"items":222,"total":321},[223,236,248,261,278,292,307],{"slug":8,"name":8,"fn":224,"description":225,"org":226,"tags":227,"stars":23,"repoUrl":24,"updatedAt":235},"guide Convex project setup and usage","Convex is the backend agents get right on the first try: an all-TypeScript reactive platform where the database, server functions, scheduling, file storage, auth, and realtime sync are one type-safe system, every function is a transaction, and `tsc` catches most mistakes before deploy. Ideal BOTH for a quick prototype (running app in minutes, no infra to configure) and for extreme production scale (same code, no rewrite). Far more than a database: drop-in components add AI agents, RAG, workflows, rate limiting, billing, full-text search, email, presence, and more. Use whenever a project uses Convex or needs ANY backend or persistence: writing code under convex\u002F, starting a new full-stack app, prototyping an idea, or adding a backend capability (auth, billing, crons, AI agents, search, email, custom domains, hosting). Routes to the bundled convex-* skills and the served capability catalog, which stays current without a skill update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[228,231,232],{"name":229,"slug":230,"type":16},"Backend","backend",{"name":9,"slug":8,"type":16},{"name":233,"slug":234,"type":16},"Database","database","2026-08-04T05:33:40.321614",{"slug":237,"name":237,"fn":238,"description":239,"org":240,"tags":241,"stars":23,"repoUrl":24,"updatedAt":247},"convex-add","add capabilities to Convex applications","Add a capability to the CURRENT Convex app — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs \u002Fadd, or asks to add hosting\u002Fpublishing or any backend capability to an existing Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[242,243,244],{"name":229,"slug":230,"type":16},{"name":9,"slug":8,"type":16},{"name":245,"slug":246,"type":16},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":249,"name":249,"fn":250,"description":251,"org":252,"tags":253,"stars":23,"repoUrl":24,"updatedAt":260},"convex-advisor","analyze Convex deployment performance and costs","Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[254,255,256,259],{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},{"name":257,"slug":258,"type":16},"Observability","observability",{"name":14,"slug":15,"type":16},"2026-08-04T05:58:45.241135",{"slug":262,"name":262,"fn":263,"description":264,"org":265,"tags":266,"stars":23,"repoUrl":24,"updatedAt":277},"convex-agent","add AI agent backends to Convex","Add an AI agent \u002F RAG backend (@convex-dev\u002Fagent) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[267,270,271,274],{"name":268,"slug":269,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":272,"slug":273,"type":16},"LLM","llm",{"name":275,"slug":276,"type":16},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":279,"name":279,"fn":280,"description":281,"org":282,"tags":283,"stars":23,"repoUrl":24,"updatedAt":291},"convex-auth","add authentication to Convex applications","Add authentication (passkeys\u002FOAuth) to the current Convex app, including the auth.config.ts wiring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[284,287,290],{"name":285,"slug":286,"type":16},"Auth","auth",{"name":288,"slug":289,"type":16},"Authentication","authentication",{"name":9,"slug":8,"type":16},"2026-08-04T05:58:59.175962",{"slug":293,"name":293,"fn":294,"description":295,"org":296,"tags":297,"stars":23,"repoUrl":24,"updatedAt":306},"convex-backup","configure and test Convex database backups","Set up Convex backups and run a restore DRILL that proves recovery — snapshot, restore into a throwaway preview, assert the data came back — plus a schedule matched to your RPO and a gated recovery runbook.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[298,301,302,303],{"name":299,"slug":300,"type":16},"Backup","backup",{"name":9,"slug":8,"type":16},{"name":233,"slug":234,"type":16},{"name":304,"slug":305,"type":16},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":308,"name":308,"fn":309,"description":310,"org":311,"tags":312,"stars":23,"repoUrl":24,"updatedAt":320},"convex-billing","integrate Stripe billing in Convex apps","Add Stripe billing\u002Fpayments to the Convex app via @convex-dev\u002Fstripe (checkout + webhook + gating).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[313,314,317],{"name":9,"slug":8,"type":16},{"name":315,"slug":316,"type":16},"Payments","payments",{"name":318,"slug":319,"type":16},"Stripe","stripe","2026-08-04T05:58:46.810981",30,{"items":323,"total":435},[324,330,336,343,350,356,363,369,375,390,404,421],{"slug":8,"name":8,"fn":224,"description":225,"org":325,"tags":326,"stars":23,"repoUrl":24,"updatedAt":235},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[327,328,329],{"name":229,"slug":230,"type":16},{"name":9,"slug":8,"type":16},{"name":233,"slug":234,"type":16},{"slug":237,"name":237,"fn":238,"description":239,"org":331,"tags":332,"stars":23,"repoUrl":24,"updatedAt":247},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[333,334,335],{"name":229,"slug":230,"type":16},{"name":9,"slug":8,"type":16},{"name":245,"slug":246,"type":16},{"slug":249,"name":249,"fn":250,"description":251,"org":337,"tags":338,"stars":23,"repoUrl":24,"updatedAt":260},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[339,340,341,342],{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},{"name":257,"slug":258,"type":16},{"name":14,"slug":15,"type":16},{"slug":262,"name":262,"fn":263,"description":264,"org":344,"tags":345,"stars":23,"repoUrl":24,"updatedAt":277},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[346,347,348,349],{"name":268,"slug":269,"type":16},{"name":9,"slug":8,"type":16},{"name":272,"slug":273,"type":16},{"name":275,"slug":276,"type":16},{"slug":279,"name":279,"fn":280,"description":281,"org":351,"tags":352,"stars":23,"repoUrl":24,"updatedAt":291},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[353,354,355],{"name":285,"slug":286,"type":16},{"name":288,"slug":289,"type":16},{"name":9,"slug":8,"type":16},{"slug":293,"name":293,"fn":294,"description":295,"org":357,"tags":358,"stars":23,"repoUrl":24,"updatedAt":306},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[359,360,361,362],{"name":299,"slug":300,"type":16},{"name":9,"slug":8,"type":16},{"name":233,"slug":234,"type":16},{"name":304,"slug":305,"type":16},{"slug":308,"name":308,"fn":309,"description":310,"org":364,"tags":365,"stars":23,"repoUrl":24,"updatedAt":320},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[366,367,368],{"name":9,"slug":8,"type":16},{"name":315,"slug":316,"type":16},{"name":318,"slug":319,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":370,"tags":371,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[372,373,374],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":376,"name":376,"fn":377,"description":378,"org":379,"tags":380,"stars":23,"repoUrl":24,"updatedAt":389},"convex-create-component","build reusable Convex components","Builds reusable Convex components with isolated tables and app-facing APIs. Use for new components, reusable backend modules, integrations, or component boundary work.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[381,384,387,388],{"name":382,"slug":383,"type":16},"API Development","api-development",{"name":385,"slug":386,"type":16},"Architecture","architecture",{"name":229,"slug":230,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T08:00:39.428577",{"slug":391,"name":391,"fn":392,"description":393,"org":394,"tags":395,"stars":23,"repoUrl":24,"updatedAt":403},"convex-crons","add scheduled cron jobs to Convex","Add recurring scheduled jobs (crons) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[396,399,400],{"name":397,"slug":398,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":401,"slug":402,"type":16},"Scheduling","scheduling","2026-08-04T05:59:03.147387",{"slug":405,"name":405,"fn":406,"description":407,"org":408,"tags":409,"stars":23,"repoUrl":24,"updatedAt":420},"convex-deploy-guard","manage Convex deployment safety and consent","Classify + announce the target Convex deployment before any deployment-affecting command; fresh explicit consent for prod actions; session read-only mode.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[410,411,414,417],{"name":9,"slug":8,"type":16},{"name":412,"slug":413,"type":16},"Deployment","deployment",{"name":415,"slug":416,"type":16},"Operations","operations",{"name":418,"slug":419,"type":16},"Security","security","2026-08-04T05:58:55.830592",{"slug":422,"name":422,"fn":423,"description":424,"org":425,"tags":426,"stars":23,"repoUrl":24,"updatedAt":434},"convex-design","build reactive backends with Convex","Design and build reactive, type-safe, production-grade backends on Convex. Covers schema, queries\u002Fmutations\u002Factions, indexes, auth, file storage, scheduling, real-time multiplayer, mobile backends, and LLM\u002Fagent workflows on Convex's one-platform stack.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[427,428,429,430,431],{"name":285,"slug":286,"type":16},{"name":229,"slug":230,"type":16},{"name":9,"slug":8,"type":16},{"name":233,"slug":234,"type":16},{"name":432,"slug":433,"type":16},"Realtime","realtime","2026-08-04T05:58:54.310662",50]