# πŸ—οΈ wolfbot-community β€” Implementation Tracker **Plan:** Community Brand/SEO/Growth Master Plan V2 (162 sections) **Git submodule:** `github.com/wolfbot-io/wolfbot-community` **Date:** 2026-08-15 **Status:** πŸš€ IN PROGRESS > Last updated 2026-08-15 β€” mobile-first download experience (PLAN Β§95) and > the first repo CI workflow (PLAN Β§66/Β§151) added on top of 2026-08-14's > SEO/AI-search/content work (title-dup fix, structured-data fixes, > llms.txt, search index, docs search + feedback analytics, Month-3 > automation articles). ### Session work (2026-08-15) β€” added beyond 2026-08-14 | Item | What | Status | |---|---|---| | Mobile-download | `MobileDownloadNotice` (PLAN Β§95) β€” phone visitors to `/download` get an explicit "this installs on a computer, not a phone" notice + a Copy-link button (`mobile_download_link_copied` GA4 event) instead of a bare, context-free `.deb` button; hidden on `sm:` and up via CSS only, no hydration flicker | βœ… | | CI | First `.github/workflows/ci.yml` for this repo β€” typecheck, `prebuild-content`, `next build`, and `npm run freshness` (PLAN Β§66/Β§151) on every push/PR to `main`; repo had **zero** CI before this | βœ… | | freshness script wired | `scripts/check-content-freshness.ts` existed but was never invoked by anything β€” added `npm run freshness` + wired into the new CI workflow; current run: 0 errors, 0 warnings across all 31 content pages | βœ… | | lint gap noted, not fixed | `npm run lint` is non-functional (`next lint` needs interactive ESLint setup that was never completed) β€” left out of CI rather than silently claiming lint coverage; flagged as a real, separate gap | 🟑 noted | | Vietnamese full coverage (PLAN Β§91) | Completed the remaining docs translations β€” `content/vi/*.md` now has **30 articles = 1:1 with all 30 EN content pages** (added risk-controls, simulation, smart-terminal, backup, updates, troubleshooting, community-status, self-hosted-explained, why-verifiable-results-matter, how-to-read-trading-performance, mt5-without-windows-vps, trade-only-api-keys-explained, releases/channels, community-vs-cloud). `security` + `faq` are React pages (no markdown). Build 71 pages (41 EN + 30 VI), sitemap 65 URLs, llms.txt 69 links, hreflang en/vi/x-default both directions. Fixed vi anchor `#cho-Δ‘α»™c-giαΊ£-kα»Ή-thuαΊ­t` in mt5-without-windows-vps | βœ… | --- ## πŸ“ Directory Structure (Next.js App Router) ``` wolfbot-community/ # Git submodule β†’ GitHub public repo β”‚ β”œβ”€β”€ README.md # GitHub repo README (Section 34-37) β”œβ”€β”€ SECURITY.md # Security policy (Section 142) β”œβ”€β”€ SUPPORT.md # Support info (Section 82) β”œβ”€β”€ package.json # Next.js 14 + MDX β”œβ”€β”€ next.config.mjs # MDX, redirects, headers β”œβ”€β”€ tsconfig.json # TypeScript config β”œβ”€β”€ tailwind.config.js / postcss # Styling β”œβ”€β”€ .gitignore β”‚ β”œβ”€β”€ .github/ # GitHub repo configs β”‚ β”œβ”€β”€ ISSUE_TEMPLATE/ # 5 issue forms (Section 40) β”‚ β”œβ”€β”€ DISCUSSION_TEMPLATE/ # 8 categories + pinned (Section 38-39) β”‚ └── repo-config.yml # Settings doc (Section 31-33) β”‚ β”œβ”€β”€ app/ # Next.js App Router β”‚ β”œβ”€β”€ layout.tsx # Root layout: Header + Footer + SEO β”‚ β”œβ”€β”€ page.tsx # Homepage (14 sections per plan) β”‚ β”œβ”€β”€ download/page.tsx # Download center (Section 24) β”‚ β”œβ”€β”€ faq/page.tsx # FAQ page (Section 99) β”‚ β”œβ”€β”€ [...slug]/page.tsx # Dynamic content renderer β”‚ └── [all route dirs] # install/, brokers/, docs/, etc. β”‚ β”œβ”€β”€ components/ β”‚ β”œβ”€β”€ layout/ β”‚ β”‚ β”œβ”€β”€ Header.tsx # Nav: Download, Docs, Brokers, GitHub, Cloud β”‚ β”‚ └── Footer.tsx # 4-column footer (Section 133) β”‚ β”œβ”€β”€ landing/ # Homepage sections β”‚ β”‚ β”œβ”€β”€ Hero.tsx # Left copy + right screenshot (Section 14) β”‚ β”‚ β”œβ”€β”€ ReleaseStrip.tsx # Public Preview banner (Section 13) β”‚ β”‚ β”œβ”€β”€ TrustStrip.tsx # Trust microcopy (Section 15) β”‚ β”‚ β”œβ”€β”€ InstallSteps.tsx # 3-step install (Section 17) β”‚ β”‚ β”œβ”€β”€ ScreenshotsCarousel.tsx # UI screenshots (Section 18) β”‚ β”‚ β”œβ”€β”€ FeaturesGrid.tsx # 10 feature cards (Section 19) β”‚ β”‚ β”œβ”€β”€ RunsOnYourMachine.tsx # Architecture diagram (Section 20) β”‚ β”‚ β”œβ”€β”€ BrokerSection.tsx # Broker matrix (Section 21) β”‚ β”‚ β”œβ”€β”€ CommunityVsCloud.tsx # Comparison (Section 23) β”‚ β”‚ β”œβ”€β”€ LatestRelease.tsx # Release block (Section 11) β”‚ β”‚ β”œβ”€β”€ GitHubCommunityBlock.tsx# Community links (Section 12) β”‚ β”‚ β”œβ”€β”€ SecurityTrust.tsx # Trust section (Section 142) β”‚ β”‚ β”œβ”€β”€ FAQSection.tsx # Accordion FAQ (Section 99) β”‚ β”‚ └── FinalCTA.tsx # Bottom download CTA (Section 16) β”‚ β”œβ”€β”€ download/ β”‚ β”‚ └── DownloadCenter.tsx # OS-aware download cards (Section 24) β”‚ β”œβ”€β”€ docs/ β”‚ β”‚ └── ContentRenderer.tsx # MD β†’ HTML with links/alt β”‚ └── seo/ β”‚ └── StructuredData.tsx # JSON-LD injector β”‚ β”œβ”€β”€ content/ # MD content (rendered by [...slug]) β”‚ β”œβ”€β”€ install/ β”‚ β”‚ β”œβ”€β”€ windows.md # Section 63 (#1) β”‚ β”‚ └── linux.md # Section 63 (#2) β”‚ β”œβ”€β”€ getting-started.md # Section 63 (#3) β”‚ β”œβ”€β”€ docs/ β”‚ β”‚ └── simulation.md # Section 63 (#4) β”‚ └── brokers/ β”‚ β”œβ”€β”€ bybit.md # Section 63 (#5-6) β”‚ └── api-key-guide.md # Section 63 (#12) β”‚ β”œβ”€β”€ lib/ β”‚ β”œβ”€β”€ content.ts # Frontmatter parser, slug β†’ breadcrumbs β”‚ β”œβ”€β”€ seo.ts # OG image, keyword helpers β”‚ └── structured-data/ β”‚ β”œβ”€β”€ website.ts # WebSite schema (Section 47) β”‚ β”œβ”€β”€ software-app.ts # SoftwareApplication schema (Section 49) β”‚ └── faq.ts # FAQPage schema (Section 99) β”‚ β”œβ”€β”€ schemas/ # JSON Schema files β”‚ β”œβ”€β”€ content-frontmatter.json # Section 66 β”‚ β”œβ”€β”€ broker-capabilities.json # Section 144 β”‚ β”œβ”€β”€ release-manifest.json # Section 95.20 β”‚ └── structured-data-*.json # Sections 47, 49, 99 β”‚ β”œβ”€β”€ scripts/ # Automation β”‚ β”œβ”€β”€ generate_release_social.py # Sections 75-76, 124-125 β”‚ β”œβ”€β”€ generate_broker_capabilities.py # Sections 144-145 β”‚ β”œβ”€β”€ generate_sitemap.py # Section 52 β”‚ └── collect_github_metrics.py # Sections 43-44, 106-108 β”‚ β”œβ”€β”€ public/ β”‚ β”œβ”€β”€ robots.txt # Section 53 β”‚ └── (future: assets, screenshots) β”‚ └── analytics/ # Metrics snapshots (gitignored) ``` --- ## Implementation Gates | Gate | Description | Status | |---|---|---| | BRAND-G1 | All surfaces say "WolfBot Community" | βœ… | | WEB-G2 | Next.js app scaffolded, homepage built | βœ… | | GH-G3 | README + issue forms + repo config | βœ… | | SEO-G4 | Structured data + sitemap + robots | βœ… | | DL-G5 | Download page built | βœ… | | CONTENT-G7 | 20/20 content pages created | βœ… | | COMMUNITY-G8 | Discussion/issue templates ready | βœ… | | ANALYTICS-G9 | Metrics collector script | βœ… | | BRAND-G10 | wolfbot.io link (needs main site) | ⬜ | | DEPLOY-G11 | Deployment guide created + git push | βœ… | | YT-G12 | YouTube channel setup guide | βœ… | | SOCIAL-G13 | Release social templates | βœ… | | ANALYTICS-G14 | Analytics architecture documented | βœ… | | GROWTH-G15 | Growth playbook created | βœ… | | STATUS-G16 | Community status page | βœ… | | RSS-G17 | RSS feed generator script | βœ… | | SEARCH-G18 | Client-side docs search (SearchBar) | βœ… | | FEEDBACK-G19 | Page feedback widget (Yes/No) | βœ… | | ERROR-G20 | Custom 404 page | βœ… | ### Session work (2026-08-14) β€” added beyond the original gates | Item | What | Status | |---|---|---| | SEO-dup | Title tag brand duplication removed (`title.template` β†’ plain string) | βœ… | | SD-version | `softwareVersion` corrected to `0.1.0-p12-ghcr-rc8` in SoftwareApplication | βœ… | | SD-org | Standalone Organization schema (`lib/structured-data/organization.ts`) rendered site-wide | βœ… | | OG-image | `og:image`/`og:url` now present on all content pages | βœ… | | llms.txt | `scripts/generate-llms-txt.ts` β†’ `public/llms.txt` (36 links, AI search) | βœ… | | search-index | `scripts/generate-search-index.ts` β†’ `public/search-index.json` (27β†’30 pages) | βœ… | | DocsSearch | `components/search/DocsSearch.tsx` (auto-synced, tracks `docs_search`/zero-result) on /academy | βœ… | | feedback-GA4 | `FeedbackWidget` now fires `docs_feedback` GA4 event | βœ… | | GA4-events | `lib/analytics.ts` `trackEvent` + download/CTA tracking | βœ… | | broker-SSOT | `lib/brokers.ts` single source of truth for broker roster | βœ… | | Academy Γ—6 | 6 risk/trust Academy articles (why-bots-fail, reduce-drawdown, verifiable-results, read-performance, mt5-linux, trade-only-keys) | βœ… | | Month3 Γ—3 | automation-workflow, take-profit-stop-loss, dca-strategy | βœ… | | 2-audience | "Who this guide is for" (non-technical + technical) applied to all new/retrofitted articles | βœ… | --- ## Content Pages Progress (30) βœ… | # | Page | File | Status | |---|---|---|---| | 1 | Install Windows | `content/install/windows.md` | βœ… | | 2 | Install Linux | `content/install/linux.md` | βœ… | | 3 | Getting Started | `content/getting-started.md` | βœ… | | 4 | Simulation | `content/docs/simulation.md` | βœ… | | 5-6 | Bybit (Demo+Live) | `content/brokers/bybit.md` | βœ… | | 7 | Binance | `content/brokers/binance.md` | βœ… | | 8 | BingX | `content/brokers/bingx.md` | βœ… | | 9 | KuCoin | `content/brokers/kucoin.md` | βœ… | | 10 | Bitget | `content/brokers/bitget.md` | βœ… | | 11 | MT5 | `content/brokers/mt5.md` | βœ… | | 12 | API Key Guide | `content/brokers/api-key-guide.md` | βœ… | | 13 | Smart Terminal | `content/docs/smart-terminal.md` | βœ… | | 14 | Risk Controls | `content/docs/risk-controls.md` | βœ… | | 15 | Updates | `content/docs/updates.md` | βœ… | | 16 | Backup/Restore | `content/docs/backup.md` | βœ… | | 17 | Community vs Cloud | `content/community-vs-cloud.md` | βœ… | | 18 | Self-Hosted Explained | `content/docs/self-hosted-explained.md` | βœ… | | 19 | Troubleshooting | `content/docs/troubleshooting.md` | βœ… | | 20 | Release Channels | `content/releases/channels.md` | βœ… | | 21 | Community Status | `content/docs/community-status.md` | βœ… | | 22 | Run 24/7 on a VPS | `content/docs/run-24-7-on-a-vps.md` | βœ… | | 23 | Why Bots Fail (risk) | `content/docs/why-bots-fail-risk-management.md` | βœ… | | 24 | How to Reduce Drawdown | `content/docs/how-to-reduce-drawdown.md` | βœ… | | 25 | Why Verifiable Results Matter | `content/docs/why-verifiable-results-matter.md` | βœ… | | 26 | Read Trading Performance | `content/docs/how-to-read-trading-performance.md` | βœ… | | 27 | MT5 Without Windows VPS | `content/docs/mt5-without-windows-vps.md` | βœ… | | 28 | Trade-Only API Keys Explained | `content/docs/trade-only-api-keys-explained.md` | βœ… | | 29 | Automated Trading Workflow | `content/docs/automated-trading-workflow.md` | βœ… | | 30 | Take-Profit and Stop-Loss | `content/docs/take-profit-stop-loss.md` | βœ… | | 31 | Dollar-Cost Averaging (DCA) | `content/docs/dca-strategy.md` | βœ… | --- ## Components Progress (all landing sections built) | Component | Status | |---|---| | Header (Nav) | βœ… | | Footer (4-column) | βœ… | | Hero | βœ… | | ReleaseStrip | βœ… | | TrustStrip | βœ… | | InstallSteps | βœ… | | ScreenshotsCarousel | βœ… | | FeaturesGrid | βœ… | | RunsOnYourMachine | βœ… | | BrokerSection | βœ… | | CommunityVsCloud | βœ… | | LatestRelease | βœ… | | GitHubCommunityBlock | βœ… | | SecurityTrust | βœ… | | FAQSection | βœ… | | FinalCTA | βœ… | | DownloadCenter | βœ… | | ContentRenderer | βœ… | | StructuredData | βœ… | --- ## Setup Needed ```bash # 1. Create GitHub repo # https://github.com/new β†’ wolfbot-io/wolfbot-community # 2. Push wolfbot-community/ as initial commit cd wolfbot-community git init git add . git commit -m "Initial: WolfBot Community website + GitHub repo setup" git remote add origin git@github.com:wolfbot-io/wolfbot-community.git git push -u origin main # 3. Add as submodule in WolfBot_Dockerized_cp cd /home/vuhungkt18/project/bk/WolfBot_Dockerized_cp # (already configured in .gitmodules) git submodule add git@github.com:wolfbot-io/wolfbot-community.git wolfbot-community # 4. Install deps and run dev cd wolfbot-community npm install npm run dev # β†’ http://localhost:3000 # 5. Deploy to Cloudflare Pages # See docs/DEPLOYMENT.md # 6. Setup DNS: CNAME community β†’ pages.dev # See docs/DEPLOYMENT.md Β§2 ``` --- ## Strategy Documents (new) | Doc | Sections Covered | Status | |---|---|---| | docs/DEPLOYMENT.md | DNS + Cloudflare Pages + Vercel | βœ… | | docs/YOUTUBE_CHANNEL_SETUP.md | 71-73: YouTube channel + 32 videos + Shorts | βœ… | | docs/SOCIAL_TEMPLATES.md | 75-76, 123-124: Release social automation | βœ… | | docs/ANALYTICS_SETUP.md | 101-109: Analytics architecture + KPIs | βœ… | | docs/30DAY_LAUNCH_ROADMAP.md | 154: 30-day launch plan | βœ… | | docs/GROWTH_PLAYBOOK.md | 84-90, 129-130: Stars, HN, PH, directories, backlinks | βœ… | | content/docs/community-status.md | 100: Community status page | βœ… | | scripts/generate-rss.ts | 78: RSS/Changelog feed | βœ… | ## Build Status - TypeScript: 0 errors (`npm run typecheck`) - Next.js build: 41 static pages generated (`npm run build`) - Sitemap: 37 URLs (`public/sitemap.xml`) - llms.txt: 39 links (`public/llms.txt`) - search-index.json: 30 pages (`public/search-index.json`) - DocsSearch: auto-synced from search-index.json on /academy - FeedbackWidget: Yes/No + GA4 `docs_feedback` event on every doc page - Link crawl: 0 broken internal links ## Build Status (archive) - TypeScript: no errors (npx tsc --noEmit) - Next.js build: 27 static pages generated - Dev server: http://localhost:3000 (200 OK) - Git pushed: github.com/wolfbot-io/wolfbot-community (3 commits) ## Next Actions 1. Cloudflare DNS: CNAME community to pages.dev 2. Cloudflare Pages: connect repo then deploy 3. Google Search Console: add property then submit sitemap 4. YouTube: create channel then record Video 1 5. GitHub: enable Discussions then pin 5 topics