
Modern Angular 06: Computed Signals
This is lesson 6 of the Modern Angular Course. In the previous lesson, we introduced writable signals and used them to manage local component state. Now we build on that foundation with computed si...

This is lesson 6 of the Modern Angular Course. In the previous lesson, we introduced writable signals and used them to manage local component state. Now we build on that foundation with computed si...

This is lesson 5 of the Modern Angular Course. In the previous lesson, we worked with component templates and learned how to bind data and handle user interaction. So far, we have been using regula...

This is lesson 4 of the Modern Angular Course. In the previous lesson, we created our first standalone component and rendered it using its selector. Now that we understand the structure of a compon...

This is lesson 3 of the Modern Angular Course. In the previous lesson, we created our project and made sure everything runs correctly. Now it is time to start building. In this post, we focus on on...

This is lesson 2 of the Modern Angular Course. Now that we covered what changed in Angular v21+, it is time to get practical. In this post, we set up a modern Angular development environment using ...

This is the first lesson of the Modern Angular Course, a free video series that teaches Angular the way it is meant to be written today. If the last time you seriously used Angular was a few years ...

Vibe coding is fun, fast, and honestly one of the best ways to unlock momentum. I use it too. But when we move from exploration to production, momentum alone is not enough. If we skip the feedback...

Lombok was a lifesaver. For years, it spared us from writing repetitive getters, setters, constructors, toString, equals, and hashCode. But modern Java has caught up. Between records, sealed classe...

Java 26 arrives with pattern matching hitting its stride, concurrency moving toward finalization, and pragmatic APIs for startup optimization and cryptography. After the heavy language work in Java...

In this post, I’ll share how I developed a small RAG (Retrieval-Augmented Generation) app that can accept a document upload and let the user ask questions about the content. But this is not a Spri...

In this post, we’ll explore a significant change in Angular v21 that affects how we test our components. Angular v21 introduces Vitest as the default testing library, replacing the long-standing Ja...

Most AI chat apps feel forgetful: once you move on, the AI loses context. In this tutorial, we’ll fix that by building a chat application that remembers conversations using Spring AI and Angular. T...