
Maciej Wojcik

Required Inputs in Angular v16
Stop guessing if your component inputs are provided. Use Angular 16 required inputs to catch missing bindings at compile time today.
Router data as components inputs in Angular v16
Simplify route data access in Angular 16 by using Input bindings. Eliminate boilerplate and ActivatedRoute injection for cleaner code.
takeUntilDestroy in Angular v16
Eliminate memory leaks and reduce boilerplate code by using the takeUntilDestroyed operator to clean up Angular observables easily.
Improve page performance and LCP with NgOptimizedImage
Boost your app’s LCP and performance with the NgOptimizedImage directive. Learn how this Angular tool automates image optimization fast.
Component initialization without ngOnInit with async pipes for Observables and ngOnChanges
Ditch ngOnInit boilerplate by mastering RxJS pipes, AsyncPipe, and input setters to write cleaner, reactive Angular code effortlessly.
Designing Angular architecture – Container-Presentation pattern
Master the Container-Presentation pattern to build scalable Angular apps. Separate UI from logic for cleaner code and easier extension.
Techniques to style component host element in Angular
Master component styling with :host, HostBinding, and :host-context. Simplify your architecture and keep CSS concerns out of your TS code.
Extend Angular Schematics to customize your development process
Stop wasting time on redundant boilerplate code. Create custom Angular Schematics to automate repetitive tasks and boost productivity.