Documentation
Everything you need to get GHLThemer running on your GoHighLevel pages — from installation to advanced customization.
Quick Start
GHLThemer works by delivering a CSS file to your GHL pages via a tiny 2-line embed script. No GHL API, no OAuth — just CSS. You can be live in under 5 minutes.
Create an account
Add a client
Add a site
Design your theme
Paste the embed code into GHL
Installing the Embed Code
The embed code is two script tags. The first sets your site token; the second loads the GHLThemer script.
<script>window.__THEME_SITE__ = 'YOUR_SITE_TOKEN';</script>
<script src="https://ghlthemer.com/theme.js"></script>Replace YOUR_SITE_TOKEN with the token shown on your site card. You can also click the token chip to copy it directly.
Where to paste it in GoHighLevel
- Open GoHighLevel and go to your Funnel or Website.
- Click Settings (gear icon at the top).
- Scroll to Custom Code → paste into the Head Tracking Code box.
- Save and reload your funnel page — the theme is now live.
How the script works
When a visitor loads your GHL page, theme.js:
- Temporarily hides the page (prevents style flash).
- Fetches your compiled CSS from
ghlthemer.com/api/css/[token]. - Injects it into the page as a
<style>tag. - Shows the page — all within milliseconds.
A built-in 3-second safety timeout ensures your GHL page always renders even if GHLThemer is temporarily unreachable.
Multiple sites per client
Each site has its own token. If a client has multiple funnels, add a separate site for each one. They all share the same theme — designed once in the Theme Editor.
Theme Editor Reference
The Theme Editor is where you design your client's look. Changes are compiled into CSS on save and delivered to all sites under that client within 30 seconds.
Colors
| Field | Description |
|---|---|
| primary_color | Main brand color — buttons, links, accents. |
| secondary_color | Supporting color for secondary elements. |
| background_color | Page background. |
| text_color | Body text color. |
| navbar_bg | Navigation bar background. |
| navbar_text | Navigation bar text and icon color. |
| button_text_color | Text color inside buttons. |
| input_border_color | Border color on form input fields. |
| link_hover_color | Color applied to links on hover. |
Typography
| Field | Description |
|---|---|
| heading_font | Google Font name for headings (h1–h6). |
| body_font | Google Font name for body text and paragraphs. |
| font_weight | Default font weight (400, 500, 600, 700). |
Layout
| Field | Description |
|---|---|
| border_radius | Corner rounding: none, sm, md, lg, full. |
| button_style | Button shape preset: solid, outline, ghost. |
| section_padding | Spacing above/below page sections. |
Custom CSS
The built-in CSS editor (powered by CodeMirror) lets you write arbitrary CSS that gets appended after all auto-generated styles. Use it for overrides that the theme fields don't cover.
CSS Priority order (highest wins):
- CSS variables from theme fields
- Auto-generated styles
- Global patch (applied by GHLThemer admin across all users)
- Your custom CSS
- Emergency CSS (highest priority override)
CSS Snippets
The Snippets panel offers 20+ pre-built CSS blocks grouped by category (forms, buttons, navbar, etc.). Toggle any snippet on to add it to your theme instantly — no manual typing required.
Theme History
Every time you save, a snapshot is stored. The History drawer (clock icon) shows your last 10 saves — click Restore on any entry to roll back without losing your current version.
Theme Templates
GHLThemer ships with 30+ professionally designed theme templates covering 12 niches — medical, real estate, fitness, legal, finance, education, home services, dental, restaurant, beauty & spa, automotive, and photography.
Applying a template
Templates can be applied in two places:
- Theme Editor — click the Templates button in the top-right corner of the editor. A side sheet opens with the full gallery. Click Apply template on any card to instantly load its colors, font, and border radius into the editor. Then save as usual.
- Templates page — go to Dashboard → Templatesto browse all templates. Pick a template and choose which client to apply it to. You are redirected to that client's Theme Editor with the template pre-loaded.
Free vs Pro templates
Templates marked Free are available on all plans. Templates marked Prorequire a paid plan. On a free plan the Pro template card shows an “Upgrade to apply” lock — all other filtering and browsing still works.
Filtering
Use the All / Free / Pro toggle and the niche pills to narrow the gallery. Both filters combine — you can show, for example, only free medical templates.
AI Color Suggestions
The AI Color Suggestions feature uses GPT-4o mini to generate three professionally matched color palettes based on your client's industry and brand vibe. Each palette covers all four theme color fields — primary, secondary, background, and text.
How to use it
Open the Theme Editor for a client
Click the AI Suggestions button
Select industry and vibe
Generate and apply
Credit system
AI suggestions consume one credit per generation (not per palette — each click of “Generate palettes” uses one credit and returns three palettes).
| Field | Description |
|---|---|
| Free | 3 AI credits per month. |
| Basic | 10 AI credits per month. |
| Pro | 50 AI credits per month. |
| Agency | Unlimited AI credits. |
Credits reset automatically at the start of each calendar month. The modal shows how many credits remain. When credits are exhausted, the generate button is replaced with an upgrade prompt (on paid plans, wait until the monthly reset).
Analytics
Every site you create automatically gets analytics tracking. No extra configuration, no third-party scripts — GHLThemer tracks page views, form interactions, and calculates conversion rates entirely server-side.
What is tracked
| Field | Description |
|---|---|
| Page views | Recorded each time a visitor loads your GHL page with the embed code active. |
| Form clicks | Recorded when a visitor interacts with a form on the page (clicks a submit button or input). |
| CVR (Conversion Rate) | Calculated as form clicks ÷ page views × 100, shown as a percentage per site. |
Viewing analytics
Open a client from your dashboard and click the Analyticstab. You'll see aggregate stats for the last 30 days across all sites, plus a per-site breakdown table with individual CVR scores.
Conversion score badge
Each site gets a Conversion Scorebadge you can share with clients as proof of performance. The badge is a small embeddable widget that shows the site's current CVR — useful for reports and proposals.
Agency & White-label
The Agency plan is built for teams managing themes across multiple GHL accounts. It adds team collaboration, a client portal, and white-label branding.
Team Members
Agency owners can invite up to 5 team members from Dashboard → Team. Each member gets their own login and can manage clients and themes under the shared workspace. The agency owner is responsible for all activity by their team.
Client Portal
You can grant your end-clients access to a white-labelled portal where they can view and (optionally) edit their own theme. Portal access is managed per-client from the client detail page.
Portal permission levels:
- View only — client can see their theme but not change it.
- Can edit — client can modify colors, fonts, and custom CSS.
- Can view theme — granular toggle for specific sections.
White-label Branding
The client portal presents GHLThemer under your own branding — your logo, your domain, your company name. Clients never see the GHLThemer name unless you choose to show it.
Plans & Limits
GHLThemer offers four plans. Each plan enforces limits on the number of clients, sites per client, and access to advanced features.
| Field | Description |
|---|---|
| Free | Limited clients & sites. Free templates only. 3 AI color credits/month. No custom CSS editor. |
| Basic | More clients and sites. All templates (free + pro). 10 AI color credits/month. Custom CSS enabled. |
| Pro | Higher limits. All templates. 50 AI color credits/month. Analytics dashboard (CVR + form clicks). Theme history. |
| Agency | Unlimited clients & sites. All templates. Unlimited AI color credits. Full analytics. Team members (up to 5). Client portal. White-label. |
For current pricing and exact limits, see the Pricing page.
Free Trial
New accounts get a 7-day free trial of all Pro features automatically — no credit card required. After the trial, the account reverts to the Free plan unless you upgrade. Day 5, 6, and 7 reminder emails are sent so you have time to decide.
Payment Options
International payments are processed by LemonSqueezy. Pakistan-based payments are processed by Safepay. Your payment gateway is selected automatically based on your country at signup.
Troubleshooting
Theme is not loading on my GHL page
- Confirm the embed code is in the Head Tracking Code section, not the body.
- Check the site token in the first script tag matches exactly what's shown in your GHLThemer site card.
- Open your browser DevTools → Network tab → filter for
api/cssand confirm the request returns 200. - Make sure you saved your theme in the editor at least once.
I see a white flash before the page loads
- The embed must be in the head, not the body. If it's in the body, the page renders before the script runs.
- Verify no other scripts on the page are delaying execution.
My custom CSS is not applying
- GHL pages often use high-specificity selectors. Add
!importantto rules that are being overridden. - Use browser DevTools to inspect which rule is winning and match or increase specificity.
Theme shows old styles after I save
The CSS endpoint caches for 30 seconds. Hard refresh your GHL page (Ctrl+Shift+R or Cmd+Shift+R) or wait 30 seconds and reload normally.
My plan features are not unlocked after payment
- Wait 1–2 minutes for the payment webhook to process.
- Refresh the billing page — it will show your active plan.
- If still on the wrong plan after 5 minutes, open a support ticket from the dashboard.
Portal invite email was not received
- Ask your client to check their spam folder.
- Confirm the email address is correct in the portal invite dialog.
- You can re-send the invite from the portal management page.
FAQ
Is GHLThemer an official GoHighLevel product?
No. GHLThemer is an independent product and is not affiliated with, endorsed by, or a marketplace application of HighLevel Inc. It works by injecting CSS — no GHL API access or OAuth is used.
Does GHLThemer require access to my GHL account?
No. GHLThemer never asks for your GHL credentials, API key, or OAuth token. The only thing that touches your GHL account is the 2-line embed code you paste yourself.
What happens if GHLThemer is temporarily down?
The theme.js script has a built-in 3-second safety timeout. If GHLThemer cannot be reached, the script cancels and your GHL page loads normally — without any theme, but without breaking either. We target 99.9% uptime for the CSS delivery endpoint.
Can I use one theme across multiple GHL funnels?
Yes. All sites under a client share the same theme. Add a site for each funnel or page group and paste the embed code with each site's unique token. When you update the theme, all sites update simultaneously.
Can I cancel my subscription at any time?
Yes. Cancel any time from the Billing page in your dashboard. Your plan stays active until the end of the current billing period, then reverts to Free. No cancellation fees.
Is my data safe?
All data is stored in Supabase (PostgreSQL) with row-level security enforced at the database layer. Every user can only access their own data. No GHL credentials are ever stored.
I have a question not answered here.
Open a support ticket from your dashboard (log in first) or email us at support@ghlthemer.com.