Skip to content

This project is a Proof of Concept (POC) demonstrating the integration of Outseta (for authentication, CRM, and billing)

Notifications You must be signed in to change notification settings

outseta/outseta-vibe-coding-CMS

Repository files navigation

Outseta + Convex POC

This project is a Proof of Concept (POC) demonstrating the integration between Outseta (for authentication, CRM, and billing) and Convex (as the backend database and serverless functions).

The application is a simple Course Management System where access to courses is gated by Outseta Add-ons.

🚀 Tech Stack

  • Frontend: React 19, Vite, Tailwind CSS, Radix UI (Shadcn/UI)
  • Backend: Convex
  • Auth & Billing: Outseta
  • Language: TypeScript

✨ Key Features

  • Outseta Authentication: Uses Outseta's "Magic Script" and widgets for login, signup, and profile management.
  • Course Management: Admins can create, edit, and delete courses. Courses are stored in Convex.
  • Content Gating: Access to specific courses is restricted based on the user's purchased Add-ons in Outseta.
  • Member Directory: A view that lists members and the courses they have access to, fetching data directly from Outseta's CRM API.
  • JWT Validation: Secure communication between the frontend and Convex using Outseta's JWT tokens.

🛠️ Project Structure

  • convex/: Backend schema, queries, mutations, and actions.
    • schema.ts: Database schema definition.
    • outseta.ts: Actions for interacting with Outseta API.
    • members.ts: Logic for fetching and mapping member data.
  • src/: Frontend application code.
    • lib/AuthProvider.tsx: React Context provider for Outseta authentication.
    • lib/outseta-utils.ts: Utilities for decoding JWTs and checking permissions.
    • pages/: Application routes (Home, Admin, Course details, etc.).
  • docs/: Feature plans and deployment documentation.

⚙️ Setup & Installation

Prerequisites

Environment Variables

You will need to set up the following environment variables:

Frontend (.env or Vite environment)

  • VITE_OUTSETA_SUBDOMAIN: Your Outseta subdomain.

Convex (via npx convex dashboard)

  • OUTSETA_API_KEY: Your Outseta API Key.
  • OUTSETA_SUBDOMAIN: Your Outseta subdomain.

Installation

  1. Install dependencies:

    bun install
  2. Start the Convex dev server:

    bunx convex dev
  3. Start the frontend development server:

    bun run dev

📖 Documentation

Detailed feature plans and implementation details can be found in the docs/ directory.

About

This project is a Proof of Concept (POC) demonstrating the integration of Outseta (for authentication, CRM, and billing)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published