Skip to content

BishalN/testimate

Repository files navigation

Testimate - Open Source Testimonial Collection Platform

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.

Deploy on Vercel

Deploy with Vercel

🚀 Features

  • ⚡️ 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

📋 Prerequisites

  • Node.js 18+
  • pnpm 9+
  • Supabase account

Refer to the CONTRIBUTING.md file for more details on how to get started.

📁 Project Structure

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

🛠️ Available Scripts

  • pnpm dev - Start development server
  • pnpm build - Build for production
  • pnpm start - Start production server
  • pnpm db:generate - Generate database migrations
  • pnpm db:push - Push database changes
  • pnpm db:studio - Open Drizzle Studio
  • pnpm typecheck - Run TypeScript type checking
  • pnpm check - Run Biome linting
  • pnpm check:write - Fix linting issues

🔒 Authentication

The project uses Supabase for authentication with middleware protection. Protected routes will automatically redirect to the login page if the user is not authenticated.

🗄️ Database

This project uses Drizzle ORM with Supabase PostgreSQL. To manage your database:

  1. Generate migrations:
pnpm db:generate
  1. Push changes to database:
pnpm db:push
  1. View database in Drizzle Studio:
pnpm db:studio

🎨 Styling

The project uses Tailwind CSS for styling. You can find global styles in src/styles/globals.css.

📝 Type Safety

  • TypeScript for static type checking
  • tRPC for end-to-end type safety
  • Zod for runtime type validation

🔍 Code Quality

  • Biome for linting and formatting
  • TypeScript for type checking
  • ESLint for code quality

🤝 Contributing

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.

📄 License

This project is licensed under the MIT License

🙏 Acknowledgments

About

Collect, Manage and Share testimonials

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages