FAQ

Answers to the questions we receive most often about Tutor. If your question isn't covered here, see Troubleshooting or open a ticket at creative-cape.com.

Installation & Requirements

What do I need before installing? Node.js 20 or newer and a PostgreSQL 14+ database (Neon is recommended — Tutor 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. Tutor 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. 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 master-data (subjects/levels), a demo tutor, and a few published lessons with scheduled lesson times so you can see the marketplace populated immediately.

Hosting

Where can I host Tutor? Any host that runs Node 20+ and can reach your PostgreSQL database. Tutor 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. Tutor 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? Tutor 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? Tutor 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, Tutor 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? 53 channel integration providers ship inside the product. A small free set works with no key: email:smtp, analytics:ga4, payments:bank, payments:paypal, and storage:r2. 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 53 channel providers ship in the product source. There is no zip to install — licensing simply unlocks what you've paid for.

Customization

How do I change the theme / colors? Brand and secondary colors are CSS variables (for example --brand-500, --secondary-600) defined in src/app/globals.css and wired into Tailwind. You can also set the primary and secondary colors, header layout, and dark mode from Admin → Settings → Theme → Appearance — those settings are stored in the database.

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. Tutor 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 (lesson time, places, extras, coupon), claims the place atomically so a lesson time can't be double-booked, and on successful payment confirms the booking. Students can pay a deposit or the full amount. The free payment drivers — Bank Transfer and PayPal — work out of the box. More gateways (Stripe, Razorpay, PayU, Square, Mollie, Paystack, Flutterwave, and others) are available as premium payment add-ons.

How do cancellations and refunds work? Each lesson carries a cancellation policy (flexible / moderate / firm / strict / non-refundable). When a student or tutor cancels, the refund amount is computed from the policy and the lead time, the booked place is released back to the lesson time, and the refund enters an admin approval queue before it is paid. Students are notified by email (and WhatsApp/SMS where enabled).

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? Tutor 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