Warning This project is a work in progress and may not function consistently. It is primarily a testing demo created for educational purposes and to explore new technologies.
- Dynamic Routing
- Server Components and Server Actions
- Loading UI and Streaming with Suspense for a smoother user experience
- SEO-friendly metadata
- Fully responsive design
- Styled with Tailwind CSS
- UI components built with Shadcn/ui
- Interactive maps using Leaflet
- User authentication and management via Clerk
- Serverless SQL powered by Vercel Postgres (and Neon)
- Image Management through Cloudinary
- Infinite Logo Slider
- Search functionality with data filtering capabilities
- Code Linting for consistent formatting
- Written in TypeScript for enhanced type safety
- Drizzle ORM for type-safe database interaction, schema generation, and migrations
- Stripe integration for payment processing
Ensure the following are installed:
- Node.js (v18+)
pnpm
as the package manager
Before running the app, make sure you have:
- A Vercel account and a Vercel Postgres Database
- A Cloudinary account for image management
- A Clerk account for authentication
- A Stripe account for payment processing
- Install dependencies:
pnpm install
- Set up environment variables:
-
Copy the
.env.example
file to.env
at the root of the project:cp .env.example .env
-
Update the
.env
file with your configuration details.
- Generate the database:
pnpm db:generate
- Seed the initial data:
pnpm db:seed
- Start the development server:
pnpm dev