Productive IT logo PRODUCTIVE IT · BrandGrowth OS docs

How to use BrandGrowth OS

The practical guide for end users (brand owners, marketers) and the founder/operator. This doc mirrors the product's structure — open the product and follow along. For editing the public pages (marketing/website team), read WEBSITE_HANDOFF.md instead.


1. Get in

2. The workspace model

One organization (org) per brand/team. Everything you create — profiles, scans, campaigns — lives inside your workspace and is never visible to other workspaces. Plan limits (seats, scans/month, matches/month) come from your org's plan.

3. The engines — what each one does, in order of use

  1. Profiles (set up first): create a Business Profile — brand name, industry, audience segments, geography, website, budget range, AOV, contribution margin. This data feeds every other engine, so the more honest the inputs, the better the outputs.
  2. Visibility Radar — run a scan against your website (or the demo sites) and get a trust-scored report: SEO basics, structured data, socials, NAP consistency, content signals. Each finding carries a severity and a concrete fix. Findings roll up into the dashboard score.
  3. BrandMatch — from your profile, runs partner candidates against your category/audience/geography and scores the fit. Every recommendation shows its source, freshness, and confidence — never a bare "trust me" list. Save the interesting ones.
  4. Sponsorship Intelligence — sponsorship/influencer opportunities scored for relevance to your brand scope and budget; move them through new → considering → pursued → won/declined states.
  5. Partnership ROI — model a campaign's return: enter spend, expected reach/conversion inputs, and compare scenarios side by side before committing money.
  6. Opportunity Engine + Action Plan — the central engine turns everything above into ranked opportunities and a concrete recommended action plan with statuses. This is the "what do I do Monday morning" page.

4. The AI assistant

5. Notifications & weekly digest

6. Team

Team page: invite members by email (role: owner/admin/member/viewer — capability matrix enforced server-side). Invites arrive by email; accept from the link. Seats are plan-limited. Removing a member revokes access immediately.

7. Account safety & data control

8. Plans & paying

9. Founder/operator quick ops

Task How
Deploy an update push to master, then on the VPS: cd /opt/brandgrowth-os && scripts/deploy.sh --skip-migrate (the script finds Node ≥ 22 itself and restarts the systemd unit safely)
Approve or reject an upgrade request /admin → Plan change requests → Approve & apply / Reject. Approving applies the plan (orgs.plan_key moves in the same transaction that records decided_by), so the request queue is the whole loop — no SQL. A double-click answers 409 ALREADY_DECIDED, and a request naming a retired plan is refused rather than granted
Check health curl -s https://productiveit.in/products/brandgrowth-os/api/v1/healthz
See who's on VPS: journalctl -u brandgrowth-os -n 50
Re-run weekly digest manually VPS: node scripts/weekly-digest.mjs --dry-run (preview), then without --dry-run. Idempotent per workspace+week: if a week was generated early/empty, delete its weekly_digest_runs row first, then re-run
Re-send one week after a renderer/content fix VPS: node scripts/weekly-digest.mjs --resend --org "<workspace name or UUID>" --week-start YYYY-MM-DD, then scripts/mail.sh. --resend is the narrow path: it requires --org, refuses an ambiguous name, and never touches the ledger — it exists precisely to push a corrected email for a week that was already generated (DEPLOY.md §4.2). The AI paragraph is reused from the cache while the measurement is unchanged; add --regenerate-insight to rewrite it
Watch for churn the hourly plan-change notice emails every orgs.plan_key change (written by a trigger, so an operator's SQL is caught like a Razorpay capture). A downgrade carries its churn context: why (the request note when an operator approved one, otherwise the audit source), how old the workspace is, and when it was last used — a line marked ← REASON NOT RECORDED is the one to chase. Preview one without sending: node scripts/plan-change-notify.mjs --dry-run
Drain the email queue automatic every 5 min; manual: node scripts/mail.mjs
Backups automatic daily 03:15 + WAL continuous; offsite copy lands on the founder Mac daily; restore drills in DISASTER_RECOVERY.md
Monday health at a glance the Monday ops dashboard email (08:30 UTC) merges the digest pipeline, AI free tiers, and backup freshness into one verdict — ALL CLEAR or N fail, M warn in the subject; sections name what broke and the documented fix
Inspect one section only VPS: node scripts/digest-healthcheck.mjs --dry-run (digest), node scripts/ai-health-report.mjs --dry-run (AI), node scripts/ops-dashboard.mjs --dry-run (all three) — the dashboard prints the exact merged email without sending
AI providers down? logs show [ai-gateway] all providers failed; features degrade, nothing breaks. Details in AI.md

10. Known limits (honesty section)