Bleeding Edge Web

@edgeATX

EdgeATX.org

January 2025

News From the Bleeding Edge

— Ted Patrick (@__ted__)

Express Forward

— Wesley Todd (wesleytodd.com)

Housekeeping

Thanks to Our Host!

Expedia

Expedia is always hiring! expediajobs.com

Acumity

  • Smart, Simple, Secure
  • AI Solutions Designed for the Enterprise

Libraries & Frameworks

Bun v1.1.44 - Jan 16

  • Bun.serve() - serve and bundle frontend
  • HTML Imports
    
              import mySinglePageApp from "./index.html";
            
  • 43 bugs fixed

Spotlight: Tailwind v4

Rapidly build modern websites without ever leaving your HTML.

Tailwind utility classes to style without CSS

  • Oxide Engine - faster in Rust
  • Variants, Cascade Layers, Container Queries
  • Zero-configuration Content Detection

Daisy UI v5 beta

backdrop-filter example
  • Semantic Tailwind Components in HTML/JSX
    
              <button class="btn btn-primary">Press Me</button>
            
  • Zero dependencies
  • Smaller Size 34kB (Down from 137kB)

React 19 (Dec 12)

  • <form> Actions
  • New hook: useOptimistic and useFormStatus
  • New API: use
    import {use} from 'react';
    
    function Comments({commentsPromise}) {
      // `use` will suspend until the promise resolves.
      const comments = use(commentsPromise);
      return comments.map(c => <p key={c.id}>{c}</p>);
    }

Notable releases

Baseline News

https://web.dev/baseline

Latest browser releases

Baseline 2025: Promise.try

  • Baseline 2025 on Jan 26th
  • Simplified error handling with Promise

        // If the callback is synchronous and it throws
        // an exception, the error won't be caught here:
        new Promise(resolve => resolve(callback());

        // But it will be here:
        Promise.try(callback)
          .then(result => console.log(result))
          .catch(error => console.log(error))
          .finally(() => console.log("All settled."));
      

WebGPU (Not Baseline!)

  • Utilize a GPU from JavaScript
  • High-performance, low-level 3D graphics API
  • Built on OS APIs... Vulkan, Metal, or Direct3D 12
    
    const canvas = document.querySelector('cv') as HTMLCanvasElement;
    const adapter = await navigator.gpu?.requestAdapter();
    const device = await adapter?.requestDevice();
    const context = canvas.getContext('webgpu') as GPUCanvasContext;
            
  • Both Graphics + Data Processing (AI Models)

Future of htmx (Jan 1)

  • Evolution of htmx
  • Focus lib on stability, not features
  • Goal is to be the next jquery

NVM for Windows v1.2.0

  • Desktop Notifications
  • ARM Support
  • Congrats Corey!

Just For Fun

document.designMode = 'on'

Pure CSS 3D Cat

Thanks!

Ted Patrick