Skip to content

Tách app theo program ​

Chủ dự án chọn Cách 3 ngày 18.10.2026 (SRC-1432). Thiết kế kỹ thuật một nguồn: docs/ops/learn-split.

Ba phương án ​

Cách 1: một appCách 2: subdomain, repo riêngCách 3: app riêng, cùng repo, cùng tên miền
Ví dụlearn.nemo12.com/ieltsielts.nemo12.comlearn.nemo12.com/ielts, Worker riêng
Deploy độc lậpKhôngCóCó
Đăng nhậpMột lầnPhải làm SSO giữa subdomainMột lần, cùng cookie
Database, APIChungCâu hỏi khó: tách dữ liệu hay sửa hai repoChung
Code dùng chungImport trực tiếpPublish package có version cho mỗi repoImport trực tiếp
SEOGom về một tên miềnMỗi subdomain xây lại uy tínNhư Cách 1
Phiên Claude song songDễ đụng nhauTách hẳnMỗi phiên một thư mục app

Cách 2 chỉ hợp với phần không chung dữ liệu hay đăng nhập với phần còn lại, như nemo12-www và nemo12-videos đã tách. Ba program học đang chung tài khoản, Learner Model, membership, dashboard phụ huynh, D1 và API.

Định tuyến ​

Route của Cloudflare thắng custom domain trên cùng hostname, route cụ thể hơn thắng route chung:

  • nemo12-learn giữ learn.nemo12.com: trang chủ, /programs, hồ sơ, chứng chỉ, lịch, redirect 301.
  • Mỗi program một Worker với route learn.nemo12.com/<program> và learn.nemo12.com/<program>/*.
  • Mỗi app build với base: "/<program>/", asset không đụng nhau.
  • Cookie nemo12_session ở .nemo12.com, đăng nhập Google là nút trong trang: phiên đăng nhập giữ nguyên.
  • Link sang app khác là tải lại trang, không chuyển trang trong SPA.
  • Rollback: gỡ route là quay về app learn cũ ngay.

Tiến độ ​

BướcViệcTrạng thái
0Gom shell dùng chung vào packages/learn-shell: đăng nhập, HTTP, NavBar, menu, avatar, Motion, ngôn ngữXong 18.10.2026: 668 unit test, 903 ca E2E xanh
1Pilot GRAMMAR: app, Worker, docs và design/ riêngXong 18.10.2026: learn.nemo12.com/grammar do Worker nemo12-grammar phục vụ
2SAT và ESSAY: xong 18.10.2026 (màn Join, PayCard dời vào shell). STYLE giữ trong learn (bảng mẫu giao diện của learn, không phải chương trình). WALK chờ phiên đang sửa nó xongGần xong
3IELTS cùng SPEAK (chung router, tách cùng nhau, sau cùng)Chưa