Skills Agentes

Convex Billing

Añade billing/pagos con Stripe a la app Convex vía @convex-dev/stripe (checkout + webhook + gating).

Oficial

Reemplaza a: Escribir manualmente un webhook con constructEvent

Estrellas
59

en todo el repo

Actividad
55

0–100, la ruta de este skill

Actualizado
hace 3 meses

último commit aquí

Commits
1

últimos 90 días

Contexto
1k tok

25 tok en reposo

Paquete
1 archivo

4 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add get-convex/agent-skills --skill convex-billing --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Instala y configura el componente @convex-dev/stripe en convex.config.ts
  • Crea una ruta httpAction que registra el webhook de Stripe con verificación de firma automática
  • Genera una acción createSubscriptionCheckout para iniciar el checkout de Stripe
  • Genera una query isSubscribed que consulta el estado de suscripción guardado en las tablas del componente

Úsalo cuando

  • Cuando hay que añadir pagos o suscripciones de Stripe a una app Convex
  • Cuando se necesita gating server-side de funciones según el estado de suscripción del usuario

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Añade Stripe billing a mi app Convex”
    • “Quiero cobrar suscripciones con Stripe en Convex”
    • “Configura el checkout y el webhook de Stripe con @convex-dev/stripe”

    SKILL.md

    En inglés

    Add billing / payments

    Wire Stripe to Convex using @convex-dev/stripe: a checkout action, an httpAction webhook registered by the component (signature-verified automatically), subscription state stored in the component's tables, and server-side gating via a query.

    Workflow

    1. Install the component: npm install @convex-dev/stripe.
    2. Create convex/convex.config.ts:
      import { defineApp } from 'convex/server';
      import stripe from '@convex-dev/stripe/convex.config.js';
      const app = defineApp();
      app.use(stripe);
      export default app;
      
    3. Store Stripe keys in Convex env (use the env micro power): STRIPE_SECRET_KEY (sk_test_… / sk_live_…) and STRIPE_WEBHOOK_SECRET (whsec_…).
    4. Create convex/http.ts to register the webhook route (the component handles signature verification automatically):
      import { httpRouter } from 'convex/server';
      import { components } from './_generated/api';
      import { registerRoutes } from '@convex-dev/stripe';
      const http = httpRouter();
      registerRoutes(http, components.stripe, { webhookPath: '/stripe/webhook' });
      export default http;
      
    5. Create convex/billing.ts with a checkout action and a subscription-gate query:
      import { action, query } from './_generated/server';
      import { components } from './_generated/api';
      import { StripeSubscriptions } from '@convex-dev/stripe';
      import { v } from 'convex/values';
      const stripeClient = new StripeSubscriptions(components.stripe, {});
      export const createSubscriptionCheckout = action({
        args: { priceId: v.string() },
        returns: v.object({ sessionId: v.string(), url: v.union(v.string(), v.null()) }),
        handler: async (ctx, args) => {
          const identity = await ctx.auth.getUserIdentity();
          if (!identity) throw new Error('Not authenticated');
          const customer = await stripeClient.getOrCreateCustomer(ctx, { userId: identity.subject, email: identity.email, name: identity.name });
          return await stripeClient.createCheckoutSession(ctx, { priceId: args.priceId, customerId: customer.customerId, mode: 'subscription', successUrl: `${process.env.SITE_URL ?? 'http://localhost:3000'}/?success=true`, cancelUrl: `${process.env.SITE_URL ?? 'http://localhost:3000'}/?canceled=true`, subscriptionMetadata: { userId: identity.subject } });
        },
      });
      export const isSubscribed = query({
        args: {},
        returns: v.boolean(),
        handler: async (ctx) => {
          const identity = await ctx.auth.getUserIdentity();
          if (!identity) return false;
          const subscriptions = await ctx.runQuery(components.stripe.public.listSubscriptionsByUserId, { userId: identity.subject });
          return subscriptions.some((sub) => sub.status === 'active' || sub.status === 'trialing');
        },
      });
      
    6. Run npx convex dev --once — it will install the component and push the functions. Verify output shows ✔ Installed component stripe.
    7. In Stripe Dashboard → Webhooks: add endpoint https://<deployment>.convex.site/stripe/webhook, subscribe to checkout.session.completed, customer.subscription.*, invoice.*, payment_intent.*. Copy the signing secret as STRIPE_WEBHOOK_SECRET.

    Rules

    • Use @convex-dev/stripe (npm: @convex-dev/stripe@^0.1.4) — it handles webhook signature verification internally via registerRoutes; do NOT write a manual constructEvent webhook.
    • Stripe keys live in Convex env (use the env micro power): STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET.
    • Gate on server-stored subscription state via isSubscribed query (reads component tables), not client claims.
    • convex/convex.config.ts must import from '@convex-dev/stripe/convex.config.js' (not .ts) — the .js extension is required by the Convex bundler.

    Reproducido de get-convex/agent-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere claves STRIPE_SECRET_KEY y STRIPE_WEBHOOK_SECRET configuradas en las variables de entorno de Convex.

    Variables de entorno:SITE_URL

    Detalles

    Creador
    get-convex
    Licencia
    Apache-2.0
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Más de get-convex/agent-skills

    Este repo incluye 33 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agent-skills entero y su comando de instalación

    Audita y refuerza la autorización de una app Convex: impersonación por identity-from-arg, checks de ownership por documento faltantes, queries públicas que filtran datos por un id del cliente y escrituras en un contenedor ajeno.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialseguridad

    Diseña y construye backends reactivos y type-safe de nivel producción en Convex: schema, queries/mutations/actions, índices, auth, storage, scheduling, multiplayer en tiempo real y workflows LLM/agentes.

    Costo de contexto al activarse
    972 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialdesarrollo apis

    Levanta un template Next.js + Convex barebones a partir de una idea en una frase.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 2 meses
    Oficialdesarrollo apis

    Especialista en el backend de Convex: código dentro de convex/ (funciones, schemas, índices, queries, mutations, actions, endpoints HTTP, cron jobs, storage, auth y componentes).

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialbases de datos

    Añade un backend de agente de IA / RAG (@convex-dev/agent) a la app Convex.

    Costo de contexto al activarse
    430 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialdesarrollo apis

    Construye componentes Convex reutilizables con tablas aisladas y APIs de cara a la app. Útil para nuevos componentes, módulos de backend reutilizables, integraciones o límites de componentes.

    Costo de contexto al activarse
    2.6k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 3 meses
    Oficialherramientas desarrollo

    Skills relacionados

    Referencia para la API de Claude / SDK de Anthropic — IDs de modelo, precios, parámetros, streaming, tool use, MCP, agentes, caching, conteo de tokens y migración de modelos.

    Costo de contexto al activarse
    21.4k tok
    Tamaño del paquete
    70 archivos
    Última actualización
    hace 2 meses
    Oficialdesarrollo apis

    Guía para crear servidores MCP de calidad que permitan a los LLMs interactuar con servicios externos. Úsalo al construir servidores MCP en Python (FastMCP) o Node/TypeScript (MCP SDK).

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    hace 6 meses
    Oficialdesarrollo apis

    Guía completa para integrar servidores Model Context Protocol en plugins de Claude Code, para conectar herramientas y servicios externos.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 12 meses
    Oficialdesarrollo apis