Node + JavaScript stack pack
Plain JavaScript on Node. Same workflow as Node-TS, without the TypeScript discipline. The pack exists because not every Node project wants — or needs — TypeScript, and pretending otherwise produces friction.
Audience #
Pick Node + JavaScript if:
- Your project is a Node codebase in plain JavaScript (ESM or CommonJS).
- You explicitly do not want TypeScript and don't want skills that assume it.
- You're maintaining a long-lived JS-only codebase and adding
aidokitto it without a TS migration.
If you're considering TypeScript "soon", just pick
Node-TS — it produces sensible suggestions even before
your codebase has any .ts files.
Auto-detection triggers #
aidokit init detects this pack when it sees:
- A
package.jsonwithout"typescript"as a dependency - No
tsconfig.json .jsor.mjssource files undersrc/or the package root- (lower confidence than Node-TS when both are theoretically possible)
To force it explicitly:
aidokit init --stack node-js
What you get #
| Component | Provided |
|---|---|
| Suggested skills | esm-imports (or CommonJS variant — detected), vitest-patterns (or Mocha / Jest), package-json-discipline, error-envelope-conventions |
| Suggested MCPs | Context7, Beads MCP, Playwright (conditional) |
| Validation commands | npm run lint, npm test (no typecheck — that's the whole point) |
| Architecture hint (Strict) | Same Controller→Service→Repository layering, but without TS-specific guidance |
Composition #
- Composes with React for a JS-only front-end (no TS in either layer).
- Composes with Python the same way Node-TS does.
- Does not compose with Node-TS — they're mutually exclusive.
Honest limitations #
- Type safety is your problem. The pack does not add a typechecker
(TypeScript, JSDoc-with-checkJS, Flow). If you want type discipline
later, migrating to Node-TS is a
aidokit sync --stack node-tsaway. - Some suggested skills are TS-flavoured. A few skills assume TS patterns; the pack omits or rewrites those for JS. Still, expect occasional "this would be cleaner with types" hints from the orchestrator — it's not stack-pack policing, it's the model's prior.
- Fewer test patterns documented. Vitest examples translate cleanly; Jest + Mocha get less attention. Contributions welcome.