Testimate is a modern, open-source alternative to testimonial collection platforms like testimonials.to, Senja, and Trustmary. Built with a focus on privacy, customization, and ease of use, Testimate allows businesses to collect, manage, and display customer testimonials with full control over their data.
- ⚡️ Next.js 15 with App Router for blazing fast performance
- 🔐 Supabase Authentication & Database for secure data management
- 🎨 Tailwind CSS for beautiful, customizable designs
- 🔄 tRPC for type-safe API calls
- 📦 Drizzle ORM for efficient database management
- 🎯 TypeScript for robust type safety
- 🔍 Biome for code quality
- Node.js 18+
- pnpm 9+
- Supabase account
Refer to the CONTRIBUTING.md file for more details on how to get started.
src/
├── app/ # Next.js app router pages
├── components/ # React components
├── lib/ # Utility functions and shared logic
├── server/ # Server-side code
│ └── db/ # Database configuration and schema
├── styles/ # Global styles
├── supabase/ # Supabase client configuration
└── trpc/ # tRPC router and procedures
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm db:generate
- Generate database migrationspnpm db:push
- Push database changespnpm db:studio
- Open Drizzle Studiopnpm typecheck
- Run TypeScript type checkingpnpm check
- Run Biome lintingpnpm check:write
- Fix linting issues
The project uses Supabase for authentication with middleware protection. Protected routes will automatically redirect to the login page if the user is not authenticated.
This project uses Drizzle ORM with Supabase PostgreSQL. To manage your database:
- Generate migrations:
pnpm db:generate
- Push changes to database:
pnpm db:push
- View database in Drizzle Studio:
pnpm db:studio
The project uses Tailwind CSS for styling. You can find global styles in src/styles/globals.css
.
- TypeScript for static type checking
- tRPC for end-to-end type safety
- Zod for runtime type validation
- Biome for linting and formatting
- TypeScript for type checking
- ESLint for code quality
We welcome contributions from the community! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License
- create-t3-app for the initial setup
- Supabase for authentication and database
- Next.js for the framework
- Drizzle ORM for database management