One page for your whole operation: the three brands, every product, where the data lives, how to switch things on, and how to run and change any of it. If you forget how a piece works, start here.
You run three brands. Each has a clear job — this is the spine of the whole thing.
The business. Your agency — marketing site, client CRM, capture forms, portal, reviews. This is what earns.
The course / digital product. Teaches people to start an AI marketing business. Free mini-course up front, paid cohort behind it.
The tools (SaaS). The Studio, Loop rewards, the HQ dashboard — the software you use and can sell.
Everything sits on one repo and one database. Here's how a visitor flows through it:
Ads / social / word of mouth
│
▼
A landing page ───────────────► Supabase (one database + logins + files)
(loyalty, university, ▲ │
content-studio, capture) │ ▼
│ TB Command HQ · Client CRMs
▼ (/hq — you) (/crm — clients)
Lead / signup captured ────────────────┘
Four accounts run the entire platform. Bookmark these.
| Service | What it does | Log in at | Cost |
|---|---|---|---|
GitHubnikbyrd28-pixel/tb-solutions | All the code. Each page = one folder with an index.html. | github.com | $0 |
| GitHub Pages | Hosting. Every push to main auto-deploys to tbsol.net in ~30–60s. | (automatic) | $0 |
Supabaseqgbjiqdwzgkjkmqyjsmc | The one database — leads, clients, Loop members, logins, file storage, backups. | supabase.com | $0 |
| Google AI Studio | Free Gemini key that powers AI script/copy generation. | aistudio.google.com | $0 |
anon key you'll see written into page code is meant to be public — the database's row-level security is what actually protects data. Never put a service_role key in a web page.This is the only "install." Do it once and leads, clients, Loop members, and cross-device sync all light up. ~5 minutes.
tb-command, set a database password (save it), pick the nearest region, create. Wait ~1 minute.hq/supabase-schema.sql from the repo, paste the whole thing, Run. Then do the same with hq/storage-setup.sql (creates the file buckets). You'll see "Success."hq/index.html, near the top of the script find var SUPA_URL=''; and var SUPA_KEY=''; — paste your two values between the quotes, save, push. Open /hq, click Create your account, log in. Data now syncs across every device.qgbjiqdwzgkjkmqyjsmc) is set up and running — this section is your rebuild recipe if you ever start fresh or hand it to someone.leads your pipeline · clients your book of business · client_leads every lead captured for any client · intakes new-client intakes · tickets support · reviews testimonials (approved → homepage) · client_errors a JS error log from every page · plus the Loop tables (members, visits, rewards, prizes) behind the rewards RPCs · storage buckets: uploads (public), backups (private).
Security in one line: every table has row-level security on. Forms can insert but not read; you (owner) see everything via an email check; clients see only their own rows. The front-end is untrusted by design.
One shared file, /track.js, is already loaded on every page. Fill in four IDs once and every page tracks views + signups, and stamps each lead with the ad that produced it.
track.js (repo root)Only four lines to fill. Blank = off (nothing loads, no errors).
var META_PIXEL_ID = ''; // Meta → Events Manager → Pixel ID var GA4_ID = ''; // GA4 → Admin → Data Streams → G-… var GADS_ID = ''; // Google Ads → AW-… id var GADS_LEAD_LABEL = ''; // the Lead conversion's label
PageView fires on load.window.trackLead(), which fires a Meta Lead and a Google conversion. Ad clicks (utm_*, gclid, fbclid) are captured on landing and kept 45 days, then stamped onto the lead for attribution.tbsol.net/capture/?c=slug&name=Business&utm_source=facebook. Leads land in their CRM + your pipeline with the source tagged — no extra setup.Turns one idea into a finished vertical video, a click-winning thumbnail, and a caption. It runs entirely in the browser — no backend needed to use it. Lead capture on the landing page is the only part that touches the database.
The free, ad-ready front door. Captures an email, then opens the tool. Send ads here.
The editor itself. Everything below lives here.
| Feature | What it's for |
|---|---|
| AI script → video | Type an idea, get a scene-by-scene script and a rendered vertical reel. Feed it your knowledge base (in Brand Kit) so scripts sound like you. |
| Thumbnail Studio | Click-winning YouTube/thumbnail images with presets. Or snap a photo and turn it into a thumbnail. |
| Upload & trim video | Upload from camera roll or record on the spot; use clips as scene backgrounds; trim to ≤30s, set speed. |
| Teleprompter recorder | Get a script, read it on-camera (whole or in segments), flip camera, re-take. |
| Voiceover + music | Record a voiceover or add music; audio is mixed into the render. "Always audio." |
| Color grade & captions | One-tap grades, per-scene caption position/size/color/style, transitions. |
| Brand Kits & templates | Save colors, logo, fonts, and a knowledge base per brand. Save your own reusable templates. |
| Projects | Save / load / export / import a whole project. Undo & redo. |
/content-studio/, not the raw tool — that's the page that captures the lead.A free 4-lesson mini-course acts as the lead magnet; the paid cohort is the offer behind it. All lessons share one stylesheet (/university/u.css) and script (/university/u.js).
| Page | Job |
|---|---|
/university/ | The premium offer page + apply form (writes to intakes). |
/university/start/ | Free "Start Here" lesson + email opt-in → unlocks the toolkit. |
/university/toolkit/ | The free first-client toolkit (niche cheat-sheet, outreach scripts, call framework). |
/university/lessons/ | Mini-course hub — 4 lessons + the bonus toolkit. |
/university/lessons/niche/ | Lesson 2 — pick a niche you can win. |
/university/lessons/content/ | Lesson 3 — make content that sells (routes to the Studio). |
/university/lessons/pricing/ | Lesson 4 — price it & keep clients (routes to Loop). |
/university/start/. It captures the email, then gives real value immediately (the toolkit)./university/ writes to intakes — read them in TB Command.A standalone loyalty SaaS you sell to local businesses. Customers collect visits and rewards; the owner gets a dashboard; staff punch and redeem. Powered by Supabase RPCs.
The landing page you send to prospects. Ad-ready, captures leads.
What a customer sees — visits, rewards, spin, save-to-phone.
Members, tiers, bookings, prizes — what the business owner logs into.
Scan · punch · redeem at the counter. PIN-protected.
slug./rewards/?c=slug, the printable poster /rewards/poster/?c=slug for the counter, and the staff console with their PIN.The agency side. These pages capture leads for you and your clients and give clients somewhere to log in.
| Page | File | Does |
|---|---|---|
| tbsol.net | index.html | Marketing site + ARIA chat + reviews. Nav links to the free Studio and University. |
| /hq — TB Command | hq/index.html | Your dashboard: leads, clients, pipelines, reviews moderation, analytics, and the Sites directory (where this guide is linked). |
| /crm | crm/index.html | Client CRMs — each client sees only their leads; you see all. |
| /marketing-engine | marketing-engine/ | AI generator — plans, ad copy, emails, social, campaign kits. |
| /capture | capture/ | Universal lead form for any client: ?c=slug&name=Display. |
| /portal · /support · /review · /start | portal/ support/ review/ start/ | Client portal, tickets, review collector, new-client intake. |
<script>, a broken bracket takes the whole page down — check your edit before committing. (2) Database changes are add-only: new tables/columns are fine; never rename or delete a column a page uses.?v=2 to the URL to bust it.The whole platform, tap-to-open. This same list lives in TB Command → Sites.
| Business (tbsol.net) | University |
|---|---|
|
Main site TB Command (HQ) All-clients CRM Marketing Engine Capture template Client portal · Support · Reviews |
University (offer) Free Start-Here lesson First-client toolkit Mini-course hub L2 niche · L3 content · L4 pricing |
| Studio (TB Command) | Loop (rewards) |
|
Content Studio (landing) The Studio (tool) |
Loop sales site Rewards card (demo) Owner dashboard Staff console · Poster |
| Symptom | Check |
|---|---|
| A page is blank / broken after an edit | A script typo. GitHub → History on that file → restore the previous version → commit. |
| Site shows old content | Browser cache, not the deploy. Hard-refresh or add ?v=2. Confirm the deploy went green in GitHub → Actions. |
| A signup "worked" but nothing saved | Supabase → Table editor → is the row there? If not, check client_errors for the JS error, and that the anon key/URL are set. |
| Loop card won't load | Run hq/supabase-schema.sql + hq/storage-setup.sql; confirm the RPCs exist and the ?c=slug matches a real program. |
| Client says their CRM is empty | Their clients.email must equal their login email, and clients.business must match the capture ?c= slug (case/spacing don't matter). |
| AI script generation fails | The Gemini key. aistudio.google.com/apikey → new key → update it. |