IMPLEMENTATION_TRACKER.md
Rama main · réplica de lectura del repositorio original.
# 🏗️ 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