AI-powered meeting assistant that transforms recordings and transcripts into organized, searchable knowledge.
Memora turns the chaos of meetings into structured, retrievable information. Upload a recording or paste a transcript and Memora automatically transcribes, summarizes, and extracts everything that matters — action items, decisions, risks, and follow-up questions — all stored in a searchable knowledge base your team can rely on.
- Upload audio recordings or paste raw transcripts
- Automatic transcription via Groq Whisper
- AI-generated summaries, decisions, action items, risks, and follow-up questions
- PDF export of full meeting notes
- Folder organization with drag-and-drop management
- Edit and delete meetings
- Unified view of action items across all meetings
- Filter by status, priority, and assignee
- Track completion and due dates
- Calendar view of all meetings by date
- Click-through to meeting detail from any day
- Meeting frequency, duration, and participation trends
- Action item completion rates
- Visual charts powered by Recharts
- Full-text search across meetings, transcripts, summaries, and action items
- Command palette (
⌘K/Ctrl+K) for quick navigation
- Multi-tenant workspace support
- Invite and manage members with role-based access (Owner, Admin, Member)
- Switch between workspaces seamlessly
- Participant directory with profile pages
- Meeting history and action item tracking per participant
- Profile management
- Theme toggle (light / dark)
- Notification preferences
| Layer | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Build | Vite |
| Styling | Tailwind CSS + shadcn/ui |
| Routing | React Router v6 |
| Data Fetching | TanStack Query v5 |
| Forms | React Hook Form + Zod |
| Animation | Framer Motion |
| Icons | Lucide React |
| Charts | Recharts |
| @react-pdf/renderer | |
| Backend | Supabase (Auth, PostgreSQL, Storage, RLS) |
| AI | Groq AI API + Whisper |
| Deployment | Vercel |
# Clone the repository
git clone https://github.com/sam-cookie/memora.git
cd memora
# Install dependencies
npm installCreate a .env.local file in the project root:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GROQ_API_KEY=your_groq_api_keynpm run devThe app runs at http://localhost:5173.
npm run build| Command | Description |
|---|---|
npm run dev |
Start the dev server |
npm run build |
Production build |
npm run preview |
Preview the production build |
npm run type-check |
Run TypeScript type checking |
npm run lint |
Lint with ESLint |
npm run lint:fix |
Auto-fix lint errors |
npm run format |
Format with Prettier |
src/
├── components/
│ ├── common/ # Shared utility components (SearchCommand, PageHeader, ErrorBoundary…)
│ ├── layouts/ # App shell (AppLayout, Sidebar, Header, AuthLayout)
│ └── ui/ # shadcn/ui base components
├── features/
│ ├── auth/ # Login, register, forgot/reset password
│ ├── meetings/ # Meeting list, detail, upload, edit, export
│ ├── action-items/ # Action items dashboard
│ ├── calendar/ # Calendar view
│ ├── analytics/ # Analytics and charts
│ ├── search/ # Full-text search
│ ├── workspaces/ # Workspace management and member roles
│ ├── participants/ # Participant directory and profiles
│ ├── folders/ # Folder CRUD and meeting organization
│ ├── dashboard/ # Home dashboard
│ └── settings/ # User and workspace settings
├── hooks/ # Shared React hooks
├── providers/ # React context providers (Auth, Query, Theme, Workspace)
├── router/ # Route definitionsch
├── lib/ # Utility functions and Supabase client
├── types/ # Shared TypeScript types
└── assets/ # Static assets
- Feature-based structure — all code for a feature lives together, making it easy to find and reason about.
- Lazy loading — every page is code-split and loaded on demand, keeping the initial bundle small.
- Row Level Security — all data access is enforced at the database level via Supabase RLS policies, so the backend is safe regardless of client-side logic.
- TanStack Query — all server state is managed with caching, background refetching, and optimistic updates where appropriate.
- Zod schemas — validation is colocated with form definitions, ensuring types and runtime checks stay in sync.
PRIVATE
