Skip to content

Develop#18

Merged
NodeByteLTD merged 4 commits into
mainfrom
develop
May 10, 2026
Merged

Develop#18
NodeByteLTD merged 4 commits into
mainfrom
develop

Conversation

@NodeByteLTD
Copy link
Copy Markdown
Owner

@NodeByteLTD NodeByteLTD commented May 10, 2026

Summary

Describe what changed and why.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Chore / maintenance

Testing

List what you ran:

  • pnpm lint
  • pnpm build
  • Relevant tests for changed area

Commands/results:

Paste test output or brief notes here.

Screenshots / Evidence (if applicable)

Add screenshots, recordings, or logs.

Checklist

  • I linked related issue(s)
  • I updated docs where needed
  • I updated changelog for user-facing changes
  • I removed secrets from code, logs, and screenshots

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Broadcasts feature for separate marketing campaigns
    • Added unified Logs page to view activity across email, webhooks, and notifications
    • Introduced custom billing plans with configurable email limits via sliders
    • Released Go SDK for ByteSend API
  • Changes

    • Moved API Keys and SMTP settings from Developer Settings to main Settings
    • Updated member add-on pricing to CA$2/month
    • Reorganized documentation theme and navigation
    • Enhanced dashboard analytics with advanced metrics for paid plans
  • Documentation

    • Updated API reference with new SMTP authentication endpoint
    • Added comprehensive Go SDK documentation
    • Improved Docker self-hosting guides

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: bf85d8d8-929a-49d8-8e21-a86ed7f539c8

📥 Commits

Reviewing files that changed from the base of the PR and between 5ca1113 and 5ba84c6.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !**/pnpm-lock.yaml
📒 Files selected for processing (108)
  • .coderabbit.yaml
  • .github/workflows/coderabbit.yml
  • .vscode/settings.json
  • CHANGELOG.md
  • apps/docs/api-reference/introduction.mdx
  • apps/docs/api-reference/openapi.json
  • apps/docs/api-reference/smtp/auth.mdx
  • apps/docs/docs.json
  • apps/docs/get-started/go.mdx
  • apps/docs/get-started/nodejs.mdx
  • apps/docs/get-started/smtp.mdx
  • apps/docs/guides/admin-operations.mdx
  • apps/docs/guides/discord-notifications.mdx
  • apps/docs/guides/notification-providers.mdx
  • apps/docs/guides/plan-management.mdx
  • apps/docs/guides/slack-notifications.mdx
  • apps/docs/introduction.mdx
  • apps/docs/self-hosting/docker.mdx
  • apps/docs/self-hosting/overview.mdx
  • apps/docs/self-hosting/smtp-server.mdx
  • apps/web/package.json
  • apps/web/prisma/migrations/20260510120000_add_campaign_intent/migration.sql
  • apps/web/prisma/migrations/20260510153000_add_custom_plan_contract_fields/migration.sql
  • apps/web/prisma/schema.prisma
  • apps/web/scripts/stripe-seed.ts
  • apps/web/src/app/(dashboard)/admin/teams/page.tsx
  • apps/web/src/app/(dashboard)/broadcasts/[broadcastId]/edit/page.tsx
  • apps/web/src/app/(dashboard)/broadcasts/[broadcastId]/page.tsx
  • apps/web/src/app/(dashboard)/broadcasts/page.tsx
  • apps/web/src/app/(dashboard)/campaigns/[campaignId]/edit/page.tsx
  • apps/web/src/app/(dashboard)/campaigns/[campaignId]/page.tsx
  • apps/web/src/app/(dashboard)/campaigns/campaign-card.tsx
  • apps/web/src/app/(dashboard)/campaigns/campaign-list.tsx
  • apps/web/src/app/(dashboard)/campaigns/create-campaign.tsx
  • apps/web/src/app/(dashboard)/campaigns/page.tsx
  • apps/web/src/app/(dashboard)/contacts/[contactBookId]/page.tsx
  • apps/web/src/app/(dashboard)/contacts/page.tsx
  • apps/web/src/app/(dashboard)/dasboard-layout.tsx
  • apps/web/src/app/(dashboard)/dashboard/email-chart.tsx
  • apps/web/src/app/(dashboard)/dashboard/page.tsx
  • apps/web/src/app/(dashboard)/dev-settings/api-keys/page.tsx
  • apps/web/src/app/(dashboard)/dev-settings/layout.tsx
  • apps/web/src/app/(dashboard)/dev-settings/page.tsx
  • apps/web/src/app/(dashboard)/dev-settings/smtp/page.tsx
  • apps/web/src/app/(dashboard)/logs/page.tsx
  • apps/web/src/app/(dashboard)/settings/api-keys/page.tsx
  • apps/web/src/app/(dashboard)/settings/billing/page.tsx
  • apps/web/src/app/(dashboard)/settings/layout.tsx
  • apps/web/src/app/(dashboard)/settings/smtp/page.tsx
  • apps/web/src/app/(dashboard)/settings/team/invite-team-member.tsx
  • apps/web/src/app/(dashboard)/settings/usage/usage.tsx
  • apps/web/src/app/(marketing)/legal/page.tsx
  • apps/web/src/app/(marketing)/page.tsx
  • apps/web/src/app/error.tsx
  • apps/web/src/app/login/login-page.tsx
  • apps/web/src/app/not-found.tsx
  • apps/web/src/components/AppSideBar.tsx
  • apps/web/src/components/marketing/CallToAction.tsx
  • apps/web/src/components/marketing/CodeExample.tsx
  • apps/web/src/components/marketing/CodeLangToggle.tsx
  • apps/web/src/components/marketing/Comparison.tsx
  • apps/web/src/components/marketing/DevSection.tsx
  • apps/web/src/components/marketing/FeatureCard.tsx
  • apps/web/src/components/marketing/FeatureCardPlain.tsx
  • apps/web/src/components/marketing/Features.tsx
  • apps/web/src/components/marketing/Hero.tsx
  • apps/web/src/components/marketing/HomeIcons.tsx
  • apps/web/src/components/marketing/PricingCalculator.tsx
  • apps/web/src/components/marketing/PricingSection.tsx
  • apps/web/src/components/marketing/PricingTiers.tsx
  • apps/web/src/components/marketing/SiteFooter.tsx
  • apps/web/src/components/marketing/TopNavClient.tsx
  • apps/web/src/components/marketing/TrustStrip.tsx
  • apps/web/src/components/notifications/notification-provider-manager.tsx
  • apps/web/src/components/payments/BillingPlanSelector.tsx
  • apps/web/src/components/payments/PlanDetails.tsx
  • apps/web/src/components/payments/UpgradeButton.tsx
  • apps/web/src/components/payments/UpgradeModal.tsx
  • apps/web/src/lib/constants/payments.ts
  • apps/web/src/lib/constants/plans.ts
  • apps/web/src/server/api/root.ts
  • apps/web/src/server/api/routers/admin.ts
  • apps/web/src/server/api/routers/billing.ts
  • apps/web/src/server/api/routers/campaign-security.trpc.test.ts
  • apps/web/src/server/api/routers/campaign.ts
  • apps/web/src/server/api/routers/limits.ts
  • apps/web/src/server/api/routers/logs.ts
  • apps/web/src/server/auth.ts
  • apps/web/src/server/billing/payments.ts
  • apps/web/src/server/jobs/usage-job.ts
  • apps/web/src/server/service/campaign-service.ts
  • apps/web/src/server/service/limit-service.ts
  • packages/go-sdk/.gitignore
  • packages/go-sdk/LICENSE
  • packages/go-sdk/README.md
  • packages/go-sdk/analytics.go
  • packages/go-sdk/campaigns.go
  • packages/go-sdk/client.go
  • packages/go-sdk/contact_books.go
  • packages/go-sdk/contacts.go
  • packages/go-sdk/domains.go
  • packages/go-sdk/emails.go
  • packages/go-sdk/go.mod
  • packages/go-sdk/types.go
  • packages/lib/src/stripe/plans.ts
  • packages/lib/src/stripe/products.ts
  • packages/lib/src/stripe/seed.ts
  • packages/sdk/README.md

Walkthrough

Implements campaign intent/broadcasts, custom billing checkout and limits, unified logs API/UI, Stripe plan/product seeding changes, Go SDK, admin env-admin auth updates, and extensive docs/marketing refactors.

Changes

Core product, billing, and docs refactor

Layer / File(s) Summary
DB Schema
apps/web/prisma/*
Adds CampaignIntent enum; Campaign.intent and index; Team custom plan fields.
Payments/Stripe
packages/lib/src/stripe/*, apps/web/scripts/stripe-seed.ts, apps/web/src/server/billing/payments.ts
Updates plans/products, seeding with force-recreate and addon member; custom checkout/session; customer handling.
Backend/API/Limits
apps/web/src/server/api/*, apps/web/src/server/service/*, apps/web/src/server/jobs/*, apps/web/src/lib/constants/plans.ts
Logs router; campaign intent support; CAMPAIGN limit; admin/env-admin constraints; limit-service custom plan logic; usage job skip for custom; plan limits extended.
Web UI (Campaigns/Broadcasts/Logs/Dashboard)
apps/web/src/app/(dashboard)/**
Broadcasts routes/pages; campaigns list/create/edit by intent; logs page; email chart paid gating; settings pages; admin teams gating; contacts unlocked.
Web UI (Payments)
apps/web/src/components/payments/*
Billing plan selector with sliders and checkout; PlanDetails custom contract; simplified UpgradeModal; export CheckoutPlan type.
Marketing/UI Shell
apps/web/src/components/marketing/*, apps/web/src/components/AppSideBar.tsx, apps/web/src/app/(marketing)/*, .../error.tsx, .../login/*, .../not-found.tsx
Marketing site modularized; new components/icons; sidebar/nav reworked; icon swaps to react-icons.
Go SDK
packages/go-sdk/*
Adds Go client, services, types, README, license, go.mod.
Docs/OpenAPI
apps/docs/**
New SMTP auth endpoint docs+OpenAPI; theme/nav updates; link normalization; self-hosting guides updated.
Config/CI
.coderabbit.yaml, .github/workflows/*, .vscode/*, CHANGELOG.md
Adds CodeRabbit config and workflow; VSCode settings; CHANGELOG 0.2.6.

Sequence Diagram(s)

sequenceDiagram
  actor User
  participant WebApp
  participant BillingAPI
  participant Stripe
  User->>WebApp: Select plan + sliders
  WebApp->>BillingAPI: createCustomCheckoutSession(plan, limits, price)
  BillingAPI->>Stripe: Create Checkout Session (metadata)
  Stripe-->>BillingAPI: session.url
  BillingAPI-->>WebApp: url
  WebApp-->>User: Redirect to Stripe
Loading
sequenceDiagram
  actor User
  participant WebApp
  participant LogsAPI
  participant DB
  User->>WebApp: Open Logs
  WebApp->>LogsAPI: list({limit, source?})
  LogsAPI->>DB: fetch email/webhook/notification
  DB-->>LogsAPI: records
  LogsAPI-->>WebApp: unified entries
  WebApp-->>User: Render table
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

@NodeByteLTD NodeByteLTD merged commit f4a1c3d into main May 10, 2026
14 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants