Apps
BGS-Service
Multi-language building cleaning service platform with booking system and Stripe payments
Overview
BGS-Service (Bardtke-Gebaeude-Service) is a building cleaning business platform. It provides a multi-language booking system with an admin dashboard, Stripe payment processing, and email notifications for a cleaning service company.
Production URL: bgs.hansenexus.dev
Key Features
- 6-Language Support — German, English, Arabic, Polish, Turkish, and Ukrainian via next-intl
- Booking System — Service booking with date/time selection, service types, and area calculation
- Admin Dashboard — Booking management, contact submission review, and user management
- Stripe Payments — Payment processing for cleaning services with checkout and webhooks
- Email Notifications — SMTP-based transactional emails for bookings and contact form submissions
- Contact Form — Public contact form with email forwarding to the business
Tech Stack
| Component | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Backend | Convex (8 tables) |
| Auth | @convex-dev/auth (Email/Password) |
| i18n | next-intl (de, en, ar, pl, tr, uk) |
| Payments | Stripe |
| SMTP via Nodemailer |
Convex Schema
8 tables organized into core and auth domains:
| Domain | Tables |
|---|---|
| Core | users, bookings, contactSubmissions |
| Auth | authSessions, authAccounts, authVerificationCodes, authVerifiers, authRefreshTokens |
Internationalization
BGS-Service supports 6 languages to serve a diverse customer base:
| Language | Code | Direction |
|---|---|---|
| German | de | LTR (default) |
| English | en | LTR |
| Arabic | ar | RTL |
| Polish | pl | LTR |
| Turkish | tr | LTR |
| Ukrainian | uk | LTR |
Locale strategy uses as-needed prefix with browser detection. Messages are stored in messages/{de,en,ar,pl,tr,uk}.json.
Architecture
src/app/[locale]/(dashboard)/ # Admin dashboard routes (protected)
src/app/[locale]/(auth)/ # Auth routes (login, register)
src/app/[locale]/(marketing)/ # Landing page, services, contact
convex/bookings.ts # Booking mutations and queries
convex/contactSubmissions.ts # Contact form submissions
convex/stripe.ts # Stripe checkout + webhooks
Shared Packages
@hn-monorepo/ui, @hn-monorepo/auth, @hn-monorepo/email, @hn-monorepo/security, @hn-monorepo/shared, @hn-monorepo/billing