6 Commits

Author SHA1 Message Date
metatroncubeswdev
9238b8c77a Competitor and trend reports in Documents, search-trends chart, Open report
- Documents tab lists competitor analyses and trend scans (they were listed
  by the server but hidden in the page)
- Competitors page: "Open report" jumps to the latest competitor report
- New report block mc:search-trends: interest over time per keyword,
  trend %, busiest month and rising searches, from stored Google Trends data

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 19:44:10 -04:00
metatroncubeswdev
f86bd9ce33 Competitor scan: AI finds rivals, Instagram verifies, visual report
- competitor-scan skill + run type: web search for local rivals and
  niche benchmarks, competitor_suggest checks each on Instagram
- Suggestions inbox on Competitors page (Track / Dismiss)
- Report blocks: leaderboard, size-vs-engagement map, format lift,
  market's best posts, hashtag gap, Google ratings
- Stats: engagement by format, top hashtags; audit adds leaderboard

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:44:37 -04:00
metatroncubeswdev
aa56d2b531 Monthly client report from real numbers, emailed or automatic
- Posts and results for the month, follower change, best posts, formats that worked, every post,
  competitor comparison and next month's plan; branded PDF via tools/report-pdf (no AI key needed)
- Client page → Documents: create for any month, email the PDF to the client's reviewer
- Optional per client: create on the 1st of each month and email it; admins get a bell notification
- Documents list groups monthly reports separately

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:11:04 -04:00
metatroncubeswdev
3cbc76e7f1 Support Instagram-only clients (no Facebook Page)
- Connector lists Instagram accounts assigned to the system user without a
  Page; numbers, inbox, mentions and publishing work for them
- Clients link by Page or Instagram account ("Link an account"); Facebook
  features explain the client has no Page instead of failing
- Drafts for Instagram-only clients drop Facebook automatically
- Images for Instagram-only clients are hosted via the agency's own Page
  (META_MEDIA_PAGE_ID, unpublished); never falls back to a client's Page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 01:02:03 -04:00
metatroncubeswdev
7f7e41b617 Explain why Fetch now fails for unlinked clients; let admins link a Page
- Refresh on a client with no Facebook Page now returns a clear 400 error
  instead of silently replying "started"
- Client page shows "Not linked to a Facebook Page" with a Link a Page
  dialog (admins) and shows refresh errors
- New POST /api/clients/:slug/link-page links an existing client folder to
  an unlinked Meta Page, keeping its name and files

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 23:35:46 -04:00
metatroncubeswdev
c309581df0 Initial commit: Quorla social media manager
Dashboard (content library, publishing queue with approvals, inbox, team
management, AI runs), Meta connector, branded PDF reports, agent skills,
and Docker packaging (Dockerfile, docker-compose with Caddy HTTPS,
backup and path-relocation scripts).

Client data, live data and secrets are excluded via .gitignore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:02:29 -04:00