A professional, conversion-focused Tours & Travels website with a static, fast frontend and a minimal Node/Express backend for lead capture and event tracking.
- Sticky Call & WhatsApp CTAs (mobile-first)
- Packages and Vehicle rentals (editable JSON)
- Booking Inquiry form → stores leads and optionally emails the admin
- Reviews/Testimonials, Gallery, FAQ, About, Contact with Google Map
- SEO: meta tags, OpenGraph/Twitter, JSON-LD schema (LocalBusiness + ratings)
- Analytics ready: Google Analytics and Facebook Pixel (via config)
- Fast, responsive UI built with Tailwind (CDN)
public/– Static frontendindex.html– Main sitescripts/main.js– Renders data, handles CTAs, form submission, analyticsdata/– Editable JSON data:packages.json,vehicles.json,reviews.json,faq.json,gallery.jsonconfig/site.config.json– Business info, colors, analytics IDsimages/– Put your images here (hero, packages, vehicles, gallery)
server.js– Express server; APIs:/api/lead,/api/track,/api/configdata/leads.json– Created automatically as leads arrive (gitignored)data/events.json– Click tracking logs (gitignored)
- Copy
.env.exampleto.envand adjust as needed (optional for email):
Copy-Item .env.example .env- Install dependencies:
npm install- Run in development (auto-restart on changes):
npm run dev- Open the site:
Edit public/config/site.config.json:
business.phone– used for tel: links (Call Now)business.whatsapp– used for WhatsApp click-to-chatbusiness.googleMapsEmbed– Google Maps embed URLanalytics.googleAnalyticsId– e.g.,G-XXXXXXXXXX(optional)analytics.facebookPixelId– e.g.,123456789012345(optional)ui.themeColorandui.accentColor– brand colors
Update data in public/data/*.json for packages, vehicles, reviews, gallery and FAQ.
Set SMTP credentials in .env to enable email on lead submission:
SMTP_HOST,SMTP_PORT,SMTP_SECURE,SMTP_USER,SMTP_PASSADMIN_EMAIL– recipient (also used as the from address)
If not configured, leads are still stored to data/leads.json.
- All CTA buttons post events to
/api/track. - Events are stored in
data/events.jsonfor simple analysis. - If Google Analytics/Facebook Pixel IDs are provided, you can configure events there too.
- Base meta tags set in
index.html. - JSON-LD LocalBusiness (with optional AggregateRating) injected by
main.jsfrom config and reviews.
5 minutes to deploy!
npm install -g vercel
vercel login
vercel📖 Read: VERCEL_QUICK_START.md for complete guide.
gcloud auth login
gcloud app deploy📖 Read: QUICK_DEPLOY.md or DEPLOYMENT_GUIDE.md for complete guide.
Works on any Node.js host:
- Vercel (recommended)
- Google Cloud
- Railway
- Render
- Heroku
- VPS/DigitalOcean
See DEPLOYMENT_OPTIONS.md for comparison and recommendations.
- Images in
public/images/...are placeholders; replace with your assets. - For WhatsApp programmatic messaging, an approved WhatsApp Business API is required; this project uses click-to-chat links instead.