Skip to content

AdnanElAssadi56/Articulate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Articulate - AI Voice Advisory Platform

Articulate Platform

Your Personal AI Advisory Council

Connect with specialized AI advisors through natural voice conversations for career guidance, wellness coaching, spiritual growth, and academic support.

Live Demo β€’ Features β€’ Tech Stack β€’ Getting Started β€’ Deployment


πŸ“‹ Table of Contents


πŸ€– Introduction

Articulate is a cutting-edge SaaS platform that revolutionizes personal advisory services through AI-powered voice conversations. Whether you need career guidance, wellness coaching, spiritual mentorship, or academic tutoring, Articulate connects you with specialized AI advisors that understand your needs and provide personalized guidance through natural voice interactions.

Built with modern web technologies and powered by advanced AI voice synthesis, Articulate delivers a seamless, human-like advisory experience that's accessible 24/7.

Why Articulate?

  • 🎯 Specialized Advisors: Choose from 40+ pre-built advisors or create your own custom AI advisor
  • πŸ—£οΈ Natural Voice Conversations: Real-time voice interactions with low-latency responses
  • πŸ“Š Track Your Progress: Monitor your journey with detailed analytics and insights
  • οΏ½ Flexible Pricing: Free tier to get started, premium plans for power users
  • πŸ”’ Secure & Private: Enterprise-grade security with Clerk authentication

βš™οΈ Tech Stack

Technology Purpose Why We Chose It
Next.js Framework Server-side rendering, API routes, optimal performance
TypeScript Language Type safety, better developer experience
Supabase Database Real-time PostgreSQL, instant APIs
Clerk Auth & Billing Complete user management, subscription handling
Tailwind CSS Styling Utility-first, rapid UI development
Sentry Monitoring Error tracking, performance monitoring
Vapi Voice AI Low-latency voice conversations

Additional Technologies

  • shadcn/ui - Beautiful, accessible component library
  • Zod - TypeScript-first schema validation
  • React Hook Form - Performant form handling
  • Lucide Icons - Modern icon library

πŸ”‹ Features

πŸŽ™οΈ AI Voice Conversations

Voice Session

  • Real-time voice interactions with AI advisors
  • Low-latency responses for natural conversations
  • Session timer to track conversation duration
  • Live transcription of conversations
  • Download transcripts for future reference

πŸ‘₯ Advisor Marketplace

Advisors Grid

  • Browse 40+ pre-built advisors across 4 categories:
    • πŸ’Ό Career & Professional Development
    • 🧘 Wellness & Mental Health
    • πŸ•‰οΈ Spiritual & Personal Growth
    • πŸ“š Academic & Learning
  • Advanced search & filtering by category, subject, and topic
  • Advisor ratings and session counts
  • Bookmark favorite advisors for quick access

🎨 Create Custom Advisors

Create Advisor

  • Design your own AI advisor with custom:
    • Name and personality
    • Subject expertise
    • Conversation style (casual, professional, formal, nurturing)
    • Voice type (male/female)
    • Session duration
  • Tier-based limits:
    • Free: 5 custom advisors
    • Pro: 20 custom advisors
    • Premium: Unlimited

πŸ“Š Journey Dashboard

Journey Dashboard

  • Track your progress with detailed statistics
  • Session history with all your conversations
  • Bookmarked advisors for easy access
  • Advanced analytics (Premium feature - Coming Soon)
  • Conversation insights (Pro/Premium feature)

πŸ’³ Subscription Management

Pricing Plans

  • Flexible pricing tiers to match your needs
  • Clerk-powered billing for secure payments
  • Easy plan upgrades and downgrades
  • Transparent pricing with no hidden fees

πŸ” Authentication & Security

  • Secure sign-up/sign-in with Clerk
  • Google OAuth integration
  • Session management with automatic refresh
  • Protected routes for authenticated users
  • Error monitoring with Sentry

πŸ“± Responsive Design

  • Mobile-first approach for all devices
  • Smooth animations and transitions
  • Loading states for better UX
  • Skeleton screens during data fetching
  • Optimized performance with Next.js

πŸ—οΈ Architecture

Project Structure

articulate/
β”œβ”€β”€ app/                          # Next.js app directory
β”‚   β”œβ”€β”€ (auth)/                   # Authentication routes
β”‚   β”‚   β”œβ”€β”€ sign-in/
β”‚   β”‚   └── sign-up/
β”‚   β”œβ”€β”€ companions/               # Advisor routes
β”‚   β”‚   β”œβ”€β”€ [id]/                 # Individual advisor session
β”‚   β”‚   β”œβ”€β”€ new/                  # Create new advisor
β”‚   β”‚   └── page.tsx              # Advisors list
β”‚   β”œβ”€β”€ journey/                  # User dashboard
β”‚   β”œβ”€β”€ subscription/             # Pricing & billing
β”‚   β”œβ”€β”€ loading.tsx               # Global loading state
β”‚   β”œβ”€β”€ layout.tsx                # Root layout
β”‚   └── page.tsx                  # Homepage
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ ui/                       # shadcn/ui components
β”‚   β”œβ”€β”€ CompanionCard.tsx
β”‚   β”œβ”€β”€ CompanionComponent.tsx    # Voice session component
β”‚   β”œβ”€β”€ CompanionForm.tsx
β”‚   β”œβ”€β”€ Navbar.tsx
β”‚   └── ...
β”œβ”€β”€ lib/                          # Utility functions
β”‚   β”œβ”€β”€ actions/                  # Server actions
β”‚   β”œβ”€β”€ subscription.ts           # Tier management
β”‚   β”œβ”€β”€ supabase.ts              # Database client
β”‚   └── vapi.sdk.ts              # Voice AI SDK
β”œβ”€β”€ constants/                    # App constants
β”‚   β”œβ”€β”€ categories.ts
β”‚   └── index.ts
β”œβ”€β”€ types/                        # TypeScript types
└── public/                       # Static assets

Database Schema (Supabase)

-- Companions (AI Advisors)
companions (
  id: uuid
  name: text
  category: text
  subject: text
  topic: text
  duration: integer
  voice: text
  style: text
  description: text
  author: text (user_id)
  created_at: timestamp
)

-- Bookmarks
bookmarks (
  id: uuid
  user_id: text
  companion_id: uuid (FK)
  created_at: timestamp
)

-- Session History
session_history (
  id: uuid
  user_id: text
  companion_id: uuid (FK)
  created_at: timestamp
)

οΏ½ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn
  • Git

Installation

  1. Clone the repository
git clone https://github.com/AdnanElAssadi56/Articulate.git
cd Articulate
  1. Install dependencies
npm install
  1. Set up environment variables

Create a .env.local file in the root directory:

# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/

# Supabase Database
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

# Vapi Voice AI
NEXT_PUBLIC_VAPI_WEB_TOKEN=your_vapi_web_token

# Sentry Error Monitoring (Optional)
SENTRY_AUTH_TOKEN=your_sentry_auth_token
  1. Set up Supabase database

Run the following SQL in your Supabase SQL editor:

-- Create companions table
create table companions (
  id uuid default gen_random_uuid() primary key,
  name text not null,
  category text not null,
  subject text not null,
  topic text not null,
  duration integer not null,
  voice text not null,
  style text not null,
  description text,
  author text not null,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null
);

-- Create bookmarks table
create table bookmarks (
  id uuid default gen_random_uuid() primary key,
  user_id text not null,
  companion_id uuid references companions(id) on delete cascade,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null,
  unique(user_id, companion_id)
);

-- Create session_history table
create table session_history (
  id uuid default gen_random_uuid() primary key,
  user_id text not null,
  companion_id uuid references companions(id) on delete cascade,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null
);

-- Enable Row Level Security
alter table companions enable row level security;
alter table bookmarks enable row level security;
alter table session_history enable row level security;

-- Create policies
create policy "Companions are viewable by everyone"
  on companions for select
  using (true);

create policy "Users can create companions"
  on companions for insert
  with check (true);

create policy "Users can manage their own bookmarks"
  on bookmarks for all
  using (true);

create policy "Users can manage their own session history"
  on session_history for all
  using (true);
  1. Configure Clerk subscriptions

In your Clerk dashboard:

  • Create three subscription plans: Free, Pro, Premium
  • Set up pricing: Pro ($9.99/mo), Premium ($19.99/mo)
  • Configure features for each tier
  1. Run the development server
npm run dev
# or
yarn dev
  1. Open your browser

Navigate to http://localhost:3000


πŸ” Environment Variables

Required Variables

Variable Description Where to Get It
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Clerk public key Clerk Dashboard
CLERK_SECRET_KEY Clerk secret key Clerk Dashboard
NEXT_PUBLIC_SUPABASE_URL Supabase project URL Supabase Dashboard
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anonymous key Supabase Dashboard
NEXT_PUBLIC_VAPI_WEB_TOKEN Vapi web token Vapi Dashboard

Optional Variables

Variable Description Where to Get It
SENTRY_AUTH_TOKEN Sentry authentication token Sentry Dashboard

πŸ“± Screenshots

Homepage

Homepage

Mobile View

Mobile View


🎯 Subscription Tiers

Free Tier

Perfect for trying out the platform

  • 5 custom advisors
  • 3 bookmarks
  • 5 sessions per month
  • 10-minute sessions
  • Access to all pre-built advisors

Pro Tier - $9.99/month

For regular users

  • 20 custom advisors
  • Unlimited bookmarks
  • 50 sessions per month
  • 20-minute sessions
  • Conversation insights
  • Download transcripts
  • Unlimited conversation history

Premium Tier - $19.99/month

For power users

  • Unlimited custom advisors
  • Unlimited bookmarks
  • Unlimited sessions
  • 30-minute sessions
  • Advanced analytics
  • AI-powered insights
  • All Pro features

πŸ› οΈ Development

Available Scripts

# Development server
npm run dev

# Build for production
npm run build

# Start production server
npm start

# Run linter
npm run lint

πŸ“¦ Deployment

Deploy to Vercel (Recommended)

  1. Push your code to GitHub
git add .
git commit -m "Initial commit"
git push origin main
  1. Import to Vercel
  • Go to Vercel
  • Click "New Project"
  • Import your GitHub repository
  • Add environment variables
  • Deploy!
  1. Configure environment variables in Vercel

Add all variables from .env.local to your Vercel project settings.

Your app will be live at https://your-project.vercel.app


πŸ“„ License

This project is open source and available under the MIT License.


πŸ™ Acknowledgments

Built with Clerk, Supabase, Vapi, and Vercel.

About

AI voice advisory platform with 40+ specialized advisors. Real-time voice conversations for career, wellness, spiritual, and academic guidance. Built with Next.js, Supabase, Clerk, and Vapi.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors