| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 1 | 1 | 0% |
| Commands | 0 | 0 | 0 | — |
| Section tags | 1 | 0 | 3 | 25% |
What each file covers
Sections
0 shared · 1 only in A · 1 only in B- − Novu Conventions
- + Shared Packages Conventions
Commands
neither file has anySection tags
1 shared · 0 only in A · 3 only in B- + architecture
- + dependencies
- + docs
- code-style
Line diff
novuhq/novu · .cursor/rules/novu.mdc
@@ −1 @@
1---
2description:
3globs:
4alwaysApply: true
5---
6### Novu Conventions
7
8- File/directory names: lowercase with dashes (`components/auth-wizard`)
9- Named exports for all components
10- TypeScript: `interface` on the backend, `type` on the frontend — this is the project convention and overrides any general "prefer interfaces" guidance
11- Blank line before every `return` statement
12- Animations: import from `"motion/react"` — not `"framer-motion"` or `"motion-react"`
13- No nested ternaries
14
novuhq/novu · .cursor/rules/packages.mdc
@@ +1 @@
1---
2description: Rules for working in the shared NPM packages
3globs: packages/**/*
4alwaysApply: false
5---
6
7### Shared Packages Conventions
8
9**Public API / semver**
10- Packages are published to NPM — treat all exported symbols as public API.
11- Follow semver: breaking changes require a major bump, new exports are minor, fixes are patch.
12- Deprecate symbols with `@deprecated` JSDoc before removing them.
13
14**`packages/shared`**
15- Contains types, DTOs, enums, and utility functions used across both frontend and backend.
16- Keep this package free of runtime side-effects; it is imported by both Node.js services and browser bundles.
17
18**`packages/framework`**
19- Defines the code-first workflow SDK — the interface between user-defined workflows and Novu's engine.
20- Changes here affect the developer-facing API; write clear, minimal abstractions.
21
22**`packages/providers`**
23- Each provider implements a standard channel interface (e.g., `IEmailProvider`, `ISmsProvider`).
24- New providers must be registered in the provider index and follow the existing file structure.
25
@@ −1 +1 @@
11 ---
2−description:
3−globs:
4−alwaysApply: true
2+description: Rules for working in the shared NPM packages
3+globs: packages/**/*
4+alwaysApply: false
55 ---
6−### Novu Conventions
76
8−- File/directory names: lowercase with dashes (`components/auth-wizard`)
9−- Named exports for all components
10−- TypeScript: `interface` on the backend, `type` on the frontend — this is the project convention and overrides any general "prefer interfaces" guidance
11−- Blank line before every `return` statement
12−- Animations: import from `"motion/react"` — not `"framer-motion"` or `"motion-react"`
13−- No nested ternaries
7+### Shared Packages Conventions
8+
9+**Public API / semver**
10+- Packages are published to NPM — treat all exported symbols as public API.
11+- Follow semver: breaking changes require a major bump, new exports are minor, fixes are patch.
12+- Deprecate symbols with `@deprecated` JSDoc before removing them.
13+
14+**`packages/shared`**
15+- Contains types, DTOs, enums, and utility functions used across both frontend and backend.
16+- Keep this package free of runtime side-effects; it is imported by both Node.js services and browser bundles.
17+
18+**`packages/framework`**
19+- Defines the code-first workflow SDK — the interface between user-defined workflows and Novu's engine.
20+- Changes here affect the developer-facing API; write clear, minimal abstractions.
21+
22+**`packages/providers`**
23+- Each provider implements a standard channel interface (e.g., `IEmailProvider`, `ISmsProvider`).
24+- New providers must be registered in the provider index and follow the existing file structure.
1425
