A marketplace of services available for booking, built with Next.js and the Timerise.io API. The application allows users to browse and book various services in a simple and intuitive way.
- Features
- Technologies
- Requirements
- Installation
- Running the Application
- Scripts
- Contributing
- License
- Acknowledgements
- Browse Services: Intuitive interface for exploring available services across organizations and projects.
- Whitelabel Support: Domain-based organization marketplace configuration for custom branding.
- Service Discovery: Featured services, label filtering, and search functionality.
- Bookings: Each service card links through to the Timerise booking app (
bookingAppUrl) to complete a reservation. - Responsiveness: Optimized display on various devices with responsive design using Tailwind CSS.
- Internationalization: Multi-language support with 18 languages (bg, cs, de, el, en, es, fi, fr, hu, it, nb, nl, pl, pt, sk, sv, tr, uk) using i18next.
- Performance: Efficient data fetching and caching with SWR.
- Security: Type-safe environment variables with @t3-oss/env-nextjs, data validation with Zod, and strong typing with TypeScript.
- Framework: Next.js 16.3.4
- Language: TypeScript ^6.0.3
- UI Libraries:
- React ^19.2.8
- Tailwind CSS ^4.3.3
- Headless UI ^2.2.10
- Internationalization:
- i18next ^26.4.2
- react-i18next ^17.0.13
- i18next-browser-languagedetector ^8.2.1
- i18next-http-backend ^4.0.2
- Data Fetching: SWR ^2.5.1
- Schema Validation: Zod ^4.5.4
- Environment Variables: @t3-oss/env-nextjs ^0.13.11
- Others:
- Lodash ^4.18.1
- React Markdown ^10.1.0
- React Responsive ^10.0.1
- Analytics: @vercel/analytics ^2.0.1
- Node.js: Version 24 (see
.nvmrc) - Bun: Version 1.2 or higher (package manager and script runner)
- Clone the repository:
git clone https://github.com/your-username/next-services.git
cd next-services- Install dependencies:
bun install- Configure environment variables:
The tracked
.envfile ships placeholders only. Create.env.localand set the GraphQL endpoint, otherwise the app starts but every API request fails:
NEXT_PUBLIC_TIMERISE_API_ENDPOINT=https://api.timerise.io/graphql # required
TIMERISE_API_KEY=your_api_key_here # optional, server-side- Development Mode Run the application in development mode with hot-reloading:
bun devThe application will be available at http://localhost:3000.
- Scripts
bun dev - Starts the development server.
bun run build - Builds the application for production.
bun start - Starts the production server.
bun run lint - Runs ESLint to check code quality.-
Contributing Contributions are welcome! Please open an issue or submit a pull request.
-
License This project is licensed under the terms of the MIT license.