Angular v20 is 35% faster, Remix v3 is breaking up with React, and the future of JavaScript - Week #37
Hello JavaScript Enthusiasts!
Welcome to a new edition of "This Week in JavaScript"!
This week, we’re hyped about Angular v20’s lightning-fast features, Remix’s game-changing framework overhaul, and the future of JavaScript. We’ve also got an updated list of tools supercharge your development workflow, as always
Can’t read the newsletter? Listen on the go!
Angular v20 Is Now 35% Faster
At Google I/O on May 21, 2025, the Angular team announced Angular v20, scheduled for release on May 29. This version significantly enhances server-side rendering (SSR), signals, and authoring capabilities, providing an improved developer experience and optimized application performance.
Zoneless Angular (Developer Preview)
Zone.js is now optional: Angular supports running without Zone.js by leveraging signals for precise change detection.
Efficient UI updates: Developers can use markForChange or signal state awareness to trigger targeted change detection.
Example of enabling zoneless mode:
typescript bootstrapApplication(App, { zoneless: true }); Manual change detection invocation: typescript import { markForChange } from '@angular/core'; markForChange();
Signal Ecosystem Enhancements
Signals and Computed are stable: Recommended for reactive state management.
LinkedSignal (stable in v20): Supports writable signals with access to previous state values.
typescript const count = signal(0); const double = computed(() => count() * 2); const history = linkedSignal([], (prev, next) => [...prev, next]);
Resource and HTTPResource: Simplify asynchronous data fetching; StreamingResource supports real-time UI updates.
typescript const user = resource(async () => await fetchUser()); const posts = httpResource('/api/posts');
Server-Side Rendering (SSR) Improvements
Route-level render mode APIs: Enable hybrid rendering strategies, allowing SSR, static site generation, and client-side rendering on a per-route basis.
typescript export const routes: Routes = [ { path: '', component: HomeComponent, renderMode: 'ssr' }, { path: 'about', component: AboutComponent, renderMode: 'client' } ];
Incremental hydration: Allows deferring component hydration using Angular’s defer block, reducing initial JavaScript bundle size.
Event replay: Captures and replays user interactions during JavaScript loading to prevent missed events.
Authoring Experience Improvements
Standalone components as the default: Simplifies development by reducing reliance on NgModules.
Introduction of let syntax: Provides a cleaner way to declare template variables.
xml <ng-container *let="user of userSignal()"> {{ user.name }} </ng-container>
Untagged literals for dynamic styling: Enables direct binding of dynamic class and style objects.
xml <div [class]="{ active: isActive }"></div>
Hot Module Replacement (HMR): Maintains application state during development reloads, enhancing developer productivity.
New Integrations and Tooling
Experimental Vite support for testing: Offers faster and modernized development workflows.
Custom Angular track in Chrome DevTools: Flame charts now include color-coded frames for Angular change detection and TypeScript execution.
Firebase App Hosting: Provides streamlined deployment for SSR applications.
Additional Highlights
AI portal launch: angular.dev/ai introduces AI-driven workflows to assist Angular developers.
Angular v20 delivers substantial improvements across SSR, reactive programming with signals, authoring, and developer tooling, reinforcing its position as a robust framework for enterprise-grade applications.
Remix v3 And The Breakup With React
Remix v2 powers React Router v7 with robust server-side rendering capabilities, enabling fast, scalable applications used by Shopify, GitHub, and over 11 million projects worldwide. Its architecture is well suited for e-commerce platforms, blogs, and other content-driven sites, providing a reliable full-stack React framework experience.
Following the close integration and eventual merging of Remix into React Router v7, as detailed in the merging announcement, Remix v2 had become a thin wrapper around React Router. This consolidation allowed React Router to inherit many of Remix’s strengths, including server-side rendering and React Server Components (RSC) support, creating a stable, battle-tested platform with long-term support.
Remix v3 marks a significant departure from this model. It replaces React with the lightweight Preact library and embraces a model-first, low-dependency, web API-centric approach. This reimagining minimizes reliance on heavy build tools by favoring runtime execution, making it ideal for AI-driven applications, lightweight websites, and modern web development workflows.
Key features of Remix v3
Web API-Centric Design: Leveraging web standards and native browser APIs reduces complexity and shortens the learning curve, allowing developers to focus on building rather than framework-specific abstractions.
Minimal Dependencies: Adhering to a “no dependencies” philosophy, Remix v3 frees developers from external package roadmaps and increases project control.
Modular Architecture: Bundled components such as database connectors and a revived Reach UI library simplify setup and customization. Single-purpose modules enable easy swapping or upgrading of parts.
Composability and Flexibility: The framework encourages mixing and matching tools, providing a scalable developer experience suitable for both small and large projects.
Performance and Reliability: Google’s use of Preact underscores the framework’s stability and efficiency. Runtime optimizations and reduced bundle sizes contribute to faster load times and smoother user experiences.
Developer Experience: Drawing from years of web-building expertise, Remix v3 focuses on simplicity, clarity, and productivity, aiming to make development intuitive and enjoyable.
Overall, Remix v3 represents a bold evolution toward leaner, faster web applications by reimagining the framework’s foundations around modern web standards and minimalism. It is poised to reshape how developers build scalable, high-performance web apps with a fresh, streamlined approach.
The BIGGEST JavaScript Change?
The Temporal API, a modern replacement for JavaScript’s legacy Date object, has been in development for several years and is now enabled by default in Firefox 139, with broader runtime support expected soon. This API addresses long-standing issues with date and time handling, offering a more reliable, precise, and developer-friendly approach.
Key improvements and features
Comprehensive Time Zone Support: Unlike the traditional Date object, Temporal supports full IANA time zones, enabling accurate handling of local times worldwide.
Immutability: All Temporal objects are immutable, preventing unintended side effects and making date/time manipulation safer.
Consistent Parsing and Formatting: Strict adherence to ISO 8601 standards ensures reliable parsing and serialization across environments.
Fine Precision and Extended Range: Supports nanosecond precision and a wider range of dates, suitable for high-precision and historical applications.
Clear Separation of Date/Time Concepts: Multiple specialized classes such as PlainDate, PlainTime, PlainDateTime, ZonedDateTime, and Duration allow developers to work precisely with the data they need without confusion.
Example
typescript
const date = Temporal.PlainDate.from("2025-05-23");
const oneWeekLater = date.add({ days: 7 }); // 2025-05-30
const dt = Temporal.PlainDateTime.from("2025-12-31T23:30");
const nextHour = dt.add({ hours: 1 }); // 2026-01-01T00:30
The Temporal API’s introduction marks a significant evolution in JavaScript date/time handling, eliminating many pitfalls of the old Date object such as DST bugs, mutability, and inconsistent parsing. Its rollout in Firefox 139 signals readiness for wider adoption, promising developers a robust, standardized toolset for all date and time needs in modern web applications.
Tools & Releases You Should Know About
Let’s speed-run through some of the other big tool updates this week!
ReactJust.dev is a minimal, zero-config React starter kit focused on simplicity and performance. It provides a clean, lightweight foundation with minimal dependencies, enabling fast project setup without complex tooling. Designed for developers who want to quickly bootstrap React apps, it supports modern React features and best practices out of the box. Ideal for prototypes, small projects, or learning React fundamentals, ReactJust.dev streamlines development by eliminating boilerplate and unnecessary complexity, helping you focus on building your app efficiently.
Bun v1.2.15: Delivers bun audit to catch dependency risks and bun pm view for package insights, fixing 11 issues with 261 upvotes. New BUN_OPTIONS and node:vm support enhance Node.js compatibility, ideal for secure APIs or microservices.
Ink 6.0: Brings React-style UI building to command-line apps with Flexbox layouts, using Yoga for CSS-like designs. It’s perfect for crafting interactive CLI tools or scripts, with full React feature support.
JSPM 4.0: Simplifies ESM workflows with import maps, TypeScript stripping, and zero-config builds for web-standard apps. Its focus on native modules makes debugging easy and keeps projects future-proof.
Faker 9.8: Creates realistic fake data like names, addresses, and crypto details across 70+ locales for testing or prototyping. From job titles to product names, it’s a quick way to mock up robust datasets.
And that's it for the thirty-seventh issue of "This Week in JavaScript", brought to you by jam.dev—the tool that makes it impossible for your team to send you bad bug reports.
Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.
Until next time, happy coding!