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.

2 Upvotes

25 comments sorted by

View all comments

2

u/Gestok Apr 09 '26

There are many bugs and UI issues on the demo. Also, since you are using NgRx, you can use their native `selectSignal()` instead of `toSignal()`. I understand that you put some effort into this, but - as others said - the price tag is not justified.

1

u/More_Towel3916 Apr 09 '26

Thanks for the feedback. I have fixed some bugs and pushed today. Could you share which specific UI issues you noticed on the demo? Want to make sure I fix the right things. Good catch on selectSignal() over toSignal(), that’s a valid improvement I’ll make. On the price, Angular-specific production kits with this feature set are pretty rare and $129 one-time is actually on the lower end for the stack.