[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-crons":3,"mdc--d17evs-key":32,"related-org-convex-convex-crons":109,"related-repo-convex-convex-crons":278},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"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},"convex","Convex","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fconvex.png","get-convex",[13,15,18],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Automation","automation",{"name":19,"slug":20,"type":14},"Scheduling","scheduling",34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:59:03.147387",null,7,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-crons","---\nname: convex-crons\ndescription: \"Add recurring scheduled jobs (crons) to the Convex app.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fcrons.json — do not edit by hand. -->\n\n# Add scheduled jobs (crons)\n\nDefine recurring jobs in convex\u002Fcrons.ts targeting internal functions, with sane intervals and idempotent handlers.\n\n## Workflow\n\n1. Create convex\u002Fcrons.ts with cronJobs().\n2. Schedule internal functions (never public api.*) at the right interval.\n3. Make handlers idempotent (safe to re-run); keep each run small.\n4. Verify the job appears in the dashboard schedule.\n\n## Rules\n\n- Schedule internal.* functions, never api.*.\n- Keep cron handlers small + idempotent.\n- Don't poll tight intervals for things a subscription can push.\n",{"data":33,"body":34},{"name":4,"description":6},{"type":35,"children":36},"root",[37,46,52,59,84,90],{"type":38,"tag":39,"props":40,"children":42},"element","h1",{"id":41},"add-scheduled-jobs-crons",[43],{"type":44,"value":45},"text","Add scheduled jobs (crons)",{"type":38,"tag":47,"props":48,"children":49},"p",{},[50],{"type":44,"value":51},"Define recurring jobs in convex\u002Fcrons.ts targeting internal functions, with sane intervals and idempotent handlers.",{"type":38,"tag":53,"props":54,"children":56},"h2",{"id":55},"workflow",[57],{"type":44,"value":58},"Workflow",{"type":38,"tag":60,"props":61,"children":62},"ol",{},[63,69,74,79],{"type":38,"tag":64,"props":65,"children":66},"li",{},[67],{"type":44,"value":68},"Create convex\u002Fcrons.ts with cronJobs().",{"type":38,"tag":64,"props":70,"children":71},{},[72],{"type":44,"value":73},"Schedule internal functions (never public api.*) at the right interval.",{"type":38,"tag":64,"props":75,"children":76},{},[77],{"type":44,"value":78},"Make handlers idempotent (safe to re-run); keep each run small.",{"type":38,"tag":64,"props":80,"children":81},{},[82],{"type":44,"value":83},"Verify the job appears in the dashboard schedule.",{"type":38,"tag":53,"props":85,"children":87},{"id":86},"rules",[88],{"type":44,"value":89},"Rules",{"type":38,"tag":91,"props":92,"children":93},"ul",{},[94,99,104],{"type":38,"tag":64,"props":95,"children":96},{},[97],{"type":44,"value":98},"Schedule internal.* functions, never api.*.",{"type":38,"tag":64,"props":100,"children":101},{},[102],{"type":44,"value":103},"Keep cron handlers small + idempotent.",{"type":38,"tag":64,"props":105,"children":106},{},[107],{"type":44,"value":108},"Don't poll tight intervals for things a subscription can push.",{"items":110,"total":277},[111,124,136,153,170,184,199,213,225,240,246,263],{"slug":8,"name":8,"fn":112,"description":113,"org":114,"tags":115,"stars":21,"repoUrl":22,"updatedAt":123},"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},[116,119,120],{"name":117,"slug":118,"type":14},"Backend","backend",{"name":9,"slug":8,"type":14},{"name":121,"slug":122,"type":14},"Database","database","2026-08-04T05:33:40.321614",{"slug":125,"name":125,"fn":126,"description":127,"org":128,"tags":129,"stars":21,"repoUrl":22,"updatedAt":135},"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},[130,131,132],{"name":117,"slug":118,"type":14},{"name":9,"slug":8,"type":14},{"name":133,"slug":134,"type":14},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":137,"name":137,"fn":138,"description":139,"org":140,"tags":141,"stars":21,"repoUrl":22,"updatedAt":152},"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},[142,143,146,149],{"name":9,"slug":8,"type":14},{"name":144,"slug":145,"type":14},"Cost Optimization","cost-optimization",{"name":147,"slug":148,"type":14},"Observability","observability",{"name":150,"slug":151,"type":14},"Performance","performance","2026-08-04T05:58:45.241135",{"slug":154,"name":154,"fn":155,"description":156,"org":157,"tags":158,"stars":21,"repoUrl":22,"updatedAt":169},"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},[159,162,163,166],{"name":160,"slug":161,"type":14},"Agents","agents",{"name":9,"slug":8,"type":14},{"name":164,"slug":165,"type":14},"LLM","llm",{"name":167,"slug":168,"type":14},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":171,"name":171,"fn":172,"description":173,"org":174,"tags":175,"stars":21,"repoUrl":22,"updatedAt":183},"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},[176,179,182],{"name":177,"slug":178,"type":14},"Auth","auth",{"name":180,"slug":181,"type":14},"Authentication","authentication",{"name":9,"slug":8,"type":14},"2026-08-04T05:58:59.175962",{"slug":185,"name":185,"fn":186,"description":187,"org":188,"tags":189,"stars":21,"repoUrl":22,"updatedAt":198},"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},[190,193,194,195],{"name":191,"slug":192,"type":14},"Backup","backup",{"name":9,"slug":8,"type":14},{"name":121,"slug":122,"type":14},{"name":196,"slug":197,"type":14},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":200,"name":200,"fn":201,"description":202,"org":203,"tags":204,"stars":21,"repoUrl":22,"updatedAt":212},"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},[205,206,209],{"name":9,"slug":8,"type":14},{"name":207,"slug":208,"type":14},"Payments","payments",{"name":210,"slug":211,"type":14},"Stripe","stripe","2026-08-04T05:58:46.810981",{"slug":214,"name":214,"fn":215,"description":216,"org":217,"tags":218,"stars":21,"repoUrl":22,"updatedAt":224},"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},[219,222,223],{"name":220,"slug":221,"type":14},"Analytics","analytics",{"name":144,"slug":145,"type":14},{"name":150,"slug":151,"type":14},"2026-08-04T05:58:51.890215",{"slug":226,"name":226,"fn":227,"description":228,"org":229,"tags":230,"stars":21,"repoUrl":22,"updatedAt":239},"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},[231,234,237,238],{"name":232,"slug":233,"type":14},"API Development","api-development",{"name":235,"slug":236,"type":14},"Architecture","architecture",{"name":117,"slug":118,"type":14},{"name":9,"slug":8,"type":14},"2026-07-12T08:00:39.428577",{"slug":4,"name":4,"fn":5,"description":6,"org":241,"tags":242,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[243,244,245],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"slug":247,"name":247,"fn":248,"description":249,"org":250,"tags":251,"stars":21,"repoUrl":22,"updatedAt":262},"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},[252,253,256,259],{"name":9,"slug":8,"type":14},{"name":254,"slug":255,"type":14},"Deployment","deployment",{"name":257,"slug":258,"type":14},"Operations","operations",{"name":260,"slug":261,"type":14},"Security","security","2026-08-04T05:58:55.830592",{"slug":264,"name":264,"fn":265,"description":266,"org":267,"tags":268,"stars":21,"repoUrl":22,"updatedAt":276},"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},[269,270,271,272,273],{"name":177,"slug":178,"type":14},{"name":117,"slug":118,"type":14},{"name":9,"slug":8,"type":14},{"name":121,"slug":122,"type":14},{"name":274,"slug":275,"type":14},"Realtime","realtime","2026-08-04T05:58:54.310662",50,{"items":279,"total":325},[280,286,292,299,306,312,319],{"slug":8,"name":8,"fn":112,"description":113,"org":281,"tags":282,"stars":21,"repoUrl":22,"updatedAt":123},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[283,284,285],{"name":117,"slug":118,"type":14},{"name":9,"slug":8,"type":14},{"name":121,"slug":122,"type":14},{"slug":125,"name":125,"fn":126,"description":127,"org":287,"tags":288,"stars":21,"repoUrl":22,"updatedAt":135},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[289,290,291],{"name":117,"slug":118,"type":14},{"name":9,"slug":8,"type":14},{"name":133,"slug":134,"type":14},{"slug":137,"name":137,"fn":138,"description":139,"org":293,"tags":294,"stars":21,"repoUrl":22,"updatedAt":152},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[295,296,297,298],{"name":9,"slug":8,"type":14},{"name":144,"slug":145,"type":14},{"name":147,"slug":148,"type":14},{"name":150,"slug":151,"type":14},{"slug":154,"name":154,"fn":155,"description":156,"org":300,"tags":301,"stars":21,"repoUrl":22,"updatedAt":169},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[302,303,304,305],{"name":160,"slug":161,"type":14},{"name":9,"slug":8,"type":14},{"name":164,"slug":165,"type":14},{"name":167,"slug":168,"type":14},{"slug":171,"name":171,"fn":172,"description":173,"org":307,"tags":308,"stars":21,"repoUrl":22,"updatedAt":183},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[309,310,311],{"name":177,"slug":178,"type":14},{"name":180,"slug":181,"type":14},{"name":9,"slug":8,"type":14},{"slug":185,"name":185,"fn":186,"description":187,"org":313,"tags":314,"stars":21,"repoUrl":22,"updatedAt":198},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[315,316,317,318],{"name":191,"slug":192,"type":14},{"name":9,"slug":8,"type":14},{"name":121,"slug":122,"type":14},{"name":196,"slug":197,"type":14},{"slug":200,"name":200,"fn":201,"description":202,"org":320,"tags":321,"stars":21,"repoUrl":22,"updatedAt":212},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[322,323,324],{"name":9,"slug":8,"type":14},{"name":207,"slug":208,"type":14},{"name":210,"slug":211,"type":14},30]