FAQ
Answers to the questions we receive most often about Tours, the white-label tours & experiences booking marketplace by CreativeCape Solutions. If your question isn't covered here, see Troubleshooting or open a ticket at creative-cape.com.
Product & Concepts
What is Tours? Tours is a white-label, multi-portal tours & experiences booking marketplace built on Next.js 16 (App Router), React 19, and TypeScript, backed by PostgreSQL. It ships five surfaces out of the box: a public storefront, and customer, operator, admin, and influencer portals.
What are the core concepts I'll work with? The domain vocabulary is consistent throughout the product and this documentation:
| Term | Meaning |
|---|---|
| Tour | A bookable experience listed on the marketplace. |
| Operator | The seller who owns and runs tours. |
| Traveler / customer | The buyer who books a tour. |
| Departure | A dated, capacity-limited option of a tour. |
| Inclusion | What a tour price covers (transport, meals, guide, etc.). |
| Extra | An optional paid add-on for a booking. |
| Booking | A confirmed reservation created at checkout. |
| Coupon | A discount code applied during checkout. |
| Review | Traveler feedback on a completed booking. |
| Payout / commission | Operator earnings and the marketplace's share. |
Is Tours really white-label? Yes. Branding, colors, business name, languages, and content come from settings stored in the database — nothing is hardcoded. You can run it under your own brand without editing source.
Installation & Requirements
What do I need before installing?
Node.js 20 or newer and a PostgreSQL 14+ database (Neon is recommended — Tours connects through @neondatabase/serverless). For media uploads you also want a Cloudflare R2 bucket (or any S3-compatible storage). That's the whole baseline — no other system services are required for the core product.
Do I need to know how to run Node and Postgres?
You need a Node host and a reachable Postgres database, but you don't run migrations or scripts by hand. Tours ships a first-run Install Wizard at /install that walks you through Welcome → Database → License → Admin Account → Site Settings → Done. It creates the database schema, writes your environment values, and creates the first admin account for you. The schema is self-healing and idempotent.
Do I need to run database migrations manually?
No. The schema is created automatically — by the Install Wizard during the Database step, and the app self-heals missing tables on demand via idempotent ensure*Schema() functions. There is no separate migration command to run.
Can I load demo content? Yes. The wizard has an optional "starter content" step that seeds demo tour categories, a demo operator, and a few published tours so you can see the marketplace populated immediately.
Hosting
Where can I host Tours? Any host that runs Node 20+ and can reach your PostgreSQL database. Tours is a standard Next.js 16 App Router app, so platforms like Vercel, Railway, Render, Fly.io, or a Node-capable VPS all work. Neon is the recommended database and Cloudflare R2 the recommended storage.
Can I use Vercel?
Yes. Tours runs on Vercel. One thing to know: Vercel's filesystem is read-only, so the wizard can't write a .env file there. On read-only hosts the installer shows the environment values for you to set as Vercel project environment variables instead (for example DATABASE_URL and JWT_SECRET). The database schema is still created over the serverless Neon connection, and all uploads go to R2 — nothing is written to local disk in production.
Can I use shared hosting / cPanel? Tours is a Node + PostgreSQL application, not a PHP app. Traditional shared cPanel hosting without Node support will not work. Use a Node-capable VPS or a platform like Vercel, Railway, or Render.
Do I have to use Neon and Cloudflare R2? Neon is recommended for its serverless Postgres, but any PostgreSQL 14+ works. Any S3-compatible storage (R2, AWS S3, DigitalOcean Spaces, Google Cloud Storage) works for uploads — these are configured from the admin panel.
Licensing
How does licensing work? Tours has two layers. (1) A product license ties your purchase code to your domain — activate it in the Install Wizard or in Admin → License. Verification is offline (RS256 signature) with a baked-in public key, so it doesn't depend on a live connection on every request, and it has a 14-day fail-open grace window. (2) Add-on licensing unlocks premium add-ons. Localhost and LAN hosts skip licensing entirely (dev mode), so you can build and test freely. See the License Guide.
Does the license hard-block my site if it can't verify? No. Enforcement fails open. If the license server is briefly unreachable, Tours keeps running on a 14-day grace window. Even when unactivated, the product shows an admin License Gate and a public License Banner rather than taking the site down.
How do I activate premium add-ons?
A premium add-on unlocks one of two ways: your product license carries an entitlement that covers it (the wildcard */all, a whole channel id, or an exact <channel>:<provider> key), or you enter a per-add-on purchase code in Admin → Add-ons, which is exchanged once with the license server for a domain-bound token and then verified offline. Unlocking is the first gate; the second gate is the admin toggle that actually switches the add-on on.
What's free vs premium?
65 add-ons ship inside the product. A small free set works with no key: email:smtp, analytics:ga4, payments:cod, payments:bank, payments:paypal, storage:r2, video:youtube, and video:vimeo. Everything else is a premium add-on. On a dev host (localhost/LAN) everything is unlocked for testing.
Do I need to download add-ons separately? No. All 65 add-ons (54 channels + 11 features) ship in the product source. There is no zip to install — licensing simply unlocks what you've paid for.
Which license tier do I need — Regular or Extended? If your travelers don't pay to access the platform, the Regular License covers you; if you charge for access or run it as SaaS, you need the Extended License. See the License Guide for the plain-English breakdown.
Customization
How do I change the theme / colors?
The primary brand color is blue, defined as CSS variables (RGB channel triples) in src/app/globals.css and wired into Tailwind as the brand-* scale. You can also set colors, header layout, and dark mode from Admin → Settings → Theme → Appearance — those settings are stored in the database. The default blue tokens are:
:root {
--brand-500: 59 130 246; /* primary blue */
--brand-600: 37 99 235; /* hover / active */
--brand-700: 29 78 216; /* pressed / deep */
}
Neutral text, borders, and surfaces use the ink-* scale. Avoid hardcoding raw hex values — use the design tokens so re-branding stays a single change.
How do I change the logo and brand name?
From Admin → Settings → Theme → Branding: upload your logo, app icon, and favicon, and set the business name, website, and description. These values are stored in the theme_settings table and are also pulled into branded transactional emails automatically.
Can I add my own pages, add-ons, or endpoints? Yes. Tours follows a documented core/product layer split and Next.js App Router conventions. New features can be added without touching core files. See the developer and add-on guides in the bundled docs.
Payments
How do payments work? Checkout re-prices the booking on the server from the chosen departure and party size, and on successful payment confirms the booking. The free payment drivers — Cash on Delivery / offline, Bank Transfer, and PayPal — work out of the box. Twenty more gateways (Stripe, Razorpay, PayU, Square, Mollie, Paystack, Flutterwave, and others) are available as premium payment add-ons.
Can travelers pay a deposit instead of the full amount? Where a tour allows it, the traveler may choose deposit vs full payment at checkout. The choice is an option only — the actual amount is always recomputed server-side from the departure price and party size, never taken from the client.
Operators, Payouts & Influencers
How do operators join the marketplace?
Anyone can apply through the "become an operator" flow at /operator/become. Once approved in the admin panel, the operator gets the /operator portal to manage tours, departures, availability, reservations, earnings, and payouts.
How are commission and payouts handled?
Each booking records the marketplace commission and the operator's share. Operators track earnings and request payouts from their portal; admins review and settle them. Influencers earn commission on attributed bookings and track their own payouts in the /influencer portal.
Configuration & Secrets
Where are my secrets stored?
Core secrets like DATABASE_URL and JWT_SECRET live in your environment (a .env file on writable hosts, or platform environment variables on hosts like Vercel). Integration secrets — SMTP credentials, storage keys, payment gateway keys — are stored in the database, encrypted, and managed from the admin panel rather than in env files. Your activated license is stored as a single row in the app_license table.
How do I add a language? Tours ships with English, Hindi, Tamil, and Arabic (with RTL support for Arabic). Manage languages and edit translations from Admin → Settings → Languages. Translations are keyed by the English source string, and English is the fallback for any missing keys.
Support & Updates
What does support include? Bug fixes, help with the included features, and answering setup questions. Custom development, third-party service issues, and server administration are not covered. See the Support Policy.
How do I get support? Open a ticket at creative-cape.com or email support@creative-cape.com with your purchase code, environment details (Node/PostgreSQL versions, host), and clear steps to reproduce.
Are updates free? Yes — free lifetime updates for all license holders, downloaded from your purchase account. See the Changelog and Roadmap.
© CreativeCape Solutions · creative-cape.com · support@creative-cape.com