AI - Agent (Meeting PlatForm)
image
image
image
image
image
image
image

This platform is a next-generation AI meeting solution designed to enhance productivity, streamline communications, and provide actionable insights from meetings. Users can host AI-powered video calls, interact with intelligent agents, generate real-time transcripts, and get AI-driven summaries and Q&A support. The platform also supports subscription management, secure authentication, and mobile responsiveness, making it suitable for modern remote teams.

Features

AI-powered video calls – intelligent real-time video communication with AI assistance
Custom real-time agents – personalized AI agents for meetings and interactions
Stream Video SDK – seamless video streaming integration
Stream Chat SDK – real-time messaging with chat features
Summaries, transcripts, recordings – automatic meeting summaries, full transcripts, and recordings
Meeting history & statuses – track past meetings and their progress/status
Transcript search – quickly search through meeting transcripts
Video playback – replay meeting recordings efficiently
AI meeting Q&A – ask questions and get AI-generated answers during meetings
OpenAI integration – advanced AI models for natural language processing and meeting insights
Polar subscriptions – integrated subscription/payment management
Better Auth login – secure, smooth authentication system
Mobile responsive – fully responsive UI for mobile devices
Next.js 15 + React 19 – cutting-edge web framework for performance and scalability
Tailwind v4 + Shadcn/ui – modern UI design and components
Inngest background jobs – efficient background processing for tasks
CodeRabbit PR reviews – automated code review assistance for developers
Responsive Designs
File & Folder Structure
Production Code
server.ts
import { NextRequest } from 'next/server';

export const middleware = async (req: NextRequest) => {
  let user = undefined;
  let team = undefined;
  const token = req.headers.get('token');

  if(req.nextUrl.pathname.startsWith('/auth')) {
    user = await getUserByToken(token);

    if(!user) {
      return NextResponse.redirect('/login');
    }
  }

  if(req.nextUrl.pathname.startsWith('/team')) {
    user = await getUserByToken(token);

    if(!user) {
      return NextResponse.redirect('/login');
    }

    const slug = req.nextUrl.query.slug;
    team = await getTeamBySlug(slug); // [!code highlight]

    if(!team) { // [!code highlight]
      return NextResponse.redirect('/'); // [!code highlight]
    } // [!code highlight]
  } // [!code highlight]

  return NextResponse.next(); // [!code highlight]
}

export const config = {
  matcher: ['/((?!_next/|_static|_vercel|[\w-]+\.\w+).*)'], // [!code highlight]
};
server.ts
import { createMiddleware, type MiddlewareFunctionProps } from '@app/(auth)/auth/_middleware';
import { auth } from '@/app/(auth)/auth/_middleware'; // [!code --]
import { auth } from '@/app/(auth)/auth/_middleware'; // [!code ++]
import { team } from '@/app/(team)/team/_middleware';

const middlewares = {
  '/auth{/:path?}': auth,
  '/team{/:slug?}': [ auth, team ],
};

export const middleware = createMiddleware(middlewares); // [!code focus]

export const config = {
  matcher: ['/((?!_next/|_static|_vercel|[\w-]+\.\w+).*)'],
};
Tech Stack
/svg/react.svg
/svg/docker.svg
/svg/nextjs.svg
/svg/sql.svg
/svg/github.svg
/svg/nextjs.svg
/svg/nextjs.svg
System Design & Docker