Angular 21 news and content management platform with article discovery, bookmarking, episode streaming, and user authentication.
📰 Article discovery, search & filtering • ❤️ Bookmarking & library • 🔐 Clerk authentication • 📺 Episodes & segments • 🎨 Theme management • ♿ Accessible
Angular 21 • TypeScript 5.9 (strict) • Vite • Vitest (85% coverage) • Tailwind CSS • Clerk • ESLint + Prettier
Requirements: Node.js 20+ & pnpm 10+
pnpm install # Install dependencies
pnpm start # Dev server (http://localhost:4200)
pnpm test -- --run # Run tests
pnpm build # Production buildCode quality checks:
pnpm lint && pnpm format:check && pnpm test -- --runBranch names: feature/X, hotfix/X
Pull Request Process:
- Fork and create branch from
main - Make changes with tests
- Run:
pnpm lint && pnpm format:check && pnpm test -- --run && pnpm build - Bump version:
pnpm increment-version {patch|minor|major} - Open PR (1 approval required)
MIT - see LICENSE
Version: version.json
- Framework: Vitest 4.0 with jsdom
- Coverage: 85% minimum required
- Mocks: Factory functions in
src/app/Mocks/
Run tests with: pnpm test -- --run or pnpm test (watch mode)
Best Practices:
- Use mocks from
src/app/Mocks/for services - Test components and services independently
- Use Arrange-Act-Assert structure
- Write descriptive test names
- Proper TestBed setup and cleanup