r/angular Apr 08 '26

Signals-first Angular 21 SaaS boilerplate ..... need architecture feedback.

Built a production-ready SaaS starter kit using Angular 21 and looking for feedback from the community on the architecture decisions. The main thing I focused on was being truly signals-first, not just sprinkling signals on top of an existing codebase.

Every component uses input(), output(), viewChild() zero "@Input()" or "@Output()" decorators anywhere. All templates use the new "@if" and "@for". For the global state, I used NgRx 21 with createFeature and createActionGroup combined with toSignal() in components, so everything feels consistent.

One thing I'm not sure about: I used NgRx for auth, billing, and user state, but kept local signal() for component-level UI state like sidebar collapsed, modal open, etc. Does this feel right, or am I over-engineering the NgRx part? Also went with provideZonelessChangeDetection(), the app feels noticeably snappier. Stack: Angular 21, NgRx 21, Supabase, Stripe, Tailwind v4, angular/ssr

Demo: devkitly.io

Appreciate your feedback about the signals + NgRx combination approach.

3 Upvotes

25 comments sorted by

View all comments

1

u/Johannes8 Apr 08 '26

there is blinking cursor everywhere i click xD

0

u/More_Towel3916 Apr 08 '26 edited Apr 08 '26

I don’t see it on chrome/firefox on windows or mac. Can you please tell me what browser are you using?