A modern, multilingual agency/hosting website template with WHMCS billing integration. Perfect for web agencies, hosting providers, and digital service businesses.
Built with Next.js 15, TailwindCSS v4, and TypeScript.
- Multi-language support (NL, EN, DE, FR, ES)
- WHMCS Integration (optional)
- Dynamic domain pricing
- Domain availability search
- Hosting package pricing
- Client dashboard (email lookup)
- Contact form → Support tickets
- Spam Protection
- Input validation (email, phone, message length)
- Cloudflare Turnstile CAPTCHA (optional)
- Botpress Chatbot (optional AI chat widget)
- Telegram notifications for contact form
- Responsive design with dark theme
- SEO optimized
# Install dependencies
pnpm install
# Copy environment file
cp .env.local.example .env.local
# Run development server
pnpm devIn WHMCS Admin:
- Go to Setup → Staff Management → API Credentials
- Click Generate New API Credential
- Set a description (e.g., "Website Integration")
- Copy the Identifier and Secret
Enable these permissions for your API role:
GetTLDPricing- Domain pricingGetProducts- Hosting pricingDomainWhois- Domain availabilityGetClientsDetails- Client lookupGetClients- Client searchGetClientsProducts- Client servicesGetInvoices- Client invoicesGetTickets- Support ticketsOpenTicket- Create tickets from contact form
Add to your .env.local:
WHMCS_URL=https://billing.yourdomain.com
WHMCS_API_IDENTIFIER=your_identifier
WHMCS_API_SECRET=your_secretOnce configured, these features work automatically:
/diensten/domeinregistratie- Live domain pricing & search/diensten/webhosting- Live hosting pricing/mijn-account- Client dashboard (email lookup)/contact- Creates WHMCS support tickets
For contact form notifications via Telegram:
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
TELEGRAM_TOPIC_ID=optional_topic_id- Message @BotFather to create a bot
- Message @userinfobot to get your chat ID
- Add the bot to your group/channel
The contact form includes built-in validation:
- Name: minimum 2 characters
- Email: valid format required
- Phone: valid format (optional field)
- WhatsApp: valid phone number required
- Message: minimum 10 characters
Add CAPTCHA protection to your contact form:
- Go to Cloudflare Turnstile
- Create a new widget (select "Managed" for best UX)
- Add to your
.env.local:
NEXT_PUBLIC_TURNSTILE_SITE_KEY=your_site_key
TURNSTILE_SECRET_KEY=your_secret_keyThe CAPTCHA widget will automatically appear on the contact form when configured.
Add an AI-powered chatbot to your website using Botpress.
- Create a free account at Botpress Cloud
- Create a new bot and configure your flows/knowledge base
- Go to Integrations → Webchat
- Click Configure and customize the appearance
- Copy the two script URLs from the Pre-configured tab
Edit app/layout.tsx and replace the Botpress scripts:
{/* Botpress Chat Widget */}
<Script
src="https://cdn.botpress.cloud/webchat/v3.5/inject.js"
strategy="lazyOnload"
/>
<Script
src="https://files.bpcontent.cloud/YOUR_BOT_ID/YOUR_CONFIG.js"
strategy="lazyOnload"
/>To remove the chatbot entirely, delete both <Script> tags from app/layout.tsx.
- AI-powered conversations with knowledge base
- Customizable appearance and colors
- Multi-language support
- Lead capture and integrations
- Free tier available (1000 messages/month)
app/
├── (default)/
│ ├── diensten/
│ │ ├── domeinregistratie/ # Domain registration
│ │ ├── webhosting/ # Hosting packages
│ │ └── ...
│ ├── mijn-account/ # Client dashboard
│ └── ...
├── api/
│ ├── domain-check/ # Domain availability API
│ ├── domain-pricing/ # Domain pricing API
│ ├── hosting-pricing/ # Hosting pricing API
│ ├── client/lookup/ # Client lookup API
│ └── contact/ # Contact form API
components/
├── domain-search.tsx # Domain search widget
└── ui/
locales/ # Translations (nl, en, de, fr, es)
If WHMCS is not configured, fallback prices are used. Edit these in:
app/api/domain-pricing/route.ts- Domain pricesapp/api/hosting-pricing/route.ts- Hosting prices
- Create new locale file in
locales/ - Add locale to
lib/i18n/LanguageContext.tsx - Add translations to page components
Add environment variables in Vercel dashboard.
docker build -t agency-template .
docker run -p 3000:3000 agency-template- Based on Cruip's Tailwind Template
- WHMCS integration by GWC Web Design
GPL-3.0 - See LICENSE for details.
