Web frameworks
fromMedium
1 day agoOne line in SBT 2- How Remote Caching Cut Our CI in Half
A Scala monorepo reduced CI build time from 25 minutes to 11 minutes using Kubernetes pods, gRPC cache servers, and SBT 2's Bazel protocol integration.
New overloads on TarFile.CreateFromDirectory accept a TarEntryFormat parameter, giving direct control over the archive format. Previously, CreateFromDirectory produced Pax archives. The new overloads support all four tar formats—Pax, Ustar, GNU, and V7—for compatibility with specific tools and environments.
One of the most significant changes is the move to integrate CSS module support directly into webpack's core. Currently available behind the experimental.css option, this feature eliminates the need for mini-css-extract-plugin. The team expects to complete integration into core around early 2026, with the feature remaining experimental until webpack 6, at which point plugin-based CSS handling will no longer be necessary.
One of the reasons I've been digging Astro so much is that it nicely straddles the SSG world and Node.js server worlds. When building your app, you can make logical decisions about what should be done at build time versus what should be done dynamically. It's like having Express and Eleventy rolled into one solution.
Modern web applications are no longer just "sites." They are long-lived, highly interactive systems that span multiple runtimes, global content delivery networks, edge caches, background workers, and increasingly complex data pipelines. They are expected to load instantly, remain responsive under poor network conditions, and degrade gracefully when something goes wrong.
Building APIs is so simple. Caveat, it's not. Actually, working with tools with no security, you've got a consumer and an API service, you can pretty much get that up and running on your laptop in two or three minutes with some modern frameworks. Then, authentication and authorization comes in. You need a way to model this.
I'm currently building a web app using NuxtJS 2 for the frontend and NestJS for the backend, relying on third-party APIs (like Replicate) for the heavy lifting. I'm using Cloudflare R2 to store the generated output images. I'm running into some performance bottlenecks when rendering specific landing pages that contain heavy, dynamic image galleries. For instance, I'm trying to optimize the SEO and load speed for my AI Pet Portrait Generator free tool page.
The component also provides features for columns (sort, hide, resize), rows (select), cells (keyboard navigation, pointer interactions, custom rendering). Feel free to ask and look at the code if you're interested in knowing more. The <HighTable> component is developed at hyparam/hightable. It was created by Kenny Daniel for Hyperparam, and I've had the chance to contribute to its development for one year now.
For a long time I wanted to document something I have done many times in production systems but never explained clearly: using Django ORM as a standalone module to connect to an existing database. In my work I have often dealt with legacy systems where the only reliable source of truth was the database itself. In those situations, Django ORM became my Swiss army knife.
Waku, a minimal React framework has released version 1.0 alpha, marking its public API surface area as stable as the project shifts focus towards bug fixes and compatibility improvements. Waku 1.0 alpha represents a significant milestone for the lightweight framework, which has been in development for nearly three years. The release stabilises the framework's public APIs and signals a transition from feature development to refinement and stability.
What's happening here: Type-safe - Your editor knows repo is a SnippetRepository. Full autocomplete, type checking works. Automatic cleanup - The context manager ensures the database session closes, even if an exception occurs. No global state - Every request gets its own session. No risk of one request interfering with another. Testable - Here's the magic: You override the dependency with an in-memory implementation. Your test doesn't hit the database.
The most complete example of what the new development server makes possible is support for Cloudflare Workers. With Astro 6 Beta, astro dev can now run applications using workerd, Cloudflare's open-source JavaScript runtime, which is the same runtime that powers Cloudflare Workers in production. This means developers can now develop directly against real platform APIs rather than simulations or polyfills.
We also patched two potential denial-of-service vulnerabilities when handling large, malformed inputs. One exploits inefficient string concatenation in header parsing under ASGI ( CVE 2025-14550). Concatenating strings in a loop is known to be slow, and we've done fixes in public where the impact is low. The other one ( CVE 2026-1285) exploits deeply nested entities. December's vulnerability in the XML serializer ( CVE 2025-64460) was about those very two themes.
Readable failures. When something breaks, I want to understand why in seconds, not minutes. Predictable setup. I want to know exactly what state my tests are running against. Minimal magic. The less indirection between my test code and what's actually happening, the better. Easy onboarding. New team members should be able to write tests on day one without learning a new paradigm.
Angular is a cohesive, all-in-one reactive framework for web development. It is one of the larger reactive frameworks, focused on being a single architectural system that handles all your web development needs under one idiom. While Angular was long criticized for being heavyweight as compared to React, many of those issues were addressed in Angular 19. Modern Angular is built around the Signals API and minimal formality, while still delivering a one-stop-shop that includes dependency injection and integrated routing.
Two years ago, the Express team initiated a complete revamp of the project's governance. What was once a largely single-maintainer effort under Doug Wilson evolved into a structured Technical Committee (TC) with multiple active contributors. "Our goal was to evolve Express from a single-maintainer project into a sustainable, community-driven effort - one built on shared responsibility, clear processes, and long-term vision," Ulises explained.
But the nature of web design has changed since CSS was first built. Most frameworks, whether it be Angular, React, or Astro, have become component-based. But even those components were designed to separate CSS and HTML. For instance, in Angular, a component consists of three files: a TypeScript file, an HTML file, and a CSS file. But those components are becoming more and more granular.
Christopher shares an article titled "The Uselessness of 'Fast' and 'Slow' in Programming." It digs into how the different aspects of software performance span a wide range of orders of magnitude, and how developers can obsess over irrelevant performance details, often losing more time working in suboptimal environments than building what they need with tools they already know. We also discuss an article about why uv is fast, which explains how most of its speed comes from engineering decisions rather than just being written in Rust.
Django, the Python web framework, has released Django 6.0, delivering a collection of developer-focused features, security enhancements, and performance improvements aimed at modernizing web application development. Django 6.0 introduces several major features, including a built-in background tasks framework, native Content Security Policy support, template partials for component-based development, and adoption of Python's modern email API. The release also includes support for Python 3.12, 3.13, and 3.14, while dropping support for Python 3.10 and 3.11.
Today's browsers can handle most of the problems that frontend frameworks were originally created to solve. Web Components provide encapsulation, ES modules manage dependencies, modern CSS features like Grid and container queries enable complex layouts, and the Fetch API covers network requests. Despite this, developers still default to React, Angular, Vue, or another JavaScript framework to address problems the browser already handles natively. That default often trades real user costs -page weight, performance, and SEO - for developer convenience.
Intro to Nitro: The server engine built for modern JavaScriptDo you ever wonder how modern meta-frameworks run effortlessly on everything from a traditional Node server to a Cloudflare Edge Worker? The answer is Nitro. More than just an HTTP server, Nitro is a universal deployment engine. By abstracting away the runtime, Nitro delivers a massive leap in server-side portability, effectively coalescing the fractured landscape of deployment targets into a single, unified interface.
If you've been watching the JavaScript landscape for a while, you've likely noticed the trend toward simplicity in web application development. An aspect of this trend is leveraging HTML, REST, and HATEOAS (hypermedia as the engine of application state) to do as much work as possible. In this article, we'll look at Hotwire, a collection of tools for building single-page-style applications using HTML over the wire.
At the core of oRPC's design philosophy is what the team calls "powerful simplicity." Developers can define API endpoints with a syntax that feels similar to writing standard functions, while automatically gaining production features like OpenAPI specification generation, server action compatibility, and contract-first workflow support. The library supports multiple schema validators out of the box, including Zod, Valibot, and ArkType, without requiring additional configuration.