Skip to content

Các module npm ​

Repo khai 70 module bên ngoài (không tính các gói @nemo12/* của chính repo) trong 36 file package.json. Trang này sinh tự động, nên luôn khớp với thứ đang cài. Lượt kiểm hằng tuần nâng minor/patch và gỡ module không ai import (Nâng phiên bản thư viện); module ở mức Nên xem lại là ứng viên gỡ.

Mức ưu tiên ​

MứcNghĩaSố module
Cốt lõisản phẩm không chạy nếu thiếu18
Công cụchỉ dùng lúc viết, build, test; không tới tay người dùng21
Theo tính năngmột vài app dùng cho một tính năng riêng19
Nên xem lạitrùng việc với module khác, hoặc ít dùng12

Khung giao diện (UI framework) ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@vitejs/plugin-reactPlugin cho Vite hiểu JSX của React và nạp lại nóng (hot reload) khi sửa code.vite.config.ts của mọi app React.Công cụadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web6.1.1
reactThư viện dựng giao diện bằng component, của Meta. Mỗi màn hình là một cây component.Mọi web app (learn, marlins, tutors, grammar, sat…) viết bằng React.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, learn-shell, marlins, mentors, mm, partners, sat, tutors, ui, web19.3.0
react-domPhần của React vẽ component ra trang web (DOM) trong trình duyệt.Đi cặp với react ở mọi app.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web19.3.0

Hệ thiết kế (design system): Tailwind, shadcn, Radix, Motion ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@radix-ui/react-accordionPrimitive Accordion của Radix, bản tách lẻ.Trùng với gói gộp radix-ui; component đã chuyển sang gói gộp. Lượt hằng tuần gỡ khi không còn ai import.Nên xem lạigrammar, learn, web1.2.20
@radix-ui/react-dialogPrimitive Dialog của Radix, bản tách lẻ.Trùng với radix-ui, như trên.Nên xem lạiessay, grammar, learn, sat, web1.1.23
@radix-ui/react-labelPrimitive Label của Radix, bản tách lẻ.Trùng với radix-ui, như trên.Nên xem lạilearn, web2.1.15
@radix-ui/react-progressPrimitive Progress của Radix, bản tách lẻ.Trùng với radix-ui, như trên.Nên xem lạigrammar, learn, web1.1.16
@radix-ui/react-slotPrimitive Slot (cho asChild) của Radix, bản tách lẻ.Trùng với radix-ui, như trên.Nên xem lạiessay, grammar, learn, sat, web1.3.3
@radix-ui/react-tabsPrimitive Tabs của Radix, bản tách lẻ.Trùng với radix-ui, như trên.Nên xem lạilearn, web1.1.21
@tailwindcss/nodeGọi Tailwind từ một script Node, không qua Vite.Script build trang tĩnh của apps/web.Theo tính năngweb4.3.3
@tailwindcss/vitePlugin chạy Tailwind v4 bên trong Vite lúc build.vite.config.ts của các app dùng Tailwind.Công cụadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web4.3.3
class-variance-authorityKhai các biến thể của một component (size, variant) thành bảng class Tailwind.button.tsx, badge.tsx… của shadcn.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, partners, sat, tutors, ui, web0.7.1
clsxGhép tên class có điều kiện thành một chuỗi.Hàm cn() trong lib/utils.ts của mọi app.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web2.1.1
lightningcssCông cụ nén và chuyển đổi CSS rất nhanh, viết bằng Rust.Script build CSS của apps/web.Theo tính năngweb1.32.0
motionThư viện animation cho React (trước tên là framer-motion).Bộ ba bắt buộc; cấm thư viện animation thứ hai.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, learn-shell, marlins, mentors, mm, partners, sat, tutors, ui, web14.0.0, 13.4.0
radix-uiGói gộp các primitive không có giao diện sẵn (Dialog, Popover, Tabs…), lo phần bàn phím và trợ năng (accessibility).Nền của mọi component shadcn; component import từ đây.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, learn-shell, marlins, mentors, partners, sat, tutors, ui, web1.6.7
shadcnCLI chép mã nguồn component (Button, Dialog…) vào app; component là code của mình, không phải thư viện.Chạy tay khi thêm component; bộ ba bắt buộc của design system.Công cụlearn, tutors, web4.21.1
tailwind-mergeGộp class Tailwind xung đột, class sau thắng (p-2 p-4 → p-4).Hàm cn(), đi cặp với clsx.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web3.7.0
tailwindcssCSS viết bằng class tiện ích ngay trong HTML (p-4, text-ocean-900). Bản v4.Một trong bộ ba bắt buộc của design system (SRC-650).Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web4.3.3, 4.3.0
tw-animate-cssBộ class animation cho Tailwind v4 mà component shadcn dùng (mở, đóng Dialog…).index.css của các app shadcn.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, partners, sat, tutors, ui, web1.4.0

Icon và font chữ ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@expo-google-fonts/be-vietnam-proFont Be Vietnam Pro, gói của hệ Expo nhưng chứa file font dùng được trên web.Ảnh chia sẻ (OG image) của apps/web vẽ chữ tiếng Việt.Theo tính năngweb0.4.1
@fontsource-variable/fredokaFont Fredoka (variable) tự host.Khai ở learn, sat, essay nhưng không file nào nạp; lượt hằng tuần gỡ.Nên xem lạiessay, grammar, learn, sat5.3.0
@fontsource-variable/interFont Inter (variable) tự host, không gọi Google Fonts.Font chữ chính, nạp từ packages/design-system.Cốt lõidesign-system5.3.0
@fontsource-variable/nunitoFont Nunito (variable) tự host.Như Fredoka: khai mà không nạp.Nên xem lạidesign-system, essay, grammar, learn, sat5.3.0
@heroicons/reactBộ icon của đội Tailwind.Chỉ apps/mentors dùng; trùng việc với lucide-react.Nên xem lạimentors2.2.0
lucide-reactBộ icon nét mảnh, mỗi icon là một component React.Bộ icon chuẩn của design system.Cốt lõiadmin, b21, coral, essay, grammar, gull, learn, learn-shell, marlins, mentors, sat, ui, web1.50.0

Nội dung đặc biệt: công thức, 3D, sơ đồ, soạn thảo ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@resvg/resvg-wasmChuyển SVG thành ảnh PNG, chạy bằng WebAssembly.Sinh ảnh chia sẻ (OG image) của apps/web.Theo tính năngweb2.6.2
@tiptap/coreLõi trình soạn thảo văn bản Tiptap (dựng trên ProseMirror).Trình sửa nội dung trong admin (Dolphin).Theo tính năngadmin3.31.4
@tiptap/extension-highlightTô sáng chữ trong Tiptap.admin.Theo tính năngadmin3.31.4
@tiptap/extension-imageChèn ảnh trong Tiptap.Khai ở admin, Knip báo không dùng.Nên xem lạiadmin3.31.4
@tiptap/extension-tableBảng trong Tiptap.admin.Theo tính năngadmin3.31.4
@tiptap/extension-text-alignCăn lề chữ trong Tiptap.admin.Theo tính năngadmin3.31.4
@tiptap/extensionsCác extension phụ của Tiptap (placeholder…).admin.Theo tính năngadmin3.31.4
@tiptap/pmProseMirror đóng gói cho Tiptap.admin.Theo tính năngadmin3.31.4
@tiptap/reactTiptap cho React.admin.Theo tính năngadmin3.31.4
@tiptap/starter-kitBộ tính năng cơ bản: đoạn, tiêu đề, danh sách, đậm nghiêng.admin.Theo tính năngadmin3.31.4
@types/katexKiểu TypeScript cho katex.katex đã tự kèm kiểu; Knip báo không dùng.Nên xem lạicoral, learn0.16.8
@types/threeKiểu TypeScript cho three.Đi cặp với three.Công cụlearn0.186.0
katexVẽ công thức toán (LaTeX) thành HTML, rất nhanh.Công thức trong SAT, IB của learn và coral.Theo tính năngcoral, learn0.19.0
markdown-itChuyển Markdown thành HTML.Script dựng bài viết SEO của apps/web.Theo tính năngweb14.3.2
markmap-libBiến Markdown thành dữ liệu sơ đồ tư duy (mind map).apps/mm (mm.nemo12.com).Theo tính năngmm0.18.12
markmap-viewVẽ sơ đồ tư duy markmap bằng SVG.apps/mm, đi cặp với markmap-lib.Theo tính năngmm0.18.12
threeThư viện đồ hoạ 3D trên trình duyệt (WebGL).Cảnh 3D trong learn.Theo tính nănglearn0.186.1
uqrSinh mã QR, không phụ thuộc gì.Khai ở learn nhưng không file nào import; lượt hằng tuần gỡ.Nên xem lạilearn0.1.3
yamlĐọc và ghi file YAML.Frontmatter bài viết của apps/web.Theo tính năngweb2.9.0

Server và API trên Cloudflare ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@cloudflare/realtimekitSDK gọi video thời gian thực của Cloudflare.Buổi học trực tuyến trong learn.Theo tính nănglearn2.0.2
@cloudflare/workers-typesKiểu TypeScript cho môi trường Cloudflare Workers (D1, R2, KV…).Mọi worker.Công cụapi, foundry, ielts, tool-plane5.20261002.1
@hono/zod-openapiHono kèm Zod: kiểm dữ liệu vào và sinh mô tả OpenAPI của API.Route của workers/api; ghim ở 1.5.2 (scripts/deps-hold.json).Cốt lõiapi1.6.3
honoWeb framework nhỏ và nhanh cho Cloudflare Workers.Toàn bộ API (workers/api) và các worker khác.Cốt lõiapi4.13.12
joseKý và kiểm token JWT, JWS theo chuẩn web, chạy được trên Workers.Phiên đăng nhập và Google sign-in ở workers/api.Cốt lõiapi6.2.12
wranglerCLI của Cloudflare: chạy worker ở máy, deploy, quản D1 và R2.Deploy từng app trong CI (cấm deploy từ máy).Công cụadmin, api, b21, compass, coral, docs, essay, foundry, grammar, gull, harness, ielts, learn, marlins, mentors, mm, partners, pearl, playbooks, reef, sat, tool-plane, tutors, ui, web4.147.0, 4.135.0
zodKhai dạng dữ liệu một lần, vừa kiểm lúc chạy vừa ra kiểu TypeScript.Kiểm dữ liệu từ ngoài vào ở workers/api, foundry, tool-plane (Tiêu chuẩn code §3).Cốt lõiapi, foundry, tool-plane4.6.5

Theo dõi lỗi và tốc độ (observability) ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@sentry/cloudflareBáo lỗi của Cloudflare Workers về Sentry.workers/api.Cốt lõisentry11.7.0
@sentry/reactBáo lỗi JavaScript của trình duyệt về Sentry.packages/sentry, dùng ở các web app.Cốt lõisentry11.7.0
web-vitalsĐo LCP, CLS, INP (tốc độ người dùng cảm nhận), của Google.packages/rum gửi số đo về API.Cốt lõirum6.2.3

Build, TypeScript và trang tài liệu ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@types/reactKiểu TypeScript cho React.Khai ở gốc để cả monorepo chỉ có một bản.Công cụadmin, b21, coral, essay, grammar, gull, gốc, learn, marlins, mentors, mm, partners, sat, tutors, ui, web19.3.0
@types/react-domKiểu TypeScript cho react-dom.Như @types/react.Công cụadmin, b21, coral, essay, grammar, gull, gốc, learn, marlins, mentors, mm, partners, sat, tutors, ui, web19.3.0
esbuildBộ đóng gói JavaScript và TypeScript rất nhanh, viết bằng Go.Script sinh dữ liệu, contract-diff, build seed.Công cụlearn, marlins, web0.28.1
typescriptJavaScript có kiểu; bắt lỗi trước khi chạy.Mọi app, chạy bằng npm run typecheck.Công cụadmin, api, b21, coral, essay, foundry, grammar, gull, ielts, learn, marlins, mentors, mm, partners, sat, tool-plane, tutors, ui, web7.0.2
viteCông cụ chạy dev server và build web app.Build mọi web app.Công cụadmin, b21, coral, essay, grammar, gull, learn, marlins, mentors, mm, partners, sat, tutors, ui, web8.3.2, 8.3.0
vitepressDựng trang tài liệu tĩnh từ Markdown, trên Vite.docs.nemo12.com, harness.nemo12.com, pearl, compass, playbooks.Công cụcompass, docs, harness, pearl, playbooks, reef1.6.4
vitepress-plugin-llmsSinh llms.txt để AI đọc trang tài liệu dễ hơn.Các site VitePress.Công cụcompass, docs, pearl, playbooks1.14.0

Kiểm chất lượng: test và lint ​

ModuleLà gìỞ Nemo12 dùng đểƯu tiênKhai ởPhiên bản
@eslint/jsBộ luật JavaScript chuẩn của ESLint.eslint.config.js.Công cụgốc10.0.1
@playwright/testBộ chạy test E2E: mở trình duyệt thật và đóng vai người dùng.E2E của learn, tutors, marlins, grammar, sat, essay.Công cụessay, grammar, learn, marlins, sat, tutors1.63.0
eslintQuét code tìm lỗi và mẫu nguy hiểm (lint).npm run lint, pre-commit, CI.Công cụgốc10.12.0
eslint-plugin-react-hooksLuật đúng cách dùng React hooks (deps của useEffect…).eslint.config.js.Công cụgốc7.1.1
globalsDanh sách biến toàn cục của từng môi trường (browser, node).eslint.config.js.Công cụgốc17.13.0
playwrightĐiều khiển trình duyệt từ script.Kiểm màn hình 375px của apps/web, chụp ảnh.Công cụweb1.63.0
typescript-eslintCho ESLint hiểu TypeScript, kèm luật riêng.eslint.config.js.Công cụgốc8.71.0
vitestChạy unit test, cùng cấu hình với Vite.Unit test và API test của mọi workspace.Công cụapi, essay, foundry, grammar, gull, learn, marlins, mentors, sat, sentry, tool-plane, web5.0.3