🪷 Dự Án Yogi & Linga — Project Brain

Khi muốn tiếp tục: Chỉ cần nhắn “tiếp tục dự án” — đọc note này là đủ để biết đang ở đâu và làm gì tiếp theo.


📌 Tổng Quan

Mục Thông tin
Tên site Yogi & Linga
Mô tả Blog sexual wellness — review sản phẩm, hướng dẫn mua, bài viết sức khỏe
URL live https://yogilinga.com
GitHub repo https://github.com/Sontis98/yogilinga
GitHub user Sontis98
Tech stack Jekyll (github-pages gem) + GitHub Actions
Local folder D:\project\yogilinga

🔑 Credentials & Config Quan Trọng

GitHub PAT: ghp_[SEE_LOCAL_NOTES]
Tạo tại: GitHub → Settings → Developer settings → Personal access tokens → Classic
Permissions cần: repo + workflow

_config.yml (các setting quan trọng)

url: "https://yogilinga.com"
baseurl: ""
include: ["_pages"]     # BẮT BUỘC — Jekyll mới process _pages/

⚠️ Quy Trình Push Code (BẮT BUỘC)

KHÔNG push trực tiếp từ D:\project\yogilinga — Windows mount làm hỏng .git/config.

KHÔNG dùng Write/Edit tools cho layout files — tạo null bytes → Jekyll đọc binary → build fail.

Luôn làm theo flow này:

PAT="ghp_[SEE_LOCAL_NOTES]"

# 1. Clone mới vào /tmp (mỗi session)
rm -rf /tmp/yogi_session
git clone https://$PAT@github.com/Sontis98/yogilinga.git /tmp/yogi_session

# 2. Copy file từ workspace mount
cp /sessions/*/mnt/yogilinga/path/to/file /tmp/yogi_session/path/to/file

# 3. Nếu content có backtick, dùng Python để write
python3 -c "open('/tmp/yogi_session/path/file','w').write('''CONTENT HERE''')"

# 4. Kiểm tra null bytes (layout files)
python3 -c "c=open('/tmp/yogi_session/_layouts/default.html','rb').read(); print('nulls:', c.count(b'\\x00'))"

# 5. Commit và push
cd /tmp/yogi_session
git config user.email "ssontiss@gmail.com"
git config user.name "Sontis98"
git add . && git commit -m "feat: ..." && git push origin main

Check build status (browser JS):

(async function() {
  const res = await fetch('https://api.github.com/repos/Sontis98/yogilinga/actions/runs?per_page=1', {
    headers: { 'Authorization': 'token ghp_[SEE_LOCAL_NOTES]' }
  });
  const d = await res.json();
  const r = d.workflow_runs[0];
  return { status: r.status, conclusion: r.conclusion, commit: r.head_commit?.message?.slice(0,60) };
})()

Bash sandbox: KHÔNG thể dùng GitHub REST API (proxy 403) — dùng browser JS cho API calls


🏗️ Cấu Trúc Site Hiện Tại

D:\project\yogilinga\
├── _config.yml              # url: yogilinga.com, baseurl: "", include: [_pages]
├── _layouts/
│   ├── default.html         # GA4, Schema JSON-LD, age gate, nav, footer
│   ├── review.html          # Schema Review JSON-LD, scorecard, buy box, related guide
│   ├── post.html            # Layout wellness posts
│   └── guide.html           # Layout guides + related reviews + more guides
├── _reviews/                # 48 reviews
├── _posts/                  # 8 wellness blog posts
├── _guides/                 # 7 buying guides
├── _pages/
│   ├── reviews.html         # /reviews/ — filter JS hoạt động ✅
│   ├── wellness.html        # /wellness/
│   ├── guides.html          # /guides/
│   ├── about.md             # Scoring rubric, 3 team personas, affiliate transparency ✅
│   ├── contact.md           # Form mailto hoạt động ✅
│   ├── affiliate-disclosure.md
│   ├── privacy.md           # GA4 G-071MTW1DP2, GDPR/CCPA ✅
│   └── terms.md             # Comprehensive ✅
├── assets/
│   ├── css/main.css
│   └── images/
│       ├── reviews/         # 48 JPEGs on-brand
│       ├── blog/            # 17 JPEGs lifestyle
│       └── guides/          # 7 JPEGs
├── index.html               # Homepage
├── robots.txt
├── CNAME                    # yogilinga.com
└── google3749be6f9e4e8e72.html

✅ Đã Làm Xong


Sản phẩm Link
Lush 3 https://www.lovense.com/r/rtg7ej
Nora https://www.lovense.com/r/vx5cjf
Hush 2 https://www.lovense.com/r/9zhq54
Edge 2 https://www.lovense.com/r/tks6y2
Ferri https://www.lovense.com/r/3e42fi
Max 2 https://www.lovense.com/r/qwxa52
Domi 2 https://www.lovense.com/r/7o7l34
Osci 2 https://www.lovense.com/r/wotgjp
Lush 4 https://www.lovense.com/r/er1brt
Gemini https://www.lovense.com/r/k1ari5
Diamo https://www.lovense.com/r/mqqgtx
Solace Pro https://www.lovense.com/r/4jszbs
Gush 2 https://www.lovense.com/r/wnl76o
Lush Mini https://www.lovense.com/r/uw4vx0
Ridge https://www.lovense.com/r/rhnoxz
Mini Sex Machine https://www.lovense.com/r/dawt0e
Calor ⚠️ TẠM — cần link /r/ thật
Tenera ⚠️ TẠM — cần link /r/ thật

📋 VIỆC CẦN LÀM TIẾP — Theo Thứ Tự Ưu Tiên

🔴 Ngay bây giờ

(Không có việc khẩn cấp — site đang ổn định, ảnh thật đầy đủ)

🟡 Đăng Ký Affiliate Programs (user action required)

Brand Network URL đăng ký Status
We-Vibe Impact Radius https://app.impact.com/advertiser-signup ❌ Chưa
Dame Impact Radius https://app.impact.com/advertiser-signup ❌ Chưa
LELO ShareASale https://www.shareasale.com/account/join.cfm ❌ Chưa
Womanizer ShareASale https://www.shareasale.com/account/join.cfm ❌ Chưa
Satisfyer ShareASale https://www.shareasale.com/account/join.cfm ❌ Chưa
b-Vibe ShareASale https://www.shareasale.com/account/join.cfm ❌ Chưa

Sau khi có link: thay tất cả buy_url placeholder trong 30 reviews (5×b-Vibe, 5×Dame, 5×LELO, 5×Satisfyer, 5×We-Vibe, 5×Womanizer)

🟢 Nội Dung & SEO (có thể làm ngay)