#5

Top Tech Picks of MARCH

2025-03-28

Reading time: 6:29 min

March came with a bunch of exciting updates for developers and creatives alike. We’re diving into the latest improvements in Elementor 3.28 and Angular 19.2, plus a quick rundown of the key changes in JDK 24. There’s also a hot tip on a budget-friendly subscription for creators using AI tools to generate photos and videos, and a first look at Lynx JS – a brand-new framework that might just shake up the cross-platform development game.

1

Elementor 3.28

Mikuláš Žačok

Visual Content Creator

There’s a new update out, focusing mainly on optimization and how content gets loaded.

If you’ve worked with Elementor, you might’ve run into issues where your page styling breaks. This often happens when using caching plugins and has been a long-standing issue—I’ve experienced it myself.

In those cases, simply use the Regenerate Files & Data function, which you’ll find under Admin > Elementor > Tools. While this isn’t a brand-new feature, it’s now been renamed to Clear Files & Data, and accessing it is easier than ever. In addition to the original location, it’s now also available right in the WordPress top bar on any page, under Edit with Elementor > Clear Files & Data.

The update also brings a few small but welcome improvements:

  • In the Text Editor widget, you can finally customize link colors.
  • The Button widget now lets you adjust the shadow on hover.
  • The CTA, Animated Headline, and Testimonial Carousel widgets all got the ability to add shadow effects to their titles.

2

Angular 19.2:
What’s New for Developers

Ján Hažinčák

Developer

At the end of February, the Angular team released version 19.2 — a minor update packed with some handy improvements. Highlights include simplified syntax in HTML templates, support for the latest TypeScript version, and a brand-new API called httpResource for working with asynchronous data sources.

Support for TypeScript 5.8
Angular 19.2 is fully compatible with TypeScript 5.8, giving developers access to the latest language features and enhancements.

Template Literals in HTML Templates
One of the most developer-friendly additions is support for template literals directly in HTML templates. This makes your code more readable and removes the need for clunky string concatenation.

				
					Instead of:

<p>There are ' + numberOfProducts() + ' units of product ' + nameOfProduct() + ' in stock.</p>
<p>{{ orderStatus() === 'shipped' ? 'Order has been shipped.' : 'Order status: ' + orderStatus() }}</p>

You can use:

<p>There are {{ `${numberOfProducts()} units of product ${nameOfProduct()}.` }} in stock.</p>
<p>{{ orderStatus === 'shipped' ? 'Order has been shipped.' : `Order status: ${orderStatus}` }}</p>
				
			

Detecting Missing Imports
In previous Angular versions, if you forgot to import a built-in structural directive like ngIf or ngFor from CommonModule, the compiler would generate a warning. But when it came to custom structural directives, missing imports didn’t trigger any warning — the app would simply stop working, with no error message to guide you.

Starting with Angular 19.2, the compiler can now detect missing imports for custom structural directives as well. This is a big step forward in catching issues early, especially when migrating projects to a standalone architecture.

New httpResource API (Experimental Preview)

				
					query = signal('');
users = httpResource<User[]>(() => `https://jsonplaceholder.typicode.com/users?name_like=${this.query()}`);

				
			

This simple syntax instantly reacts to changes in the query() signal and triggers an API call. The httpResource named users is then available directly in the HTML template, where you can easily display all relevant states using built-in functions like value(), isLoading(), error(), and reload().

				
					@if (users.isLoading()) {
  <app-spinner-element/>
}
@if (users.error()) {
  <div>{{ users.error() }}</div>
    }
<section>
  <button (click)="users.reload()">Reload</button>
  <button (click)="users.set([])">Clear</button>
</section>
<ul>
  @for (user of users.value(); track user.id) {
    <li>{{ user.name }}</li>
  } @empty {
    <li class="no-data">Nothing to show</li>
  }
</ul>

				
			

The httpResource API configuration supports custom headers, data parsing, and works seamlessly with Angular interceptors.

That said, httpResource is currently recommended only for fetching data (GET requests), and that’s exactly how it’s intended to be used. For mutating data (POST, PUT, PATCH, DELETE), you’ll still need to rely on HttpClient. So, httpResource isn’t a replacement for HttpClient — it’s more of a layer on top of it, offering a more reactive and streamlined way to fetch data, which can be especially useful in custom data table solutions with pagination, filtering, and search functionality.

Overall, Angular 19.2 brings a range of enhancements that simplify development and improve the developer experience. The Angular team continues to make strides in keeping the framework modern, efficient, and developer-friendly. These new features show that Angular is staying in step with the latest trends and evolving needs of web developers — securing its spot as one of the leading frameworks out there.

3

A Smart Subscription Tip for AI-Powered Creators (Photo & Video Generators)

Lukáš Figely

UX/UI designer

We’ve previously compared a few AI video generators, but honestly — those comparisons are quickly becoming outdated. New tools are popping up almost daily.

With so many options out there, it’s getting harder to choose the right one, especially if you don’t want to juggle multiple subscriptions for tools that offer nearly identical features.

So let’s look at a more modern and efficient solution.

Wouldn’t it be great to access most of the popular AI generators under one roof — without breaking the bank?

giphy.com

That’s exactly what freepik now offers.

So what do you get with one subscription, starting at a ridiculously low €5/month?

AI Image Generator
Supports multiple versions of well-known tools like Mystic, Google Imagen 3, Flux, and more.
The quick style presets are a huge plus — they make the whole creative process much faster.

AI Video Generator
Includes top-notch options like Kling 1.6 Pro — the results are seriously impressive (check the screenshot below!).

AI Voice Generator
Yes, it even supports Slovak, and the voices sound surprisingly natural. Tons of voice options and customization settings included.

Unlimited Stock Library
Photos, illustrations, vectors — all in one place.
By the way, the quality of their visuals has come a long way in recent years and is absolutely worth highlighting.

Other AI Tools in Beta
You’ll also find handy tools for design tweaks, template generation, icon creation, and more.

Pros:

  • Wide range of AI tools and versions, with new ones added regularly
  • A unified dashboard for everything
  • One page to manage all your generated content


Cons:

  • Credit pricing may vary over time
  • Different tools and versions require different credit amounts — though usually in line with output quality

 

And just to be clear:
Even if this post sounds a little too enthusiastic, this isn’t a sponsored promotion — just honest excitement and gratitude for a tool that really delivers.

 

4

JDK 24 is Here: Oracle Releases the Latest Version for Developers and Businesses

Lukáš Huňár

Developer

Oracle has officially announced the general availability of JDK 24 for developers, enterprises, and end users. This release marks the latest version of the world’s most popular programming language and development platform.

JDK 24 introduces a range of enhancements designed to boost developer productivity and support innovation. In addition to improvements in performance, stability, and security, it also contributes to faster business growth by enabling more efficient development workflows.

You can dive deeper into what’s new in Java 24 in this blog post.

Here’s a quick overview of some key updates and changes in JDK 24:

 

Primitive Types in Patterns, instanceof, and switch

Java 24 extends pattern matching to include primitive types across all contexts — including instanceof, switch expressions, and switch statements.

This enhancement allows for more concise and readable code when working with both objects and primitive types. Now, instanceof and switch constructs fully support primitive types, simplifying conditional logic and making code easier to maintain.

				
					//JAVA 22

Object value = 42;
if (value instanceof Integer i) {
    System.out.println("Integer value: " + i);
}

//JAVA 24

int value = 42;
if (value instanceof int) {    // Possible with Java 24 
   System.out.println("Integer value: " + i); 
} 


				
			
				
					//JAVA 22

Object value = 3.14;
String result = switch (value) {
    case Integer i -> "Integer: " + i;
    case Double d -> "Double: " + d;
    default -> "Unknown type";
};
System.out.println(result);


//JAVA 24
int status = 2;
String message = switch (status) {
    case 0 -> "OK";
    case 1 -> "Warning";
    case 2 -> "Error";
    case int i -> "Unknown status: " + i;
};
System.out.println(message);


				
			

Flexible Constructor Bodies

In Java 24, constructor bodies have become more flexible — now allowing statements to appear before an explicit constructor invocation.

				
					class Student extends Person {
    Student(String name) {
        if (name == null || name.isBlank()) {
            throw new IllegalArgumentException("Name cannot be empty");
        }
        super(name);
    }
}
				
			

5

Lynx JS: A Revolutionary Framework for Cross-Platform App Development. A New Challenger to React Native?

Gabriel Falis​

Developer

A strong new contender has entered the world of cross-platform app development — Lynx JS, a framework developed by ByteDance, the company behind TikTok. Positioned as a modern alternative to React Native, Lynx JS focuses on performance, simplicity, and versatility.

What is Lynx JS?
Lynx JS is a cross-platform framework that lets you write your code once and deploy it across multiple platforms. It’s built for speed, reactive UIs, and ease of use — enabling you to create fast, smooth applications with a native look and feel.

Why Choose Lynx JS?

  • Cross-Platform Compatibility: One codebase for web, iOS, and Android
  • High Performance: Lightweight architecture ensures fast load times and responsiveness
  • Reactive UI: Built-in reactive system for seamless UI updates
  • Easy to Learn: Intuitive syntax and clear structure make it beginner-friendly
  • Scalable: Suitable for everything from small startups to large enterprises

Getting Started with Lynx JS

				
					//Install Lynx 
npm install -g @lynx-js/cli

//Creating project:
lynx create moja-aplikacia

//Starting the Development Server:
cd moja-aplikacia
npm install
npm start
				
			

Your first Lynx JS app should launch at: http://localhost:3000/

Lynx JS vs. ReactLynx
Lynx JS also integrates with React through ReactLynx, allowing you to bring the power of React into your native iOS and Android app development workflows.

Final Thoughts
Lynx JS is a promising new framework for cross-platform development, offering a blend of performance, simplicity, and scalability. If you’re looking for an alternative to existing solutions, this one is definitely worth checking out.

Missed the February edition of Coder’s Corner? Read it here.