Integrations

Connect Nebutra with the tools your team already uses.

Available integrations

Vercel

Deploy to Vercel with zero config. Auto-provisioned environment variables.

Stripe

Billing, subscriptions, and payment webhooks pre-wired.

Slack

Send notifications and alerts to Slack channels.

GitHub

Trigger workflows on GitHub events. Sync issues and PRs.

Linear

Create and sync Linear issues from Nebutra events.

Resend

Transactional email — already configured. Templates in Sanity.

Sanity

Content management for blog, changelog, and email templates.

Sentry

Error tracking with tenant context, pre-configured.

Supabase

PostgreSQL + pgvector. RLS policies pre-configured for multi-tenancy.

Built-in vs configurable

Some integrations are pre-wired and active by default. Others require API keys to activate.

IntegrationStatusNotes
VercelBuilt-inZero-config deployment
ResendActive when RESEND_API_KEY is setEmail templates ready
StripeActive when STRIPE_SECRET_KEY is setWebhooks pre-configured
SentryActive when SENTRY_DSN is setTenant context auto-tagged
SanityActive when SANITY_API_TOKEN is setStudio at studio.nebutra.com
SlackRequires OAuth setupVia Settings → Integrations
GitHubRequires OAuth setupVia Settings → Integrations
LinearRequires API keyVia Settings → Integrations
SupabaseActive when DATABASE_URL is setRLS pre-configured

Adding a new integration

To add a custom integration for your own product, implement the Integration interface:

import { defineIntegration } from "@nebutra/integrations";

export const myIntegration = defineIntegration({
  id: "my-service",
  name: "My Service",
  events: ["project.created", "invoice.paid"],
  onEvent: async (event, config) => {
    await fetch(`${config.webhookUrl}`, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(event),
    });
  },
});

Register it in apps/web/src/integrations/registry.ts.

How is this guide?

Edit on GitHub

Last updated on

On this page