Archive
Everything
All items from the last 30 days, newest first.
DEV CommunityThe Giantsread at source
Hybrid Humanity: Cognitive Architecture after AGI
The article analyzes the vision of Hybrid Humanity, where AI cognitive augmentations become tools for real agency. The author refers to the 'capability approach', indicating that technology should increase actual human capabilities rather than being a mere luxury for elites. A key threat is the emergence of new classes based on coupling quality—a divide between those with audited systems and those dependent on models optimized for corporate interests. The text advocates for the creation of a polycentric network of intelligent institutions (Supersociety) which, instead of monolithic management, emphasizes infrastructural pluralism and the independence of cognitive processes. Freedom in a post-AGI world thus depends on open standards and the ability to switch augmentation providers, making competition policy a foundation of cognitive freedom.
DEV CommunityThe Giantsread at source
Before you ship your side project, run three commands: Yatta JS's doctor, migrate, and backup
Side projects rarely die because the idea was bad. They die in the gap between "it works on my machine" and "it survives real users" — the database migration nobody ran, the backup nobody took, the misconfiguration nobody noticed until launch day. Yatta JS is a backend-as-a-server for Bun: database, auth, mail, storage, realtime, jobs, and observability embedded in your application process instead of provisioned as separate services. It is live as yatta.js@1.0.0 on npm — install it with npm i yatta.js — and the docs are at https://yatta.js.org . What I want to talk about today is not the architecture, though. It is the three boring commands that sit between a demo and a shipped thing. Doctor first: check the patient before the launch Every framework has a setup guide. Few of them will look at your actual project and tell you what is off. Yatta's doctor command does that job: it checks your project setup and flags problems before they become launch-day surprises. My rule now is simple: doctor runs before every deploy, not after something breaks. It is the cheapest form of confidence a solo builder can buy, and it costs nothing because the check is local to your own project. If you take one habit from this post, take this one — verify the setup, don't assume it. Migrations as a normal part of the workflow, not a scary event A side project that never changes its data model is a side project that never ships a second feature. Yatta's CLI treats migrations as ordinary work: make a migration, check migration status, run the migration. That rhythm matters more than any single command, because it turns schema changes from a dreaded manual step into a repeatable one you do without thinking twice. The practical payoff is unglamorous and real: your local database, your staging data, and your production data move forward in the same steps, in the same order. When you are the only person on the project, that repeatability is your whole ops team. Backup before you need it, not after you lose something Yatta's CLI includes database backup and restore commands, and the honest truth is that most solo projects never test a restore until the day they need one. Build the habit the other way round: take a backup before a risky migration, and know that restore is a command you have already practised, not a README you are reading in a panic. That is the whole pre-ship checklist, and it fits in a short paragraph: run doctor, keep migrations routine, back up before risky changes. None of it is exciting. All of it is what keeps a one-person project alive past week two. None of this replaces good judgement — a backup you never tested is a hope, not a plan, and a migration you never reviewed is still your responsibility. But having doctor, migrate, and backup as first-class commands in the same runtime that already holds your database, realtime, and jobs means the unglamorous work stops being a separate project. It is just part of shipping. If you are building on Bun and you are tired of assembling a backend from six services before you write a single feature, Yatta JS is worth a look: https://yatta.js.org — npm: https://www.npmjs.com/package/yatta.js — code: https://github.com/psrockstar098/yatta.js What is the one pre-launch check you always skip and always regret? I would genuinely like to steal better habits from the comments.
DEV CommunityThe Giantsread at source
MAJOR UPDATE!! FatafatOS 81 updated🔥
MAJOR UPDATE!!! FatafatOS 81 Updated 🔥 Yes, you heard it right. FatafatOS 81 just got a CRAZY update. NEW SPECS 🔥 CPU : Old i5 Processor and low graphics - yes, it runs on that old laptop you were about to throw away! RAM : Almost 1 or 0 MB sometimes - so lightweight you won't even feel it. BOOT TIME : 3 seconds - Blink and it's ON. FLOPPY : Floppy Available. Yes, FLOPPY is back. Why this update is different? Everyone is making OS heavier. I am making it lighter. Windows needs 8GB RAM. FatafatOS 81 needs almost 0. This is not an OS. This is FATAFAT. Built in Elikatta, Telangana, India. By - Karthik | Fatafat321 Developer Comment your PC specs, I will tell you if FatafatOS 81 will run on it.
DEV CommunityThe Giantsread at source
Spring Security API key authentication for REST APIs tutorial — Complete Guide
Spring Security API key authentication for REST APIs tutorial — Complete Guide A practical, in-depth guide to Spring Security API key authentication for REST APIs tutorial with examples. INTRO Every day we ship micro‑services that expose JSON endpoints to internal tools, mobile apps, or third‑party partners. The default Spring Security setup assumes a session‑based, form‑login flow—perfect for web UIs but a poor fit for stateless APIs. When you try to protect a REST endpoint with the out‑of‑the‑box configuration, you quickly hit a wall: CSRF tokens, redirects, and HttpSession objects start leaking into your API contract, forcing clients to handle cookies they never asked for. The pragmatic solution is to replace the heavyweight OAuth dance or JWT boilerplate with a simple API key. An API key is just a secret string that a client includes in each request, typically via a header. It’s easy to generate, rotate, and audit, and it works flawlessly with Spring’s filter chain. The challenge isn’t the concept—it’s wiring the key check into Spring Security without breaking the rest of your configuration, handling missing or malformed keys gracefully, and keeping the implementation testable. If you’ve ever written a custom OncePerRequestFilter that felt like a hack, or you’ve been forced to expose your endpoints without any protection because “security is too hard,” this guide will show you a clean, production‑ready way to integrate API key authentication directly into Spring Security’s authentication manager. WHAT YOU'LL LEARN How to define a lightweight AuthenticationToken that represents an API key and plug it into Spring’s AuthenticationProvider . Configuring the security filter chain to intercept requests, extract the key from a custom header, and delegate to the provider. Storing API keys securely using Spring Data JPA, with hashing and rotation strategies. Writing unit and integration tests for the filter, provider, and controller layers without starting a full server. Common pitfalls such as leaking keys in logs, handling multiple keys per client, and mixing API key auth with other mechanisms. Production hardening tips: rate limiting, revocation, and monitoring key usage with Spring Actuator. A SHORT CODE SNIPPET // 1. Simple Authentication token that holds the raw API key public class ApiKeyAuthenticationToken extends AbstractAuthenticationToken { private final String apiKey ; private final UserDetails principal ; public ApiKeyAuthenticationToken ( String apiKey ) { super ( null ); this . apiKey = apiKey ; this . principal = null ; setAuthenticated ( false ); } public ApiKeyAuthenticationToken ( UserDetails principal , String apiKey , Collection extends GrantedAuthority > authorities ) { super ( authorities ); this . apiKey = apiKey ; this . principal = principal ; setAuthenticated ( true ); } @Override public Object getCredentials () { return apiKey ; } @Override public Object getPrincipal () { return principal ; } } This token is the cornerstone of the authentication flow. The filter extracts the header, creates an unauthenticated instance, and hands it to the provider. If the key matches a stored record, the provider returns an authenticated token populated with the user’s authorities. KEY TAKEAWAYS Leverage Spring’s extensibility : By creating a custom AuthenticationToken and AuthenticationProvider , you keep the API key logic out of controllers and let Spring handle the heavy lifting. Never store raw keys : Hash the API key (e.g., BCrypt) before persisting, and compare hashes during authentication to mitigate leakage. Fail fast and stay silent : Return 401 Unauthorized without revealing whether the key was missing or invalid; this prevents enumeration attacks. Make it testable : Isolate the filter, provider, and repository so you can unit‑test each piece with mock requests and verify behavior under edge cases. 👉 Read the complete guide with step-by-step examples, common mistakes, and production tips: Spring Security API key authentication for REST APIs tutorial — Complete Guide
DEV CommunityThe Giantsread at source
Kimi K3.1 Pro โมเดล AI น้ำหนักเปิด 1 ล้านโทเคน เก่งจริงหรือแค่ชนะบนกระดาษ?
โดย Nokka (นก-กา) | ตรวจข้อมูล 24 ต.ค. 2026 บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา) Moonshot AI เปิดตัว Kimi K3.1 Pro เมื่อวันที่ 23 ตุลาคม 2026 [4] พร้อมคำกล่าวอ้างที่คุ้นหูว่าโมเดลนี้เข้าใกล้หรือเทียบชั้นโมเดลปิดชั้นนำ [1] ตัวเลขที่ถูกพูดถึงมากที่สุดคือ 65.7% บน Terminal-Bench 4.0 ซึ่งสูงกว่า GPT-6 Astra ที่ 58.2% และตามหลัง Claude Opus 5.5 ที่ 66.4% อยู่เล็กน้อย [1] ปัญหาคือตัวเลขชุดนี้มาจากตารางของบริษัทเอง และเมื่อผมไปเปิดกระดานของคนอื่น ตัวเลขกลับไม่เหมือนกัน บทความนี้จะแยกให้ดูว่าอะไรคือข้อเท็จจริงที่ตรวจได้ อะไรคือคำกล่าวอ้าง และอะไรคือกับดักเวลาอ่านข่าวแบบนี้ เกิดอะไรขึ้น Kimi K3.1 Pro เป็นโมเดลแรกในซีรีส์ K3.1 และเป็นโมเดลน้ำหนักเปิดที่บริษัทเรียกว่า "ระดับ 3T" ตัวท็อปที่สุดเท่าที่เคยทำมา พร้อมหน้าต่างบริบท 1 ล้านโทเคน [1] บริษัทระบุว่าเป็นเวอร์ชัน post-train ต่อจาก Kimi K3 โดยใช้กำลังคำนวณช่วง post-training มากขึ้นกว่ามาก [1] พร้อมกันนั้นมีอีกเวอร์ชันชื่อ Kimi K3.1 Pro Highspeed ที่บริษัทบอกว่าเร็วกว่า 2 ถึง 3 เท่า [1] ทั้งสองเวอร์ชันใช้ได้วันนี้บน Kimi.ai, Kimi Work, Kimi Code และ Kimi API ส่วนน้ำหนักโมเดลเต็มจะปล่อยภายในวันที่ 4 พฤศจิกายน 2026 [1] จุดสุดท้ายนี้สำคัญ เพราะแปลว่าวันนี้ยังไม่มีอะไรให้ดาวน์โหลดไปรันเอง ต้องรออีกราวสิบวัน สามตัวเลขที่คนพูดถึง ตัวเลขที่บริษัทรายงานเอง หนึ่ง Terminal-Bench 4.0 ที่ 65.7% เป็นชุดทดสอบที่วัดว่า agent ใช้ terminal แก้งานจริงได้แค่ไหน โดยมีเทสต์เฉพาะงานเป็นตัวตัดสิน [1] สองอัตราการ hallucination ลดจาก 23.4% เหลือ 8.3% บนชุดทดสอบภายในชื่อ Kimi Hallu Bench Hard [1] สาม Kimi Code Bench 3.0 แบบ long-horizon ได้ 61.2% เทียบกับ Kimi K3 ที่ 55.95% [1] ทั้งสามตัวเป็นการวัดของบริษัทเอง ยกเว้นตัวแรกที่มีกระดานภายนอกให้เทียบ แต่ตัวเลขเดียวกัน สองแหล่งไม่ตรงกัน ตรงนี้คือส่วนที่ผมคิดว่าผู้อ่านควรเห็นมากที่สุด บริษัทเขียนว่า Opus 5.5 ได้ 66.4% บน Terminal-Bench 4.0 และบอกด้วยว่า คะแนนของคู่แข่งนั้น "นำค่าสูงสุดที่รายงานไว้ในบล็อกหรือบนกระดานทางการ" มาใช้ [1][3] แปลว่าตารางเดียวกันอาจผสมผลจากการรันคนละแบบ คนละ harness คนละการตั้งค่า เมื่อผมเปิดหน้าผลของ Artificial Analysis ซึ่งเป็นคนละเจ้าของการวัด พบว่า Kimi K3.1 Pro ได้ 67.2% เป็นอันดับหนึ่ง ตามด้วย Claude Sonnet 5.5 ที่ 63.6% และ Opus 5.5 ที่ 59.6% [2] โดยหน้ารายละเอียดระบุว่าใช้ mini-swe-agent และโหมด Max, Default Fallback จะเห็นว่า Opus 5.5 ในสองแหล่งต่างกันถึงเกือบเจ็ดจุด ขณะที่อันดับของ Kimi กลับสูงขึ้น นี่ไม่ใช่การโกหกของใคร แต่เป็นธรรมชาติของ benchmark สมัยนี้ ที่คะแนนขึ้นกับ harness, reasoning effort, temperature และวิธีให้คะแนน [1] ถ้าจะสรุปให้สั้นที่สุด คือ ตัวเลข benchmark ใช้เปรียบเทียบได้เฉพาะเมื่อรันด้วยเงื่อนไขเดียวกัน และข่าวส่วนใหญ่ไม่ได้บอกเงื่อนไขนั้น อัตรา hallucination 8.3% อ่านอย่างไร ชุดทดสอบภายในไม่ใช่กระดานสาธารณะ ตัวเลขนี้ฟังดูน่าตื่นเต้น แต่ต้องอ่านคำกำกับให้ครบ บริษัทระบุชัดว่าเป็นชุดทดสอบ ภายใน ชื่อ Kimi Hallu Bench Hard ซึ่งออกแบบมาเพื่อกดดันความแม่นยำโดยเฉพาะ และคำถามถูกสร้างให้ยากเป็นพิเศษ [1] การวัดเป็นระดับข้อความย่อย ไม่ใช่ระดับคำตอบทั้งก้อน และผู้ตัดสินว่าเป็น hallucination คือ agent ที่ทำหน้าที่ตรวจข้อเท็จจริง [1] บริษัทเสริมว่า สัดส่วนคำตอบที่มีข้อผิดพลาดอย่างน้อยหนึ่งจุด เหลือเพียง 42.4% ของรุ่นก่อน [1] แต่มีจุดที่ผมอ่านแล้วหยุดคิด บล็อกเดียวกันแนบกราฟที่ให้คะแนนคู่แข่งบนชุดทดสอบเดียวกันด้วย [1] บนกราฟชุด "Hard with tools" ตัวเลขที่ต่ำกว่าคือดีกว่า Kimi K3.1 Pro อยู่ที่ 8.3% ขณะที่ GPT-6 Astra อยู่ที่ 5.5% ส่วน Opus 5.5 อยู่ที่ 15.0% แปลว่าบนชุดทดสอบนี้ คู่แข่งตัวหนึ่งทำได้ดีกว่า Kimi และคู่แข่งอีกตัวทำได้แย่กว่า ทั้งหมดนี้ทำให้ตัวเลข 8.3% บอกอะไรได้จริงเรื่องการพัฒนา จาก K3 มาเป็น K3.1 Pro แต่ไม่ควรถูกอ่านว่าเป็นอันดับหนึ่งของตลาด เพราะการรันคู่แข่งบนชุดนี้ก็ทำโดย Kimi เอง ไม่ใช่การวัดอิสระ นี่คือความต่างระหว่าง "ดีขึ้นกว่าเมื่อวาน" กับ "ดีกว่าคนอื่น" ซึ่งสองอย่างนี้ไม่จำเป็นต้องเกิดพร้อมกัน ที่โมเดลทำได้จริงตามที่บริษัทโชว์ ส่วนที่จับต้องได้มากกว่าตัวเลข คือความสามารถเชิงงาน งาน 3D บริษัทบอกว่าโมเดลทำงานกับ Unity, Unreal Engine และ Godot ได้ รวมถึงฉาก Three.js และงานฟรอนต์เอนด์ และบริษัทอ้างว่าผลงาน 3D สามารถดาวน์โหลดไปพิมพ์สามมิติได้ผ่านเครื่องมือ 3D Make ของ Kimi [1] งานเงิน อ้างว่าทำงานแบบ end-to-end ได้ ทั้ง screening การวิเคราะห์ความสามารถทำกำไร และได้ 64.4 บน OfficeQA Pro v2 งานอ่านเอกสารการเงินจริงข้ามฉบับ [1] Financial Modeling ดีขึ้น 7.2 จุดจาก K3 ในงานสร้างโมเดลการเงินและตรวจสอบสูตร [1] งานโค้ดระยะยาว มี Kimi Code Bench 3.0 long-horizon เป็นตัววัดการทำงานหลายขั้นตอนและการใช้เครื่องมือต่อเนื่อง [1] ผมยังไม่ได้ลองเอง จึงรายงานตามที่บริษัทอ้างและระบุที่มาไว้ชัดเจน 1 ล้านโทเคนหมายความว่าอะไรกับงานจริง ข้อสังเกตทั่วไปข้อแรกคือ บริบท 1 ล้านโทเคนมักถูกเข้าใจว่า "จำได้หมดทุกอย่าง" ซึ่งไม่จริง สิ่งที่บริบทใหญ่ช่วยคือการวางงานหลายชิ้นไว้ในบทสนทนาเดียว เช่น อ่าน repo ทั้งก้อน เอกสารหลายร้อยหน้า หรือ log ยาว ๆ โดยไม่ต้องตัดทิ้ง แต่คุณภาพการดึงข้อมูลจากบริบทนั้นเป็นคนละเรื่องกับขนาดบริบท และนี่คือจุดที่โมเดลต่างกันมาก บริษัทเองก็วางตำแหน่งโมเดลนี้ไว้ที่งาน agentic และงานยาว ซึ่งเป็นที่ที่บริบทใหญ่มีประโยชน์จริง ไม่ใช่งานถามตอบสั้น ๆ [1] ถ้าจะลอง เริ่มตรงไหน ผ่านเว็บ ใช้ Kimi.ai ได้ทันที ผ่านเครื่องมือเขียนโค้ด เปิด Kimi Code แล้วเลือกด้วยคำสั่ง /model ผ่าน API เลือกชื่อโมเดลตามนี้ และมี Zero Data Retention สำหรับลูกค้า API [1] kimi-k3.1-pro เวอร์ชันมาตรฐาน kimi-k3.1-pro-highspeed เร็วขึ้น 2-3 เท่า ตามที่บริษัทระบุ รอโหลดไปรันเอง ต้องรอถึง 4 พฤศจิกายน 2026 [1] สิ่งที่ควรระวัง คำว่า 3T-class เป็นการบอกระดับ ไม่ใช่จำนวนพารามิเตอร์ที่ยืนยันได้จากเอกสารสาธารณะ ตารางเปรียบเทียบของบริษัท รวมคะแนนจากหลายแหล่ง ซึ่งบริษัทเองก็ระบุไว้ในหมายเหตุ คำว่า open-weight วันนี้ยังเป็นคำสัญญา ไม่ใช่ไฟล์ที่ดาวน์โหลดได้ ความสามารถด้านไซเบอร์ บริษัทบอกว่าตั้งใจให้ต่ำกว่าขีดสุดของตัวเอง และยังตามหลังโมเดลปิดชั้นนำที่เปิดให้ใช้มาแล้วอย่างน้อยสามเดือน [1] เป็นการตัดสินใจเชิงนโยบาย ไม่ใช่ข้อจำกัดทางเทคนิค ใครควรลอง ใครยังไม่ต้อง ควรลองถ้า งานคุณต้องยัดเอกสารหรือโค้ดจำนวนมากเข้าไปในครั้งเดียว หรือกำลังมองหาโมเดลเปิดสำหรับงาน agent ที่ต้องรันเองในอนาคตอันใกล้ ยังไม่ต้องถ้า คุณต้องการรันในเครื่องตัวเองตั้งแต่วันนี้ เพราะยังไม่มีน้ำหนักให้โหลด หรือถ้างานคุณสั้นและตรงไปตรงมา จนบริบท 1 ล้านโทเคนไม่มีประโยชน์ และถ้าคุณกำลังจะอ้างตัวเลขจากข่าวนี้ในที่ประชุม ผมแนะนำให้พูดว่า "คะแนนบน Terminal-Bench 4.0 อยู่ราว 65 ถึง 67 เปอร์เซ็นต์ ขึ้นกับคนวัด" มากกว่าเลือกตัวเลขเดียวมาพูด ปิดท้าย ผมมองว่าข่าวนี้ไม่ได้น่าสนใจเพราะ Kimi ชนะหรือแพ้ Opus 5.5 แต่น่าสนใจเพราะช่องว่างระหว่างโมเดลเปิดกับโมเดลปิดแคบลงจนการวัดกลายเป็นเรื่องยาก เมื่อของสองฝั่งใกล้กันถึงระดับนั้น ตัวเลขหลักหน่วยจะบอกอะไรได้น้อยลงเรื่อย ๆ และคำถามที่ตอบยากขึ้นคือ งานของคุณต้องการอะไรจริง ๆ ซึ่งเป็นคำถามที่ไม่มี benchmark ไหนตอบแทนได้ REF [1] Kimi (Moonshot AI, 2026) · Kimi K3.1 Pro Tech Blog: Advancing Open Intelligence. https://www.kimi.ai/blog/kimi-k3-1-pro [2] Artificial Analysis (2026) · Terminal-Bench 4.0 leaderboard. https://artificialanalysis.ai/evaluations/terminalbench-4-0 [3] Terminal-Bench (2026) · กระดานและระเบียบวิธีทดสอบ. https://www.tbench.ai/ [4] Kimi Forum (2026) · Kimi K3.1 Pro has launched. https://forum.moonshot.ai/t/kimi-k3-1-pro-has-launched-start-exploring-now/629
Hacker News Front PageThe Giantsread at source
AI-Assisted Paper on Z-Library Cites a TorrentFreak Article That Doesn't Exist
Hacker News Front PageThe Giantsread at source
Node.js Vulnerability Blog
Hacker News: Show HNLibraries, Frameworks, etc.read at source
Show HN: Autonomous root for Tcl Android TV via CVE-2022-22706
Comments
Flavio CopesMore Front-end Bloggersread at source
I care more about the AI product I can use
An impressive AI roadmap means little when the product you need is unavailable. A practical way to separate future promises from today's useful software.
Hacker News Front PageThe Giantsread at source
I Don't Understand Quantum Physics (2018)
Flavio CopesMore Front-end Bloggersread at source
How to use Cursor Computer Use
Use Cursor Computer Use to test desktop apps and iOS Simulator flows, reproduce UI bugs, and verify fixes with clear prompts and expected results.
Hacker News Front PageThe Giantsread at source
Node2Shell evolves to HTTP2Shell, blast radius affects many HTTP libs and apps
Hacker News: Show HNLibraries, Frameworks, etc.read at source
Show HN: How religions evolved? Charts, Maps, Citations
Comments
Hacker News: Show HNLibraries, Frameworks, etc.read at source
Show HN: Encarta 95 Web
Comments
Flavio CopesMore Front-end Bloggersread at source
The complete guide to LM Studio Bionic
Learn LM Studio Bionic: choose local or cloud models, fix a JavaScript bug step by step, work with documents, and review what the agent changes.
Hacker News Front PageThe Giantsread at source
Hacker reverses Samsung TV, finds on-board AI listening OpenAI account suspended
Hacker News: Show HNLibraries, Frameworks, etc.read at source
Show HN: Inference Cooperative, user-governed AI
Comments
Frontend Masters BlogMore Front-end Bloggersread at source
The Vertical Codebase
A nice app architecture thought by Dominik: The Vertical Codebase. When component architecture came along, many started co-locating HTML/CSS/JS for a component, and it felt right. What if you take that one step further and co-locate based on the site’s conceptual areas? For example, the “dashboard” would have all the hooks, types, queries, etc., related […]
AbduzeedoMulti Author Blogsread at source
Union: Inside Two Times Elliott’s Visual Identity
Explore the Union visual identity by Two Times Elliott, pairing extended grotesk typography and Swiss grids with tactile print monographs. Office branding usually tries way too hard. Over the past fif...
Hacker News: Show HNLibraries, Frameworks, etc.read at source
Show HN: libfpv - Modding FPV Drone into Any Game
Comments
AbduzeedoMulti Author Blogsread at source
Editorial Design: Fortresses by Studio Tumpić/Prenc
Studio Tumpić/Prenc turned a scientific catalogue into a naval officer's file: editorial design in kraft paper, binding cord, and archival tabs. The book documents Pula's 19th and early 20th century f...
SitePointThe Giantsread at source
7 Checks Developers Should Make So AI Search Can Read Their Site
null Continue reading 7 Checks Developers Should Make So AI Search Can Read Their Site on SitePoint .
AbduzeedoMulti Author Blogsread at source
Cuberto Unveils Magma Web Design & Interactive 3D UI
Explore the Magma web design by Cuberto, pairing Jost typography and #0F4BFD cobalt screens with Blender GLTF 3D building twins and GSAP. Real estate platforms almost always look like spreadsheet soft...
Flavio CopesMore Front-end Bloggersread at source
How to secure a VPS with Tailscale and Cloudflare Tunnel
Secure a VPS with private SSH over Tailscale and public web traffic through Cloudflare Tunnel. A complete guide to setup, firewalls, testing, and recovery.
DigitalOcean BlogMulti Author Blogs9 min read
DigitalOcean Signals: Observability for AI Agents and Inference
You ship an agent. It runs in production, sessions start and finish, and the dashboards stay green. But then a user mentions that they spent ten minutes retrying the same failing command with slightly different arguments before giving up and rephrasing the request. The problem?…
Mux BlogCompany/Startup Blogs8 min read
What the iPhone Duo means for web development
We've been working really hard to get the new version of Video.js out the door, and we recently released v10.0.0 ! So over the weekend, I decided to relax a bit with a side project: digging into the web APIs that we’ll have access to on the iPhone Duo. I know, I know, this kind…
DigitalOcean BlogMulti Author Blogs4 min read
Prompt Caching is GA on DigitalOcean Serverless Inference: Up to 90% Off the Context Your Agents Resend
Prompt caching is now generally available on DigitalOcean Serverless Inference, across supported models in our open model catalog, with no changes to your request code required. Cached input is billed at up to 90% off and time to first token drops by up to 80%.* An agent never…
AbduzeedoMulti Author Blogsread at source
Teenage Engineering Is a Masterclass in Product Design
Teenage Engineering designs music gear like precision lab instruments: aluminum bodies, labeled controls and color used strictly as code. Start with the OP-1 field. It is a white aluminum slab, 300 mi...
Geoff GrahamMore Front-end Bloggersread at source
I’ve never been as nervous to publish on CSS-Tricks since my first article in 2015.
AbduzeedoMulti Author Blogsread at source
How Base Design Reimagined the Kanal Centre Pompidou Identity
Base Design built the Kanal Centre Pompidou identity on a variable typeface that breathes, flows and overflows, opening November 2026. The first thing you notice is how little of the system sits still...
Flavio CopesMore Front-end Bloggersread at source
What to check before submitting a native app to App Review
Prepare an Apple app for review, choose useful native interactions, adopt Liquid Glass, and understand how direct Mac distribution differs.
AdactioTop Front-end Bloggersread at source
The Pirate Queen by Ariel Lawhon
This is an infuriating book. So much so that I didn’t finish it. Don’t get me wrong; I love the idea of The Pirate Queen . Telling the life story of Gráinne Ní Mháille is an excellent premise for some rip-roaring historical fiction. It’s even got an interesting structure alternating between three different parts of her life. I was pleasantly surprised when I cracked open the book to find a small pronunciation guide to some Irish words in the front matter. It would be nice to have some Gaeilge scattered throughout the narrative. But that’s exactly what made this book so infuriating. First off all, by dropping in an occassional Irish word into a sentence, it just made me think, “Wait, what language would these people be speaking?” Usually the answer was Irish. In which case, why translate one arbitrary word? Then there’s the choice of the Irish word that gets dropped into the text most frequently… The front matter has this to say about the irish word tá : An affirmative statement similar to yes Um, not really. Tá is present tense of the verb “be”. The English equivalent is “is”. You can’t just drop it in as a replacement for the word “yes”. But that’s exactly what Ariel Lawhon does. This continually took me out of the story. One person asks a question like, “Did you see that?” and the other person answers, “Tá.” That just doesn’t make sense. I know this sounds really nit-picky, but one of the first things you learn about Irish is that there is no single word for “yes” or “no”. It’s most common to respond with the positive or negative form of the verb in the question—“Did you see that?” “I saw!” So of all the words to pointlessly switch into Irish, “yes” is by far the least suitable. It happened every couple of pages. I was getting so annoyed, I flipped ahead to the acknowledgements to find out who was consulted on the use of Irish in the book. I found my answer. No one. That seems somewhat irresponsible to me. It borders on being insulting. Would it have taken so much time and effort to have one single Irish speaker check the text? Alas, the lack of research wasn’t just evident in the book’s treatment of the Irish language. At one point, a young Gráinne is out walking with her brother, who is playing the uilleann pipes. I had to stop and check the text a few times. Perhaps I missed a bit where they sat down. But no, this book blithely describes a character walking and playing uilleann pipes at the same time. Now if you think uilleann pipes are pretty much the same as Scottish highland pipes, this would make sense. But they’re not. A bare minimum amount of research would show that the uilleann pipes are played sitting down (you can try to play them standing up, but you’ll need some kind of extra gadget like Johnny Doran used, but even he couldn’t play them while walking). I carried on reading even though I was getting more and more annoyed by the shoddiness on display. Then I read this sentence: No more distant flicker of lanterns in the distance. I get how you would write that sentence in a first draft. Hopefully you’d catch its redundancy in a subsequent draft. If not, it’s exactly the kind of thing that your editor is there to spot. But no, this made it all the way to the final printed book, a book that was displayed prominently on tables in major bookstores in multiple countries. Compare and contrast that with When The Boys Came Out To Play by John Mackel , a book which will be likely only ever be read by a much smaller audience but which is crafted with so much more care. I always feel slightly guilty if I don’t finish a book. I know, I know; life’s too short and all that. But I can’t shake the feeling that I’m being a bit disrespectful to the author by not seeing their work through to the end. In this case though, the author displayed enough disrepect to her readers that I don’t think I need to feel bad about slamming this book shut. The Pirate Queen is a sloppy piece of work. You deserve better.
Dave RupertTop Front-end Bloggersread at source
Bad at email
Good friends and family know this, but I am bad at email. Like chronically bad. If you have tried to email me, you know this too and you either never got a reply or received one 9-months later starting with the phrase, “Sorry.” I am truly sorry… but also I’m not. It’s a function of who I am. I was never great at email, but in a slower time before social media it raptured my attention. I would habitually refresh my inbox hoping for a long range communication from a friend or stranger. When I was homesick in Japan, a good email (or AIM chat) could turn my day around. I have fond memories of email and its unparalleled ability to connect me to other people through a single address. It of course would never be as familiar or intimate as scribing a hand-written calligraphic letter with a big feather pen, but it proved a fine substitute. At Paravel, I noticed that emails had a propensity to crash into my day with some new urgent task. A ding, a red badge, a bouncing icon in the dock . Could be a client or my accountant; something that required me to stop what I was doing and switch over to their need. Frank once described emails as (paraphrasing) “a to-do you send to someone else” and that resonated in my soul. For someone with an attention regulation disorder, intermittent distractions like email (or chats) can be devastating to staying focused on the work I actually need to finish. Email being disruptive to your productivity must be a pretty common phenomenon because nearly all the productivity books out there –and I’ve read them all– attempt to “solve” productivity by turning off your notifications and checking your email less. I must have really taken this advice to heart because I almost never check my email anymore. After a long day of expending dopamine on work, the last thing I want to do at home is check my personal email and receive more to-dos from strangers. I tend to check my personal email now once a week… or less. Inbox Zero is a fool’s errand for me, but I try to keep my work email groomed and as close to zero as possible. Part of that was because I started with a blank slate and could actually succeed. Each morning I make an analog to-do for myself to check my work email. I set up some priority inboxing and auto-deletes for org-level notifications. Importantly, work email stays sequestered to my work laptop. But despite the success at work, I’m sitting at nearly 500+ unreads in my personal Inbox. It doesn’t feel great and feels like a monumental task now. Since starting at Large Company I know of at least two conferences that I’ve missed out on speaking at because I’m so bad at email (sorry, PPK ). If you’ve ever wondered why I don’t have a contact form on my site or do that cool “email me, let’s be friends” link in my RSS footer, this is why… because I feel shame that I will disappoint you . There’s also the diminishing utility of email. As with phone calls and texts, the amount of spam and noise has ruined the service. It’s a needle in a haystack to find the one good email that actually deserves your attention. Just because we participated in online commerce once doesn’t mean you get the liberty to email me for the rest of my life. I wish there were more laws about this. When did a ten drip email campaign for every online transaction become the standard? You bought an item → Item is getting ready to ship → Want another item? → Item shipped → Need more items? → Item out for delivery → The holidays are coming up → Package delivered → Let us know how we did → Mother’s day coming up → Father’s day coming up → Step-father’s day coming up → etc… It’s entirely too much. And the grifter slop… oh, my God the grifter slop! Hey Dave, I came across your now-defunct company Luro. Design systems is an interesting space. Would you like to increase Luro users by six billion percent through spam email blasts? We can help. Chad, CEO I will never reply to this and– Dave, I thought I’d follow up in case you missed the last email. I’m a fucking robot obviously but we can have a conversation about this. Chad, CEO Grifters, spend six minutes crafting a real email and I promise you it will convert better. Or have an actual fucking product that is so good I hear about it from other people. You are one of five hundred anonymous Chads in my inbox, this pickup line doesn’t work anymore. Along those lines… Democrats, sending text messages doesn’t work anymore. I got AOC, Nancy Pelosi, Beto, and even Raphael Warnock’s grandma texting me every other day and it makes you look broke and desperate like a friend I’m gonna need to bail out of jail again. Capture me with ideas. That’s how I feel about email. And text messages. And phone calls. And social media. Once upon a time it had utility, now it’s all noise and grifter slop demanding our attention and giving us to-dos. Be hotter, be smarter, be more liberal, be more productive, be more, be more, be more. Oh, and I underpaid my taxes and owe the government $5400. That was the email I missed.
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Gemini 4 Argon API Crash Course
AdactioTop Front-end Bloggersread at source
Chuala mé an nuacht brónach go raibh Dónal Lunny imithe ar slí na fírinne. Laoch. Ar dheis Dé go raibh a anam.
AbduzeedoMulti Author Blogsread at source
Packaging Design: Candour Wine by Bedow
Explore the Candour Wine packaging design by Bedow, pairing a flavor-responsive variable wordmark with tactile labels on recyclable cans. Traditional wine labels love hiding behind faux-chateau crests...
Smashing MagazineThe Giants3 min read
Accordion Icons: Which Work Best?
A closer look at accordion icons, why split menus are harmful, and why it’s better not to have icons and text labels link to different actions. Plus, why the caret is the safest icon choice. You’ll find more [useful guides](https://www.smashingmagazine.com/category/guides/) and [online workshops](https://smashingconf.com/online-workshops) here on Smashing Magazine, so make sure to browse and explore.
Bruce Lawson's personal siteMore Front-end Bloggers8 min read
On CMA’s proposed NFC access conduct requirement for Apple’s iOS
If the title of this post didn’t get your pulse quickening, you’re probably in a coma. Sorry if it’s a bit clickbaity. On Tuesday, the daring, dauntless and doughty defenders of digital diversity at the UK’s competition regulator published their Proposed NFC access conduct requirement for Apple’s mobile platform. You might be wondering why contactless […]
SitePointThe Giantsread at source
Best Claude Tracking Tools in 2026: 6 Options Compared
Claude’s share of AI chatbot visits nearly tripled in three months. Six tools that track what Claude says about your brand, what each costs and how each one queries Claude. Continue reading Best Claude Tracking Tools in 2026: 6 Options Compared on SitePoint .
AdactioTop Front-end Bloggersread at source
An Cábla agus an t-Amhrán - YouTube
Well, this short film by the Irish Traditional Music Archive is right up my alley! It looks at the first transatlantic telegraph cable and the traditional music of West Kerry, particularly the song Ámhrán na Leabhar : From the naomhóg, which for centuries connected the islands, peninsulas and coastal communities of Uíbh Ráthach, to the arrival of the world’s first successful transatlantic telegraph cable at Valentia, An Cábla agus an tAmhrán reveals a remarkable continuity: while technologies evolve, humanity’s desire to communicate, remember and pass stories from one generation to the next remains unchanged. ';"> adactio.com/links/22811
PiccalilliMore Front-end Bloggersread at source
The Index: Issue #203
Overgrown, when plants invade your abandoned tabs This is fun. All my hobbies are getting slopped up, and it’s exhausting Video game orientated, but I'm sure many of you will resonate with this. FreeMix The AT protocol strikes again! This could end up being a proper Soundcloud challenger. In fact, an improvement on Soundcloud. Building an atproto link aggregator Again, the AT protocol continues to empower people making useful stuff for themselves and everyone else. The story of Tupo, my new daily logic puzzle A great write up of a very good, new puzzle game. JavaScript, when is this? Here's one from the Piccalilli archives that you might have missed to wrap up this issue. P.S. this is a good website from personalsit.es . Sponsor message Has your organisation gone too deep with frameworks or [gasp] LLMs and feel like you're stuck? We're helping clients get away from that noise and instead, focusing their efforts and budgets on actually doing stuff that will help them reach their goals. We do all of that while running this publisher, Piccalilli too! Our availability opens up again in late 2026 into 2027, so check out what we're about. Maybe we can be the key that unlocks your success in 2027 onwards. Check out our work
AdactioTop Front-end Bloggersread at source
Reading Palaces Of The Crow by Ray Nayler.
Flavio CopesMore Front-end Bloggersread at source
Triage support tickets in one request with OpenAI's Decisions API
OpenAI's Decisions API returns a probability, a choice, or a score. Triage a support ticket with several questions in one request.
HeyDesignerDeveloper/Designer Newsread at source
How to scale intent, quality, and artistry with AI (video)
Intent Design System, hairline: Line drawings that answer the pointer, How I work, Native masonry layouts with CSS grid lanes.
Flavio CopesMore Front-end Bloggersread at source
How to publish a Chrome extension to the Chrome Web Store
Publish your Chrome extension with a clean ZIP, store listing, privacy disclosures, permission justifications, review instructions, and tested updates.
Flavio CopesMore Front-end Bloggersread at source
What to check before upgrading the Anthropic SDK
Upgrading the Anthropic SDK changes the API version your app sends. Check sampling parameters, authentication, message history, and output before you ship.
SitePointThe Giantsread at source
AI Agents Need Idempotency: The Distributed Systems Problem Hiding Inside Agentic AI
Why AI agents need idempotency: how duplicate tool calls and retries cause double charges and repeated actions, and how idempotency keys prevent them. Continue reading AI Agents Need Idempotency: The Distributed Systems Problem Hiding Inside Agentic AI on SitePoint .
AbduzeedoMulti Author Blogsread at source
Web Design: Museum Department Contemporary Archive
Explore Museum Department, an interconnected web design archive linking contemporary graphic design, type foundries, fonts, and studios. Most design blogs suffer from the same quiet decay. A studio sp...
Auth0 BlogCompany/Startup Blogsread at source
Auth0-Powered SaaS Providers Unlock Growth with the Okta Integration Network
Jamf manages and secures millions of Apple devices. Augment Code (now part of Harness) helps engineering teams deploy their software factory. Both are powered by Auth0 and published to the Okta Integration Network.
Jens Oliver MeiertTop Front-end Bloggersread at source
HTML Minifier Next: Extended Benchmarks, Self-Close Foreign Elements, Fewer Redundant Attributes, JSON Minification Opt-In
On the most recent changes to the super-configurable web page minifier.
AbduzeedoMulti Author Blogsread at source
Inside Puustelli Miinus: Brand Identity by BOND
Explore the Puustelli Miinus brand identity by BOND Creative Agency, pairing raw kraft stationery and ecological data grids with Nordic craft. Kitchen catalogues usually drown in glossy showroom clich...
AbduzeedoMulti Author Blogsread at source
Studiogusto Unveils the Michelangelus Typeface
The Michelangelus typeface decodes Michelangelo's handwriting into a humanist serif, commissioned by the Vatican and shipping with Microsoft 365. The family reads like the Renaissance itself, hand-ink...
AbduzeedoMulti Author Blogsread at source
Inside Matúš Hnát’s Book Design for Péter Esterházy
Explore Matúš Hnát's book design for Péter Esterházy's novel The Glance of Countess Hahn-Hahn, published by Slovak literary press BRAK. Postmodern Central European fiction rarely gets a cover that act...
Frontend Masters BlogMore Front-end Bloggers10 min read
Building an Isolated Preview for AI-Generated HTML
An iframe with srcdoc feels like a safe place to render HTML a model wrote. It isn't. Three tests show how the preview can read your page, escape the frame, and phone home, and four layers of protection close each hole.
SitePointThe Giantsread at source
Best LinkedIn Recruiter Alternatives in 2026
LinkedIn Recruiter alternatives for 2026: what Recruiter really costs, where it falls short, and how Pin and five other sourcing tools compare. Continue reading Best LinkedIn Recruiter Alternatives in 2026 on SitePoint .
Level AccessCompany/Startup Blogs10 min read
How to Choose an Enterprise Accessibility Platform
The best enterprise accessibility platform covers your digital estate, builds accessibility into design and developer workflows, pairs automation with human expertise, and proves The post How to Choose an Enterprise Accessibility Platform appeared first on Level Access .
SitePointThe Giantsread at source
Best AI Brand Mention Tracking Tools for Enterprises in 2026: 6 Tools Compared
Six AI brand mention tracking tools compared on what enterprise buyers ask: SSO, user access, multi-market tracking, data export and real cost at scale. Continue reading Best AI Brand Mention Tracking Tools for Enterprises in 2026: 6 Tools Compared on SitePoint .
Bram.usMore Front-end Bloggers1 min read
GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL
Here’s a little sideproject I’ve been spending my tokens on: https://gtajs.wtf/ It’s a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL.
Wes BosYouTube ChannelsVideoWatch on YouTube
3D Model Anything
Web Tools WeeklyMulti Author Blogsread at source
Web Tools Weekly Issue #692
JS Libs, AI Tools, Media Tools
AbduzeedoMulti Author Blogsread at source
Mostai Padel Club Is a Masterclass in Leisure Branding
andstudio built Mostai padel club a 1970s Mediterranean identity: bold vintage typography, warm colors, and an M mark that swings like a racket. The first thing you notice is the temperature. Mostai's...
Flavio CopesMore Front-end Bloggersread at source
How to use a coding agent without another subscription
Connect OpenCode to DeepSeek or Ollama, understand API billing and local hardware costs, and test whether the setup works for your projects.
AbduzeedoMulti Author Blogsread at source
TT Norms Pro: Type Design by TypeType Foundry
Explore the TT Norms Pro 4.100 type design by TypeType Foundry, featuring redrawn bold cuts, 104 styles, Arabic Naskh script, and UI icons. Workhorse geometric sans-serifs rarely sit still for long. E...
DequeMulti Author Blogs7 min read
Find Label in Name issues in every scan with Axe-core 4.14.0
With our latest update, when you scan with Axe-core 4.14.0, you’ll now get a result for any control whose accessible name doesn't contain its visible label. This Axe-core release also speeds up scans, makes fix instructions clearer, and begins support for EN 301 549 v4.1.1, the pending update to the European Union’s (EU) harmonized standard for accessibility requirements. The post Find Label in Name issues in every scan with Axe-core 4.14.0 appeared first on Deque .
Flavio CopesMore Front-end Bloggersread at source
How to create a DMG installer for a Mac app
Package your Mac app in a drag-to-Applications DMG, sign and notarize it, verify the download, and attach it to a GitHub release.
HeyDesignerDeveloper/Designer Newsread at source
Behind Apple Music’s new brand identity
Flow in UX, The default wins, You could do it alone.
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
MCP Security Fundamentals Course
Wes BosYouTube ChannelsVideoWatch on YouTube
How to 3D Model your entire house
PiccalilliMore Front-end Bloggersread at source
Native masonry layouts with CSS grid lanes
Native masonry layouts have been a long time coming to CSS and after years of debate over how they should work and fit into the language, we finally have display: grid-lanes . If you want the full backstory on how we got here, Sunkanmi Fafowora has a great overview of the grid-lanes announcement over on CSS-Tricks. Here, I want to focus on the technical side of masonry, why it took so long to get right, and how display: grid-lanes works. How we got here Masonry has been a long-running CSS challenge. Back in 2017, Rachel Andrew opened a CSSWG issue about creating a native Pinterest-style layout. As Rachel noted back then, the closest native CSS got to this was multi-column layout (column-count), but that flows items top-to-bottom. Masonry needs to flow items across rows, tightly packing them into whatever column currently has the most available vertical space. That same year, Tab Atkins-Bittner shared a clever Grid hack to approximate the layout. It relied on knowing each item’s height in advance, making it less practical for dynamic content. .hacky-masonry { display: grid; grid: auto-flow dense 1px / repeat(3, 1fr); } /* Manually set each item's row span */ .item { grid-row: span 50; /* Matches the item's 50px height */ } As cool as this hack was, having to know the exact height of every item ahead of time wasn’t very practical, especially when you’re dealing with dynamic content, where heights can change. When I spoke with Tab Atkins-Bittner for my piece on the evolution of CSS Masonry , they put the broader challenge of designing CSS layouts this way: “Flexbox was the first of the modern layout algorithms; we made a lot of mistakes and missteps while writing it, because we were trying to figure out how a modern layout model should work.” That same process of figuring things out played a role in masonry's development and until CSS had a better answer, many of us ended up reaching for David DeSandro’s legendary Masonry.js library instead. But the challenge wasn't just figuring out how to make masonry work in CSS. There was also the question of how it should fit into the language. Should it be part of Flexbox, an extension of Grid, or its own display value? For years, the CSS Working Group went back and forth without settling on a final syntax. Mozilla first explored adding masonry to Grid, and WebKit later picked up that approach. It lets you keep display: grid and use a special value for the tracks to enable masonry. .masonry { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); grid-template-rows: masonry; } This kept Grid's familiar column definitions while letting the browser pack items vertically instead of aligning them into rows. You can read more about WebKit's reasoning in Help us choose the final syntax for Masonry in CSS . Google's Chromium team had a different take. They argued that masonry's layout algorithm was different enough from Grid to deserve its own layout mode, proposed as display: masonry . .masonry { display: masonry; masonry-template-tracks: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; } Their reasoning, along with an alternative syntax, is explained in An alternative proposal for CSS masonry . The debate continued through several rounds of proposals, including WebKit's broader item-flow idea for unifying aspects of Grid and Flexbox, but that approach was eventually dropped in favor of a simpler direction. In January 2025, the CSS Working Group agreed to reuse CSS Grid's track-definition and placement properties for masonry. By December 2025, the group had settled on a name for the new layout mode, grid-lanes . WebKit announced the direction in Introducing CSS Grid Lanes . How grid lanes works The nice thing about display: grid-lanes is that you don't have to figure out where every item goes yourself. You define the tracks along one axis, just as you would with regular CSS Grid and the browser handles placement along the other. For a typical masonry layout, that means defining your columns with grid-template-columns and letting the browser stack items into whichever lane makes the most sense. You still get familiar Grid properties like grid-template-columns , repeat() , minmax() , gap , and explicit placement. Under the hood, though, Grid Lanes uses a different layout algorithm: it maintains tracks along the grid axis and packs items along the stacking axis. That makes it possible to build responsive masonry layouts without calculating item heights yourself. A Basic Masonry Layout .masonry { display: grid-lanes; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; } This defines as many columns as fit, with each column at least 14rem wide. The browser handles the rest, placing items into lanes as it lays them out. Unlike regular Grid, items don't need to share row heights, so each lane can grow independently. Here’s how this layout would look: The fill algorithm Unlike regular CSS Grid, Grid Lanes doesn't try to line everything up in rows. Instead, the browser keeps track of how much space each lane takes up and uses that to decide where the next item should go. The process is pretty simple: Check how much each lane is filled. Place the next item in a suitable lane, usually the shortest one. Update that lane's position and repeat. For example, with three columns, the first three cards go into separate lanes. If column 2 is now the shortest, the next card goes there. .masonry { display: grid-lanes; grid-template-columns: repeat(3, 1fr); gap: 1rem; } Controlling item placement Most of the time, you'll let the browser handle placement. But you can still use familiar Grid properties when you want more control. For example, grid-column: span 2 lets an item span two columns instead of occupying just one. .featured-item { grid-column: span 2; } The browser actually places these explicitly positioned and spanning items first , before it runs the masonry algorithm for the rest of the auto-placed items. Spanning items affects how the remaining space is distributed, so placement can get more complicated than simply choosing the shortest lane, especially in larger layouts with lots of moving pieces. Since items can appear in a different visual order from their source order, it's also worth checking that the layout still makes sense when read from the HTML. This matters for accessibility, too, as screen readers generally follow the document order rather than the visual layout. We’ll cover this in more detail later. A note on fit-tolerance The Grid Lanes spec is still evolving, but its direction is becoming clearer. The CSS Working Group dropped the broader item-* proposal for unifying flow controls across layout modes and settled on display: grid-lanes for masonry. Another change is the rename of flow-tolerance to fit-tolerance , a property that helps control how the browser chooses between lanes of similar heights. Say you have two lanes; one is 400px tall and the other is 398px . The second lane is technically shorter, but only by 2px . With a tolerance of 1em , the browser can treat both lanes as close enough in height and choose the lane that better preserves the source order, rather than always picking the shortest one. This can help prevent items from jumping ahead of earlier items just to fill tiny gaps. Here’s how different values affect the layout: .masonry { fit-tolerance: 0; /* favor the shortest lane */ } .masonry { fit-tolerance: 1em; /* Treat lanes within 1em as close enough */ } .masonry { fit-tolerance: infinite; /* Prioritize source order over compact packing */ } A value of 0 favors tighter packing, while a larger tolerance gives the browser more flexibility to keep items closer to their source order. infinite prioritizes source order, even if that leaves more empty space in the layout. The default is normal , which resolves to 1em. FYI infinite prioritizes source order, but it won’t guarantee it in every case. Similarly, 0 removes the tolerance for treating lanes of similar heights as equivalent. Switching directions Masonry doesn't have to flow vertically. With Grid Lanes, the tracks you define also determine the direction items are packed in. When you define grid-template-columns , items are packed vertically into columns. When you define grid-template-rows , items are packed horizontally into rows. The first is the familiar Pinterest-style layout, while the second creates a brick-like arrangement. Check out this Waterfall and Brick demo , by ICS Creative, to switch between the two layouts and see the difference. Both use display: grid-lanes , just with different track definitions. The WebKit team has also published the Field Guide to Grid Lanes . It includes an interactive playground, a reference for the different properties and values, and six demos covering layouts like photo galleries, recipe cards, timelines, and pinboards. Subgrids in masonry layouts One of the arguments for keeping masonry part of CSS Grid was that it would preserve features like subgrid . If masonry had its own display: masonry layout mode, getting nested elements to align with their parent's grid tracks could have required changes across multiple CSS specifications. Keeping masonry within the Grid model means subgrid can work alongside it. Say you're building a masonry layout of recipe cards, each with a title, an image, and a list of ingredients. subgrid lets the cards use their parent's grid tracks rather than defining their own, making it easier to align their internal elements. .masonry-container { display: grid-lanes; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); } .recipe-card { display: grid; /* The card's internal columns align with the parent masonry grid */ grid-template-columns: subgrid; } Where we’re at today Grid Lanes has come a long way from the early proposals and workarounds, but there's still work to do. The specification is an Editor’s Draft, which means details can change as the CSS Working Group continues to refine the layout model. Browser support is another thing to keep an eye on. As of writing this article, Grid Lanes works in Safari 26.4 and later, but support in other browsers is still evolving. Check Can I Use for the latest updates, and consider using a simpler fallback for browsers that don't support it. Wrapping up Grid Lanes has come a long way from the early proposals and workarounds. Here's a quick recap of where things stand now: Masonry uses display: grid-lanes as a separate layout mode. Lanes are defined by grid-template-columns or grid-template-rows . Items are automatically placed into lanes based on available space. fit-tolerance controls how much difference between lanes is treated as a tie. The DOM source order stays intact, even when the visual order differs. Unsupported browsers can use a simpler fallback layout.
Flavio CopesMore Front-end Bloggersread at source
AI video editing tools: what agents need to work safely
Recording and editing tools need inspectable state, useful commands, and recoverable changes if we want agents to help with real creative work.
SitePointThe Giantsread at source
What “Clear Form” Should Really Do: Managing Draft Data in JavaScript
null Continue reading What “Clear Form” Should Really Do: Managing Draft Data in JavaScript on SitePoint .
Flavio CopesMore Front-end Bloggersread at source
A deep dive into Claude Duet
Claude Duet is Anthropic's proactive cloud agent. Learn how it works, what it can access, and how it compares with Grok Bot and ChatGPT dots.
Flavio CopesMore Front-end Bloggersread at source
Paid traffic for SaaS validation: how to test product demand
How to use a small paid traffic experiment to learn who gets value from a product, measure useful actions, and decide what to change.
AbduzeedoMulti Author Blogsread at source
Packaging Design: Tenderleaf Botanical Care by Svetlana Kalinova
Explore the Tenderleaf botanical skincare packaging design and brand identity by Svetlana Kalinova, pairing serif type with frosted glass. Skincare shelves are usually loud. Walk down any beauty aisle...
Auth0 BlogCompany/Startup Blogsread at source
Scaling AI Agent Identity with CIMD and Application Profiles in Auth0
Auth0 expands Client ID Metadata Document (CIMD) support with manual pre-registration and dynamic registration. Pair it with Application Profiles to manage security for AI agent clients at scale.
Auth0 BlogCompany/Startup Blogsread at source
Introducing Terraform Auth0 Modules
Set up apps, APIs, roles, MFA, enterprise SSO, and custom domains on Auth0 with a single Terraform module.
Jonathan SnookTop Front-end Bloggers2 min read
New iPhone
My social media was abuzz around the launch of the new iPhones. I have a 15 Pro Max and was thinking that the 18 might be the generation I’d make the upgrade for. I used to do every other year but I didn’t see the leaps and bounds in improvements with the 17 to tickle that FOMO…
Twilio BlogMulti Author Blogsread at source
How to build an AI agent that checks order status and processes refunds
Build an AI agent that checks order status and issues refunds via API, with identity verification, policy guardrails, and human escalation.
Chris HawkesYouTube ChannelsVideoWatch on YouTube
Where Programmers Go From Here
AbduzeedoMulti Author Blogsread at source
Book: Daring Forever by Radim Malinic
Radim Malinic's new book Daring Forever argues that courage, curiosity and creativity are human capacities buried in all of us. Daring Forever begins at the edge of something: a blank page, a stage, a...
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
🔊 Voice design and voice replication with Gemini 3.8 Flash TTS
AbduzeedoMulti Author Blogsread at source
Alleima: Inside Kurppa Hosk’s Visual Identity
Explore the Alleima visual identity by Kurppa Hosk, pairing Molten Orange and Dark Steel Blue with Alleima Neurial typography for global steel. Heavy industry rarely gets good design. When Sandvik dec...
DigitalOcean BlogMulti Author Blogs10 min read
Critical PHP RCE Vulnerabilities: Patch Now (CVE-2026-109618, CVE-2026-109619)
DigitalOcean is aware of two critical remote code execution (RCE) vulnerabilities in PHP, tracked as CVE-2026-109618 and CVE-2026-109619 , publicly disclosed on October 21, 2026. Either allows an attacker to execute arbitrary code on a server running PHP, potentially resulting…
SitePointThe Giantsread at source
Building Accessible Navigation Menus with HTML, CSS, and JavaScript
null Continue reading Building Accessible Navigation Menus with HTML, CSS, and JavaScript on SitePoint .
AdactioTop Front-end Bloggersread at source
Wednesday session
AbduzeedoMulti Author Blogsread at source
The i Paper Digital Experience Finally Feels Like Its Journalism
ustwo rebuilt the i Paper Digital Experience around impartial news and intelligent debate, made to feel active, premium and energising. Most news apps look the same: a grey feed, a blue link, a red br...
AbduzeedoMulti Author Blogsread at source
Humbleteam Unveils Podium UI/UX Design & Web System
Explore the Podium UI/UX design and brand system by Humbleteam, built around a Pantone 185 red spotlight motif and modular interface cards. Performance marketing usually drowns in noisy dashboards. Hu...
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Design and replicate voices with Gemini 3.8 Flash TTS
Jim Nielsen’s BlogMore Front-end Bloggersread at source
No Need for Retirement When Utopia Is Around the Corner
I’ve mentioned before my interest in the history and development of nuclear weapons . Currently, I’m reading The Doomsday Machine: Confessions of a Nuclear War Planner by Daniel Ellsberg (of Pentagon Papers renown). In the first chapter, Ellsberg talks about his time working at the RAND Corporation during the missile gap years when the U.S. thought it was falling behind the Soviet Union in nuclear capabilities. Many of his descriptions sound strikingly similar to the rhetoric coming out of places like Anthropic. For example, note the religious overtones of working at a corporation: I loved RAND, where I ended up spending ten years [...] Much, I imagined, like members of a religious order would, I shared with my colleagues a sense of brotherhood, living and working with others for a transcendent cause. They were insiders : burdened with the responsibility of knowledge others did not possess. precisely in my early missile-gap years at RAND and as a consultant in Washington, there was our sense of mission, the burden of believing we knew more about the dangers ahead, and what might be done about them, than did the generals in the Pentagon or SAC, or Congress or the public, or even the president. It was an enlivening burden. And what was their “enlivening burden”? Saving the world: [My colleagues] shared a feeling—soon transmitted to me—that we were in the most literal sense working to save the world. What really stood out was this part, where Ellsberg describes how he and his colleagues truly believed the end was nigh: From the Air Force intelligence estimates I was newly privy to, and the dark view of the Soviets, which my colleagues shared with the whole national security community, I couldn't believe that the world would long escape nuclear holocaust. Alain Enthoven and I were the youngest members of the department. Neither of us joined the extremely generous retirement plan RAND offered. Neither of us believed, in our late twenties, we had a chance of collecting on it. This reminds me of the report that AI researchers have taken up smoking as a way to signal their belief that AI will cure cancer before smoking kills them. At this point, I wouldn’t be surprised to hear a lab like Anthropic announce they’re discontinuing all employer-sponsored retirement benefits. It’d be a small sacrifice on behalf of the employees to demonstrate their faith that universal high income is just around the corner. (The corporate cost savings would just be a nice bonus.) Reply via: Email · Mastodon · Bluesky
Flavio CopesMore Front-end Bloggersread at source
Security in the age of AI
AI agents are finding old vulnerabilities and making complex attacks easier. A short history of automated hacking, what comes next, and how to prepare.
AdactioTop Front-end Bloggersread at source
Patched my PHP within minutes of the update being released; super-smooth with no problems.
The Mozilla BlogBrowsers, engines, etc.3 min read
Still here, still yours: 5 reasons to choose Firefox
The internet used to feel like a community, not a commodity. Browsers were tools for exploration, and you could wander the web without feeling tracked everywhere. Today, as the web becomes increasingly surveilled and commercialized, Firefox preserves the magic, freedom, and fun of the early internet. Still open source, still independent, still privacy-focused. No billionaire […] The post Still here, still yours: 5 reasons to choose Firefox appeared first on The Mozilla Blog .
CodePenCompany/Startup Blogs1 min read
Chris’ Corner: We Heart CSS
It warms my old heart to hear Jason Santa Maria wax poetic about modern CSS: CSS has exploded! Flexbox, grid, many kinds of viewport units, variables, and on and on. So many things we used to patch in to extend CSS or turn to Javascript for are now just part of the spec. The ease […]
SitePointThe Giantsread at source
CORS Error Fix: Diagnose Console Errors and Configure Headers
Diagnose browser CORS errors from console messages and preflight responses, then apply secure fixes using development proxies or server-side headers in Express, Next.js, and Nginx. Continue reading CORS Error Fix: Diagnose Console Errors and Configure Headers on SitePoint .
SitePointThe Giantsread at source
Prompt Caching API Example: Cut Token Costs in Node.js
Structure stable prompt prefixes across OpenAI, Anthropic, and Gemini, then verify cache hits with each provider's usage metrics in Node.js. Continue reading Prompt Caching API Example: Cut Token Costs in Node.js on SitePoint .
SitePointThe Giantsread at source
Check if eMudhra CA Is Still Trusted in Your Runtime
Audit runtimes for the eight compromised eMudhra intermediate CAs using the official per-chain test endpoints and chains.zip, then update every trust store. Continue reading Check if eMudhra CA Is Still Trusted in Your Runtime on SitePoint .
AbduzeedoMulti Author Blogsread at source
Studio Sonda Unveils the Living Wine Label for Piquentum
Studio Sonda made a living wine label from the wine's own lees sediment, so noble mould keeps growing on it and no two bottles look alike. The label is a rough band of sediment paper wrapped straight ...
Flavio CopesMore Front-end Bloggersread at source
Give your coding agent a state machine
Build a small JavaScript state machine for a coding agent, with explicit transitions, a retry limit, a useful event log, and tests.
DigitalOcean BlogMulti Author Blogs10 min read
Product Security in the Post-AI Era
AI hasn’t changed what secure software looks like, but what has changed is almost everything about how software gets built. Security programs designed around old processes are anchored to points on a lifecycle that no longer exist. Last month, DigitalOcean’s Product Security…
Go Make ThingsMulti Author Blogs3 min read
The SpeechRecognition API
There’s an older deaf gentleman in my town who’s very friendly, and likes to communicate with rudimentary hand gestures, but I have a hard time understand what he’s trying to say. I’d love to learn American Sign Language (ASL) at some point (shoutout King Ron), but until then, I wanted an app that could convert speech into text. Every transcription app I found required a pretty expensive subscription… so I decided to build my own using web technologies!
DequeMulti Author Blogs7 min read
Debunking AI agent accessibility claims and solving AI alignment for accessibility
There is a digital accessibility approach that gives us the best of both worlds: the reliability and predictability of rules-based testing and the velocity of AI-powered automation. By taking this approach, we can close the gap between presumed and actual accessibility. The post Debunking AI agent accessibility claims and solving AI alignment for accessibility appeared first on Deque .
SitePointThe Giantsread at source
Working With a Marketing Agency: A Technical Guide for Developers and Designers
null Continue reading Working With a Marketing Agency: A Technical Guide for Developers and Designers on SitePoint .
SitePointThe Giantsread at source
Build a Reliable Analytics Pipeline Before Moving to a Data Warehouse
null Continue reading Build a Reliable Analytics Pipeline Before Moving to a Data Warehouse on SitePoint .
AbduzeedoMulti Author Blogsread at source
Graphic Design: SIPF by Foreign Policy Design
Explore the graphic design for the Singapore International Photography Festival by Foreign Policy Design, built around a shutter-split grid. Photography doesn't happen in a vacuum. When Foreign Policy...
Flavio CopesMore Front-end Bloggersread at source
PSA: update PHP today
PHP security fixes are available. Update now, check the fixed versions, and use these temporary mitigations only while waiting for patched packages.
Flavio CopesMore Front-end Bloggersread at source
Jev vs structured outputs: when to use each
Compare Jev, JSON mode, and schema-constrained LLM outputs. Learn when a typed answer is enough and when decision probabilities justify another model.
SitePointThe Giantsread at source
How I Built a CRM with Vibe Coding Instead of Spending $1,000+ on App Builders
null Continue reading How I Built a CRM with Vibe Coding Instead of Spending $1,000+ on App Builders on SitePoint .
CSS WizardryTop Front-end Bloggersread at source
Web-Perf Wednesday 014 – Performance Budgets Need a Representative Worst
Performance budgets need a representative worst, while Safari changes identity resolution and Chrome improves module recovery and memory debugging.
SyntaxPodcastsAudioListen
1049: WTF is a Software Factory?
Scott and Wes talk with Adam Jacob about software factories: what they actually are, why they’re unique to each team, and how to build trust in agent-generated code. They dig into Swamp Club, black box testing, domain driven design, adversarial review for accessibility, and…
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
PostgreSQL Hybrid Search Course – Keyword (BM25) + Vector Retrieval
Flavio CopesMore Front-end Bloggersread at source
Vite toolchain: Cloudflare, vinext, and shared web tooling
Vite is becoming shared infrastructure for frameworks, runtimes, and developer tools. What vinext, Cloudflare's new tooling, and DevTools show.
W3C NewsBrowsers, engines, etc.1 min read
W3C and the State of the Web in the AI Era
This W3C paper from the Strategy Team is intended to foster discussion in the technical community at TPAC — the most important W3C community event of the year — about how the W3C technical agenda for the web needs to evolve based on the rise of AI agents. It is part of building a consistent, coherent shared vision for evolving the web, starting with AI.
HeyDesignerDeveloper/Designer Newsread at source
Design and engineering are the same thing (video)
Scaling the design process, Everyone is starting over, On alignment that looks wrong, The future of CSS.
W3C BlogBrowsers, engines, etc.3 min read
Web of Things Working Group recharter: New momentum for IoT interoperability
The Web of Things (WoT) Working Group rechartered for two years to improve IoT interoperability and address physical AI use cases. WoT counteracts fragmentation in IoT by providing building blocks that enable seamless device integration across smart buildings, industrial automation, and energy management. Drawing on Plugfest insights, the new charter focuses on enhancing Thing Description expressiveness, introducing protocol bindings, and guiding AI agents.
Flavio CopesMore Front-end Bloggersread at source
SPA vs server-side rendering: which should you choose?
Choose between a single-page app, server-rendered pages, and interactive islands by looking at navigation, shared state, loading, and maintenance.
Robin WieruchMore Front-end Bloggersread at source
Testing AI-Generated Code: Lint the Pattern, Test the Decision
Testing AI-generated code without the noise: lint the patterns coding agents follow, share one test harness, and add tests only where a file leaves its pattern.
SitePointThe Giantsread at source
Vibe Coding to Production: A Developer’s Checklist for Building Reliable Web Apps
null Continue reading Vibe Coding to Production: A Developer’s Checklist for Building Reliable Web Apps on SitePoint .
Adam ArgyleTop Front-end Bloggers1 min read
Designing Whiskey Glasses with Denver Cramer
Denver Cramer on designing whiskey glasses, Starward x Lagavulin, kids and AI, and the banjo.
AbduzeedoMulti Author Blogsread at source
Visual Identity: Montreal Jazz Festival Concept
A bold visual identity concept for Montreal Jazz Festival pairs generative TouchDesigner trumpet forms with agile jazz typography. Designing for an institution like the Montreal Jazz Festival means gr...
Frontend FocusMulti Author Blogsread at source
Ten CSS features worth voting for
🚀 Frontend Focus #763 — October 21, 2026 | Read on the web Everyone's Interop 2027 Wishlists Last week we shared that you can now rank the Interop web platform proposals for 2027 . Since then, plenty of folks have shared their own rankings and explained their choices: ⭐ Josh Comeau's The Future of CSS – Josh's top ten, from CSS functions and corner-shape to anchored container queries and scroll-triggered animations, each with live demos, current browser support, and tips you can use today. A particularly good place to start. 🔎 Sara Soueidan's picks put accessibility first. It's a privilege, she notes, that we get to influence what browser makers work on. focusgroup is her top pick. ✏️ Declan Chidlow's 13 features – SVG improvements on top, followed by the CSS reading-flow and reading-order properties. 📝 More picks from Stuart Robson , Eric Meyer , Ana Rodrigues , and Tyler Sticka , and 🦋 this Bluesky thread has even more. Inspired to submit your own? Rank about ten proposals you'd like to see prioritized . The Firefox team says that's enough to provide useful input. Would You Let Your AI Agent Grade Its Own Homework? — Agents write code faster than ever. They even review their own work. But who’s reviewing them? Dropbox, Notion & ElevenLabs don’t take the risk. With Meticulous, every change is exhaustively verified, with zero developer effort. Meticulous sponsor 🗳️ The State of HTML 2026 — The annual survey returns to measure the awareness and adoption of HTML features and browser APIs. This year covers Web Components, progressive enhancement, AI, and more. It takes less than 15 minutes and you can learn new things just by taking it. Devographics Safari Blocks 'Identity Resolution' Tracking Infrastructure — Cross-site cookies are long gone in Safari, so trackers moved to 'identity resolution' where third parties get the email address you type into forms and turn it into a cross-site, cross-device tracking ID. Safari now blocks them at the domain level. Wilander, Wolfe, and Finkel (WebKit) ⚡️ IN BRIEF ⚠️ If PHP runs anywhere behind your sites: PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical bugs that allow unauthenticated remote code execution. Update now, mod_php installs especially. 🌐 Chrome 157 is in beta with corner shorthands, a value for text-overflow , and anchor-valid . Chrome 156 went stable this week with CSS random() . 🚫 Chrome has finished deprecating the unload event : handlers no longer fire by default, so use pagehide or visibilitychange instead. 📙 Articles, Opinions & Tutorials JPEG XL vs AVIF for Web Use-Cases — Now that JPEG XL has landed in all major browsers, Jake took the format for a spin, benchmarking it against AVIF. There's a lot of detail here with some good takeaways. You might also be surprised at what you can cram in under 200 bytes with JPEG XL. Jake Archibald Embracing Playful Imperfection with CSS's random() Function — A look at how to approach adding some randomness into our projects, and whether it makes sense on the web. The demos here show off some ideas, like organic typography, bouncing letters, and splayed cards. Brecht De Ruyte Photorealistic 3D in the Browser Without the Rendering Overhead — Learn how radiance fields and spatial streaming bridge real-time photorealistic 3D to the web with just 2 lines of Three.js. Miris sponsor Fitting an Element's Height to Its Background Pattern with calc-size() — A repeating pattern cut off at the bottom is a classic annoyance. Ahmad uses calc-size() (Chromium only for now, Safari soon) with round() to snap an element's auto height to a multiple of the tile height. Ahmad Shadeed Core Web Vitals Now (Experimentally) Count Soft Navigations — Most sites won’t notice, but navigation-heavy SPAs should see scores improve, with Search Console switching over when it goes stable next year. Annie Sullivan (Google) Using Math to Balance Your Heading Styles — Craig outlines a simple system for styling heading levels using a modular scale. Craig Abbott ▶ Do We Really Need alpha() ? — We now have three ways to lower the opacity of a color in CSS. Kevin has the details, highlighting what the alpha function brings to the table in particular. Kevin Powell WCAG 3: A Different Future for Accessibility — Why binary pass/fail made WCAG 2 a ceiling, and how WCAG 3 aims to make conformance a floor. Léonie Watson (TetraLogical) Compression and Concatenation on the Web — A hands-on look at how gzip, brotli and zstd each cope with concatenation on the web. Phil Eaton Do Web Components Have a Future If Nobody is Writing Them? Nolan Lawson 🧰 Tools, Code & Resources 📊 Chartist 2.0: This Lightweight SVG Charting Library Is Back — A freshly modernized SVG charting library that you style with CSS. It originally popped up in 2014, but "went stale" . It's back with a composable API, server-side rendering, and still remains small. There's a migration guide for existing users. Gion Kunz et al. A DevTools Extension for Debugging CSS Scroll-Triggered Animations — Adds a pane to Chrome DevTools that draws a scroll-triggered animation's activation and active ranges on a minimap, shows a live status light, and lets you edit the ranges in place. Chrome Web Store , or source here . Bramus Van Damme Mobile AI Infrastructure for Web Devs Who Code with Agents — Point the agent you use for the web at iOS and Android. Expo takes care of the native builds and the trip to the stores. Expo sponsor Pele: Mermaid Diagrams as Lightweight, Themeable SVG — A zero-dependency renderer for the Mermaid diagram syntax that outputs responsive SVG you can theme with CSS variables. It claims to be a sixth the size of Mermaid.js. You can try the playground here . Steph Ango (Obsidian) pour: A Free Accessibility Checker & WCAG Audit Tool — Available as a browser extension or bookmarklet. Run it on any page to see an overlay with violations categorized as critical, serious, moderate, minor, etc. David Yarham 🤖 Lighthouse for Claude Code: Turn PageSpeed Audits into a CLAUDE.md Fix Plan — Enter a URL and this tool will run a Google PageSpeed Insights and Lighthouse audit and generate instructions for Claude Code tailored to the audits. Baris Kocdur 3dsvg: The Easiest Way to Turn SVGs Into 3D — A web-based editor that takes an uploaded SVG, text, or drawing and renders the flat image as 3D. Exports in a 3D software compatible format such as GLB, STL, etc. Renato Costa 🔤 A font that annotates itself Furifont: A Japanese Font That Draws Its Own Furigana — Furigana, the small readings above kanji, usually mean using markup or JavaScript. Anthony's font does it with OpenType features alone! Repo here . Anthony Fu
Twilio BlogMulti Author Blogsread at source
How to automate call summaries, sentiment, and CRM updates
Learn how to transcribe support calls, extract summaries and sentiment, and update customer profiles and your CRM automatically.
Twilio BlogMulti Author Blogsread at source
5 ways to evaluate a customer engagement platform
You already know the demo is going to work, but these additional checks come from CIOs and CTOs who ran the evaluation and now live with the outcome.
Jens Oliver MeiertTop Front-end Bloggersread at source
How to Set Up Web Page Minification With Jekyll
Install, add plugin, done.
Ben FrainMore Front-end Bloggersread at source
Colour variants from base colours with OKLCH, CSS relative color, and CSS functions
Many others have covered the manipulation of colour in CSS. This is me documenting what has worked for me, practically, 'in the wild'. It is a common requirement to need a variant of an existing colour. Think about the borders for a visual pod/component; it may have a background colour but you need some variant […]
Level AccessCompany/Startup Blogs11 min read
What Is a VPAT? A Guide to VPATs and ACRs
A Voluntary Product Accessibility Template (VPAT®) is a standard form for reporting product accessibility. Once completed, it becomes an accessibility conformance report (ACR) The post What Is a VPAT? A Guide to VPATs and ACRs appeared first on Level Access .
SitePointThe Giantsread at source
Debugging CSS Layout Issues: A Practical Guide to Browser DevTools
null Continue reading Debugging CSS Layout Issues: A Practical Guide to Browser DevTools on SitePoint .
SitePointThe Giantsread at source
Progressive Enhancement in Web Forms: Building Reliable Experiences with HTML, CSS, and JavaScript
null Continue reading Progressive Enhancement in Web Forms: Building Reliable Experiences with HTML, CSS, and JavaScript on SitePoint .
SitePointThe Giantsread at source
Build a Startup Runway Calculator in JavaScript (and Stress-Test Your Plan)
null Continue reading Build a Startup Runway Calculator in JavaScript (and Stress-Test Your Plan) on SitePoint .
AdactioTop Front-end Bloggersread at source
This year’s FFConf is shaping up to be genuinely unmissable. So …um, you know …don’t miss it: https://2026.ffconf.org/ I’ll see you there!
HTML All The ThingsPodcastsAudioListen
10 Easy SEO Wins You're Probably Overlooking
Improving your website's SEO doesn't always mean writing more blog posts, investing in expensive tools, or launching a massive content strategy. Sometimes the biggest opportunities are hiding in the pages you've already published. In this episode, Matt and Mike explore 10…
Auth0 BlogCompany/Startup Blogsread at source
Your Agent Can Better Drive the Auth0 CLI with Agent Mode
Explore Auth0 CLI agent mode: structured JSON, schema checks, predictable error recovery, and more built specifically for AI coding agents.
SitePointThe Giantsread at source
Next.js Hydration Errors from localStorage: 3 Ways to Fix Them
localStorage access during SSR causes ReferenceErrors and hydration mismatches in Next.js. Compare three fixes: effects, useSyncExternalStore, and cookies. Continue reading Next.js Hydration Errors from localStorage: 3 Ways to Fix Them on SitePoint .
SitePointThe Giantsread at source
Codebase Design for AI Agents: Types, Lint Rules, and CI Gates
Structure TypeScript repos to constrain AI coding agents with compile-time branded types, AST-based ESLint rules, CI gates, and focused AGENTS.md files. Continue reading Codebase Design for AI Agents: Types, Lint Rules, and CI Gates on SitePoint .
Frontend Masters BlogMore Front-end Bloggersread at source
“I Redesigned VLC After 25 Years”
I watched this whole video by Juxtaposed, assuming it was a real redesign of the VLC player, but alas, it is not official. Nevertheless, it should be, and it’s a wonderful example of how much real human brainpower it takes to design something well.
SitePointThe Giantsread at source
Next.js ISR Transient Errors: Prevent notFound from Caching 404s
Prevent transient outages from caching valid Next.js ISR pages as 404s. Separate infrastructure errors from missing records and recover fast. Continue reading Next.js ISR Transient Errors: Prevent notFound from Caching 404s on SitePoint .
HeyDesignerDeveloper/Designer Newsread at source
Taste is not a design methodology
Craft: A collection of design engineering concepts, Design systems directory, Inside Anthropic’s design team, Pure UI in the agentic era, and more.
David BushellMore Front-end Bloggers2 min read
How not to migrate from Cloudflare DNS
So you’ve been shamefully using US Big Tech giant Clownflare for DNS? It’s time to find an inopportune time to migrate away to a “European alternative” . You absolute must not follow these steps on a busy weekend when you must leave for hours on short notice. […]
Flavio CopesMore Front-end Bloggersread at source
A deep dive into tsrs
Understand tsrs, the Rust port of TypeScript. Try the compiler, compare benchmarks, explore its architecture, and build a browser-based type checker.
Go Make ThingsMulti Author Blogs1 min read
Documentation-Driven Development
Last week, I needed to make some pretty major updates to a web component in a design system I use for clients. I’m a big fan of TDD, but I wasn’t mentally in a place to write my tests first. I decided the easiest thing to do was document how the new component would work… before actually writing any code to implement the updates. It was an entirely ADHD-driven decision, but it unlocked something for me!
Josh Comeau's blogMore Front-end Bloggersread at source
The Future of CSS ✨
Every year, browser vendors collaborate via the Interop project to synchronize their efforts on new HTML/CSS/JS features. This year, there’s a ton of super exciting features being considered! In this blog post, we’ll explore the CSS of the future, to get a glimpse of what we’ll soon be able to do.
CodePenCompany/Startup Blogs1 min read
445: CodePen AI is Here
Chris and Alex are talking this week about CodePen’s biggest release since the 2.0 drop. It’s live! We’ll be working on CodePen AI forever, since it’s a fast-changing technology that regularly adds new abilities. That sounds like a trite thing to say, but we lived it as we were building this. We started out playing […]
Jeffrey Zeldman PresentsMore Front-end Bloggersread at source
Figma Tips and Shortcuts
℅ Automattic Design: The post Figma Tips and Shortcuts appeared first on Jeffrey Zeldman Presents .
Smashing MagazineThe Giants15 min read
Embracing Playful Imperfection With The CSS `random()` Function
Design systems thrive on consistency, so where does randomness fit in? Through playful demos of organic typography, bouncing letters, and splayed cards, Brecht De Ruyte shows how the new CSS `random()` function brings a little imperfection to the web without JavaScript libraries or preprocessor loops that generate hundreds of lines of static CSS.
HeyDesignerDeveloper/Designer Newsread at source
No more icons in every menu by default
The language we never agreed on, A design system is what it does, Paper Mono, Agentic verification.
The Mozilla BlogBrowsers, engines, etc.4 min read
Why is the CMA asking us to choose the furniture before the house? The UK’s search choice screens need browser choice screens alongside them
Mobile browsers are a key gateway to the internet for 56 million people in the UK. Smartphone users spend around half an hour a day in these apps, and opening a browser is the most common way they look up information online. Yet most people are using a smartphone browser that was preinstalled and set […] The post Why is the CMA asking us to choose the furniture before the house? The UK’s search choice screens need browser choice screens alongside them appeared first on The Mozilla Blog .
W3C NewsBrowsers, engines, etc.read at source
First Public Working Draft: Animation Triggers
Defines CSS properties and an API for creating mechanisms that affect animation playback, based on DOM events resulting from user interaction, or on entry/exit of ranges on animation timelines.
Auth0 BlogCompany/Startup Blogsread at source
Securing AI Agents with Auth0 CIMD and Token Exchange
AI agents break static authorization. Learn how Auth0 Strict Mode, CIMD, and Token Exchange keep a permission ceiling and a verifiable user-to-agent delegation chain.
Auth0 BlogCompany/Startup Blogsread at source
ID-JAG, Explained: The New OAuth Grant for Cross-App Access
Learn what an ID-JAG (Identity Assertion JWT Authorization Grant) is, the cross-app access problem it solves, and how the flow works between a requesting app, resource app, and enterprise IdP.
JavaScript WeeklyMulti Author Blogsread at source
The up to 8x faster Rust port of TypeScript
#807 — October 20, 2026 Read on the Web JavaScript Weekly tsrs: Cloudflare and VoidZero's Rust Port of TypeScript — A Rust port of the Go-based TypeScript 7 compiler, built with some input from the TypeScript team and heading into Oxc . Benchmarks claim up to 8x the speed of TypeScript 7.0 and it runs in WebAssembly. Experimental, but npx tsrs works. Chen, Mitropoulos and Nakazawa (Cloudflare / VoidZero) 💡 Max Schwenk started the port with agents writing the code, and tells the full tale here , including how it took his company's typecheck from 80 seconds to 7. Send Webhooks from Your TypeScript API in Minutes — One typed npm package, one call per event. Svix handles retries, signing, delivery logs, and a portal for your customers, so you don't build any of it. Resend sends 200M+ webhooks a year through it. Svix sponsor Thank You, Deno: Competition Keeps JavaScript Moving — Last week we covered Deno joining Cloudflare and the future of the Deno runtime. Deno was valuable, says Darcy, as it (and Bun) made the entire ecosystem better by pushing Node and npm to adopt its best ideas. Darcy Clarke (vlt) IN BRIEF: 🔒 Next.js has patched two critical RCE flaws : one in use cache functions via an upstream React Server Components bug and one in the image optimizer's SVG handling. Upgrade to 16.4.1 or 15.5.28; a public PoC is already out. 🔒 Node.js security releases are due tomorrow for the 26.x, 24.x and 22.x lines, with the highest severity issue rated high. Bun compiling JavaScript ahead-of-time, previewed a few weeks ago , now has a draft PR to produce binaries with no JIT or bytecode. RELEASES: Node.js v26.12.0 (Current) and v24.22.0 (LTS) – 26.12 can now synchronously load most ES modules and marks the config file stable; 24.22 gains util.throttle and util.debounce . Astro 7.4 – Adds a --timings flag for astro build to see where build time is spent, plus experimental parallel prerendering across worker threads. React Router 8.5 – Deprecates its own view transition APIs in favor of React's ViewTransition > component, and adds an experimental 'API-only' mode. Pretext 1.0 – Multiline text layout without touching the DOM. 1.0 ports browsers' own line breakers, so results more closely match what would render. React Native 0.88 , Elysia 2.0 RC , ESLint 10.13 , tsup 9.0 , Vuetify 4.3 📖 Articles and Videos The Tetris Script That Becomes Snake Once Prettified? — You'd think pretty-printers and deobfuscators at least leave a script's logic alone, but no. See how chaining semantic quirks in such tools can turn the 'cleaned up' output into a different program! Robert Vähhi (TrustSig) Do Web Components Have a Future If Nobody is Writing Them? — Nolan has spent years building and defending web components, so this thoughtful, if a little melancholy, piece carries some weight. Nolan Lawson Your CI Was Built for Humans. Your Agents Need Something Else — Expo is mobile AI infrastructure. Your agents build, test and ship iOS and Android apps in the background. Expo sponsor ▶ ViteConf 2026: The Full Replay — Last week's ViteConf brought ~30 talks including Evan You's keynote on tooling in the agentic era, plus updates on Vitest 5, Vite DevTools, and a faster parser coming to Oxc. It's 10 hours, but there's a hero with timestamps in the comments. ViteConf 💡 One of the bigger announcements: Void, the Vite team's full-stack SDK and deploy platform, is now open source . How to Gaslight JavaScript Programmers (with Proxies) — Proxy , introduced as part of ES6 back in the day, has plenty of practical uses but can also make objects behave in curious, unexpected ways. Complete with live, editable examples. Bryan Gillespie How Miro Moved 70,000 Tests from Jest to Vitest — The story of moving ~70,000 tests across an 800-package monorepo to Vitest, with AI agents doing most of the laborious work. Sergey Nikitin 📄 Upgrading to Zod 4 Cut Our Worker CPU by a Third – A Zod 3 to 4.5 migration at 100 million parses a day. Chris Arderne 📄 Using replace() as an Iterator – An old regex-callback-for-side-effects idiom, benchmarked against alternatives. Eugene Lazutkin 📄 Recursion is DEAD and HTML Killed It – Hands-on with Chromium's experimental Declarative Partial Updates proposal. Dave Rupert 📺 NightMonkey: Compiling JavaScript Ahead of Time to WebAssembly – An hour-long VMIL 2026 talk from a Wasmtime engineer. Chris Fallin 🛠 Code & Tools Maplair: A Batteries-Included, Tree-Shakeable Fork of Leaflet — Still in alpha since last year, one of Leaflet's contributors has forked it, rolling in the 2.0 work plus rotation, fullscreen, search, heatmaps and more – all tree-shakeable. Simon Legner 💡 The same day, Leaflet's creator posted a candid update about his experiences living in Ukraine and a plan to get Leaflet 2.0 released. Embeddable DOCX, XLSX & PPTX Editor for Users and AI — Let your AI edit existing files via object-level APIs. Users review and keep editing the same file. Try Playground . Thinkfree sponsor 📊 Chartist 2.0: The Lightweight SVG Charting Library Returns — A CSS-styled SVG charting library from 2014 that "went stale over the last years" makes a comeback with a composable API, server-side rendering to SVG, terminal charts, and still ~12KB gzipped for a line chart. There's a migration guide for 1.x users. Gion Kunz et al. Pele: Mermaid Diagrams as Lightweight, Themeable SVG — Zero-dependency renderer for the Mermaid diagram syntax with responsive layouts and SVG you can theme with CSS variables. Around a sixth the size of Mermaid.js. Try the playground . Steph Ango (Obsidian) : A Rich Input Field with GitHub-Style Search Filters — A web component for GitHub-style search boxes: free text mixed with autocompleted key:value filters, highlighted in place. Bramus Van Damme Chokidar 6.0 – The file watcher behind much of JS tooling. Rewritten to check changes against the disk before reporting to avoid stray events after a burst of edits, say. Happy DOM 21.0 – Headless browser environment in pure JavaScript, popular for testing. Now blocks stylesheet and iframe loading by default . p-queue 10.0 – Promise queue with concurrency control. Now dependency-free and an EventTarget . Paper.js 0.13 and 0.14 – Vector graphics scripting framework for canvas. First notable releases in years. ( Homepage with demos .) 🕹️ LittleJS 1.27 – Dependency-free HTML5 game engine that now does 3D too. 🖼️ Skia Canvas 4.0 – Canvas API for Node, built on Skia. 📰 Classifieds 🕵️ Muse doesn’t announce itself. Meta’s AI agent browses like a real user. See how Fingerprint detects it by name and try free for yourself. 🎬 Your app needs video, not a video team. Upload any format to Hyperserve's API , get back MP4 on a global CDN. Ship video in an afternoon. 📢 Elsewhere in the ecosystem 🖼️ JPEG XL: The modern image format is now supported by all major browsers, with Firefox 158 the latest to enable it by default. Jake Archibald pits it against AVIF in this extensive review . What I find amazing is what it's able to render in under 100 bytes . NodeConf EU 2026: The ▶️ latest NodeConf EU talks are up, including James Snell's case for a common minimum API every runtime should support , plus sessions on V8 heap management and Emscripten and WebAssembly . A new social network: /dev/null is a GitHub-oriented social network for developers, built from scratch in 48 hours. It already has over 8000 members, including me . It's been a lot of fun so far!
Twilio BlogMulti Author Blogsread at source
9 top conversational AI platforms in 2026
Learn about the top conversational AI platforms in 2026, including infrastructure, enterprise, open source, and agentic options. See what fits your stack.
Twilio BlogMulti Author Blogsread at source
How to handle token limits in long AI support conversations
Long support conversations outgrow an LLM's context window. Learn 4 ways to manage token limits and how to handle context across conversations with Twilio.
Jens Oliver MeiertTop Front-end Bloggersread at source
How to Set Up Web Page Minification With VitePress
On minifying HTML as well as inline CSS and JS in VitePress projects.
Jim Nielsen’s BlogMore Front-end Bloggersread at source
No More Icons In Every Menu By Default
Have you heard the good news? I bemoaned the approach of putting an icon in every menu item by default which shipped with macOS Tahoe — but now it’s gone in Golden Gate! John Gruber wrote about this reversion back in June , including the fact that Apple’s new Human Interface Guidelines specifically call out Tahoe’s approach to menus as an example of what not to do on macOS. As the old saying goes, it takes a big man corporation to admit when they’re wrong. As I mentioned in my original post , one of the arguments I had in my quiver against this practice was “Apple doesn’t do it”. But once Apple started putting icons in all their menus in Tahoe, I lost a persuasive point in my argument. But now, I think I have an argument that’s even stronger than before! It’s no longer: “Apple doesn’t put icons in their menus.” It’s: “Apple tried putting icons in all their menus, and even they went back on it!” They designed it, shipped it, lived with it for a year, then publicly changed their guidance on it. To me, that’s a lot more persuasive than simply saying, “Apple doesn’t do this.” Choosing not to do something you’ve never done is one thing. Choosing not to do something you’ve done is experience . That’s the essence of life: learning by doing . Reply via: Email · Mastodon · Bluesky
remy sharp's b:logTop Front-end Bloggers1 min read
AI can operate a screen reader. What does that actually test? [link]
Really like the framing of this article. It uses some very visceral (or easy to understand) examples of how people vs. AI would approach the problem space, and my feeling is that this kind of thinking works well when expanding well beyond the scope of accessibility (though this is an excellent place to start). The floor plan example is good, but it was this that particularly won me over: An AI agent starts with advantages a person doesn’t have. […] The agent knows the goal before it begins. […] A pass tells us the agent found a route, not what finding it was like. AI performs; people experience. Original link: nicolas-steenhout.com/ai-screen-reader-testing
Engineering at MetaCompany/Startup Blogs6 min read
GenRecs Tokenization: Transforming Ads Recommendation at Meta with Stable Model Vocabulary
Generative Recommenders (GenRecs) represent a paradigm shift from scoring every ad to reasoning about ad content and user preferences together in order to predict the best outcome for advertisers. Leveraging the world knowledge built into LLMs makes ad matching more intelligent and precise, compounding gains for advertisers. GenRecs Tokenization is the foundational data representation that [...] Read More... The post GenRecs Tokenization: Transforming Ads Recommendation at Meta with Stable Model Vocabulary appeared first on Engineering at Meta .
Engineering at MetaCompany/Startup Blogs7 min read
The Thin Orchestrator: How We Made Our AI Agents More Reliable by Giving the Router Less to Do
Sometimes, giving an AI agent all of the knowledge it needs is the wrong approach. At Meta, we’ve seen notable improvements in efficiency and accuracy by keeping the orchestration layer of our data pipeline agents deliberately thin: It routes work and enforces reliability checks, while specialized agents do the domain reasoning. We’re sharing our own [...] Read More... The post The Thin Orchestrator: How We Made Our AI Agents More Reliable by Giving the Router Less to Do appeared first on Engineering at Meta .
Jeffrey Zeldman PresentsMore Front-end Bloggersread at source
Now Playing: “Side Two”
For your listening pleasure: 17 new tracks of instrumental music pulling from jazz-funk, Italian movie soundtracks, electronica, hip-hop, art rock and beyond. The post Now Playing: “Side Two” appeared first on Jeffrey Zeldman Presents .
Engineering at MetaCompany/Startup Blogs16 min read
Inside Prometheus: Meta’s Journey to a Gigawatt-Scale Supercluster
With the recent release of the Muse family of foundational models, we want to take you inside the infrastructure that has made it all possible. The first phase of Prometheus, our gigawatt-scale supercluster, is already complete and we’re working toward scaling it to comprise ~1 million GPUs. Prometheus also features technologies like closed-loop liquid cooling [...] Read More... The post Inside Prometheus: Meta’s Journey to a Gigawatt-Scale Supercluster appeared first on Engineering at Meta .
Frontend Masters BlogMore Front-end Bloggers8 min read
Structured Output with TanStack AI
Part 2 of this intro to TanStack AI covers structured output: constraining the model's response to a Zod schema, then streaming that JSON in and rendering it while it's still incomplete.
SyntaxPodcastsAudioListen
1048: Deno Is Dead
Deno is shutting down and the team is heading to Cloudflare — Scott, Wes, and CJ break down what that means for the runtime, JSR, and workerd. Plus OpenCode 2.0 on durable objects, TanStack Start 1.0, SubQ Snap, Gemini 4 Argon, and Wes’s accidental $50 photo frame movement. Show…
W3C BlogBrowsers, engines, etc.2 min read
Improved thread navigation in W3C's mailing list archives
A new feature is available in W3C's mailing list archives, aiming to make it easier to read and navigate message threads.
Auth0 BlogCompany/Startup Blogsread at source
Securing the Front Door of Agentic Commerce: Four Channels, One Identity Layer
AI agents now shop for your customers in four channels. Learn how one identity layer recognizes each agent, links it to a real customer, scopes what it can do, and turns agent traffic into sales.
Twilio BlogMulti Author Blogsread at source
How to Detect SIM Swaps in Rust With Twilio's Lookup API
In this tutorial, you'll learn how to integrate SIM swap detection into your Rust applications.
Twilio BlogMulti Author Blogsread at source
What is an email blast? (how to do it right)
An email blast sends one email to a large list at once. Learn how to send one that reaches the inbox, plus tips and examples.
AdactioTop Front-end Bloggersread at source
I’ve had a nice week at Saint Augustine Beach.
Stéphanie WalterMore Front-end Bloggersread at source
Pixels of the Week – October 18, 2026
This edition explores agentic commerce interfaces beyond chat UIs. Don't miss a fun clock made from trash, a webcam theremin experiment, cool dataviz and tool to know if a book chapter will make you sad.
localghostMore Front-end Bloggers6 min read
Digital recipe management for fastidious cooks
Much like your favourite recipe websites, I'm not going to get straight to the point, I'm going to start with a backstory and you're not getting a skip link. Having grown up with a dad who read cookbooks for leisure, and who caused me to turn vegetarian for several weeks once at…
Twilio BlogMulti Author Blogsread at source
19 best email fonts that won't let you down in 2026
19 best email fonts for 2026: email-safe classics, web fonts with fallbacks, and top picks for signatures, newsletters, and Gmail.”
Jens Oliver MeiertTop Front-end Bloggersread at source
On Not Changing as You Grow Older
There is something to age and change, but it seems to have different explanations than closed-mindedness or resistance.
Go Make ThingsMulti Author Blogs2 min read
Life on Foot
We recently moved from a rural suburb in Massachusetts to a small coastal village in Rhode Island. It’s been transformative, and I wish I’d done it sooner! Trickle-Down Effects Unlike a city, a village has homes with yards. Unlike a suburb, a village has businesses and parks intermixed with homes. It’s the best of both worlds. Being able to walk or bike places has trickle-down effects. Instead of driving 20 minutes one-way to get groceries, I can ride my bike there in 5 minutes.
HTML All The ThingsPodcastsAudioListen
Would You Pay More for Hand-Coded Software?
As AI becomes capable of writing more software, could hand-coded apps eventually become the digital equivalent of handmade furniture or artisan jewelry? In this edition of the Web News, Matt and Mike debate whether people will ever pay a premium for software written by humans,…
Swizec TellerMore Front-end Bloggersread at source
No more tech debt
For the first time in my career we _completed_ a design system migration. The new math on big rewrites tickles my soul.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
🧰 Builders building with Gemini Audio
AdactioTop Front-end Bloggersread at source
Ranking proposals for Interop 2027
The Firefox team are asking us to weigh in on proposals for Interop 2027—what features should browsers be concentrating on implementing or improving. Here are my top five : Web app installation via and navigator.install() . Prompts the user to install a progressive web app. Speculation Rules API . Hints to the browser to proactively download pages in the background so they appear instantly when the user navigates to them. CSS var() in size container queries . Such as @container (width >= var(--min-width)) . CSS flex-wrap: balance . Distributes items in a multi-line flex container so each line has about the same number of items. Interest invokers . The interestfor attribute triggers actions on a target element when the user shows interest, such as via hover, focus, or long-press. Those are very much in order of priority. Imagine them following a Pareto distribution ; the top 20% (in other words, the first one) is 80% of my priority. But other people have other priorities: Stu , Eric , Ana , Tyler , Paweł , Declan , Sara , and Cyd , for example. There’s a lot of love for styleable select in there—can’t argue with that. Get in there and rank your priorities . Then share them.
Level AccessCompany/Startup Blogs11 min read
Can AI Make a Website Accessible?
AI generally cannot make a website fully accessible by itself. However, with proper skills, guardrails, access to vetted design systems, and human input, The post Can AI Make a Website Accessible? appeared first on Level Access .
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
🎵 Turning motion into music with Gemini
AdactioTop Front-end Bloggersread at source
Reading The Pirate Queen by Ariel Lawhon.
AdactioTop Front-end Bloggersread at source
Introducing the Accessible Components Library - TetraLogical
A great little collection of accessible interactive components: dialogs, tabs, accordions, stuff like that. Best of all, the components come with documentation: what problem is solves; when to use it; when not to use it; where to use it, and more. adactio.com/links/22803
David BushellMore Front-end Bloggers3 min read
Cloudflare killed Deno and look I’m on TV!
““Didn’t you already say goodbye to Deno? Get new material!””I know, I know, but not even a week after declaring my friendship over with Deno they actually killed Deno! The runtime is going away, and sorry call me pessimistic, but I highly doubt a community fork of any value will survive for long. […]
Next.js BlogLibraries, Frameworks, etc.read at source
Improving navigation experience in v0 with Next.js 16.4
How we used Partial Prefetching and a coding agent to improve navigation across v0 with Next.js 16.4.
AdactioTop Front-end Bloggersread at source
The Tusks Of Extinction by Ray Nayler
Hot on the heels of reading and enjoying The Mountain In The Sea , I picked up Ray Nayler’s next work, this tightly constructed novella. Once again it deals with inter-species communication. This time it’s de-extincted mammoths. Once again, it’s set in the relatively near future. Many of the same gadgets reappear in this book. It may well be set in the same world. There’s a tangible atmosphere to this story. But despite it’s high-tech premise, it’s not escapist. The narrative is driven by the all-too-real issues of ivory poaching and big-game hunting. And this is where I start to get a nagging feeling about Ray Nayler’s work. At times it seems to relish in describing the worst that humanity is capable of. It starts to veer into misanthropy. If you yourself are misanthropic, it will just come across as realism. But it feels a bit too easy, a bit too cheap. I remember this happening with Paolo Bacigalupi’s books. I enjoyed The Wind-up Girl , but by the time I read The Water Knife , his misanthropy (and misogyny) had become self-parody: Instead of asking what the future might actually be like, it instead asks “what’s the absolute worst that could happen?” Frankly, it’s a cop-out. The book takes a similar tack with its characters. It assumes everyone’s terrible and will do terrible things. It’s lazy. So you’ve got an unrelenting series of people behaving terribly in a horrific setting. It gets boring. The Tusks Of Extinction isn’t that. It manages to maintain a balance. But I hope that the next Ray Nayler book I read won’t tip over into wallowing in the worst of our species. I’ll find out soon enough. I’ve already got Palaces Of The Crow on loan from the library.
Go Make ThingsMulti Author Blogs2 min read
The Village
About 14 years ago, we moved out into the rural suburbs. I loved the quiet, the abundant wildlife, and our proximity to farms. I didn’t realize just how often doing anything at all would require a car. The Sprawl Absolutely nothing was walkable. We lived at the very top of a very high hill, so things weren’t really bikeable either. Groceries, restaurants, entertainment, friends, the library, and so on… you need to get in a car and drive at least 15 minutes for all of it.
Bruce Lawson's personal siteMore Front-end Bloggers2 min read
Reading List 362
Yikes, once again it’s been ages since I posted a reading list, as I’ve been shuttling between Brussels, London and Lawson Towers a lot. This reading list is courtesy of Vivaldi browser, who pay me decent money to fight for a better web and don’t moan at me for reading all this stuff. We’ve just […]
The Mozilla BlogBrowsers, engines, etc.2 min read
This map shows the most important asset that VC-backed companies need right now
What’s the most vital asset for an AI company today? For venture backed AI business, it might be “funding” or “revenue”. But, there’s another asset that’s just as critical: trust. At Mozilla, building technology that people and businesses can genuinely trust has been a long-standing, guiding principle. That’s why we’re supporting the launch of the Trustworthy […] The post This map shows the most important asset that VC-backed companies need right now appeared first on The Mozilla Blog .
Frontend Masters BlogMore Front-end Bloggers10 min read
Unlocking AI in Your Apps with TanStack AI
TanStack AI is a strongly typed set of libraries for adding AI features to your apps. Part 1 of this intro covers basic setup and prompting, streaming responses, persisting threads to your database, and resuming a response after a mid-stream refresh.
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Inside an AI Factory – Power, Cooling, and GPUs Explained
PiccalilliMore Front-end Bloggersread at source
The Index: Issue #202
Tiny Little Office This is really smart. It's a word processor, along with other common office software like spreadsheets, but it's completely URL powered. Introducing the Accessible Components Library You could not be in better hands than with TetraLogical and they've produced a really good collection of common components, all with thorough documentation, accessibility requirements and testing scenarios. we were online Something we've certainly noticed about this particular morale-draining era is there seems to be a real drive to create websites centered around a shared human experience and long may it continue. What 10,000 home pages put in their head So much about web performance is linked to what's in your which this article (and very useful looking tool) breaks down well. Study explores how AI use affects performance on math and reasoning tasks A worrying read for fans of healthy cognition. A handful of reasons JavaScript won’t be available Here's one from the Piccalilli archives that you might have missed to wrap up this issue. P.S. this is a good website from personalsit.es . Sponsor message There's been a drive to ship ship ship in this AI era but increasingly that means a lot of volume and very little substance. At Set Studio, we move incredibly fast because we center everything around a solid strategy and work with the amazing capabilities that modern browsers give us, underpinned by progressive enhancement, to make sure every user gets a high quality equitable and accessible experience. We're also the agency behind The Index and Piccalilli because we think it's important to share this way of working with the wider community. With availability opening up in 2027, we're the agency you can actually trust to do right by you and your user base. Reach out to us for a chat and let us show you how. Check out our work
Auth0 BlogCompany/Startup Blogsread at source
On-Behalf-Of Is a Pattern. Token Exchange Is the Standard.
Find out the difference between On-Behalf-Of and OAuth Token Exchange, and why the two are often confused.
Smashing MagazineThe Giants10 min read
Is Your Organization Messing Up AI Adoption?
What can digital transformation teach us about AI adoption? Paul Boag revisits his book Digital Adaptation to show how lessons from the past can help organizations navigate the challenges of AI today.
Level AccessCompany/Startup Blogs5 min read
Accessibility Needs an Authority. Why Gartner Named Us a Leader
Level Access has been named a Leader in the inaugural Gartner® Magic Quadrant™ for Digital Accessibility Platforms, published October 5, 2026. This is The post Accessibility Needs an Authority. Why Gartner Named Us a Leader appeared first on Level Access .
Level AccessCompany/Startup Blogs17 min read
Comparing AI Accessibility Tools for Building and Testing Websites
AI accessibility tools are software that uses machine learning or large language models to help teams find, prioritize, fix, prevent, or report on The post Comparing AI Accessibility Tools for Building and Testing Websites appeared first on Level Access .
Level AccessCompany/Startup Blogs3 min read
Level Access Named a Leader in the Inaugural Gartner® Magic Quadrant™ for Digital Accessibility
Company positioned highest in Ability to Execute among all vendors evaluated STAFFORD, Va. — Oct. 16, 2026 — Level Access, a global provider The post Level Access Named a Leader in the Inaugural Gartner® Magic Quadrant™ for Digital Accessibility appeared first on Level Access .
Frontend Masters BlogMore Front-end Bloggers3 min read
SVG “Linked Parameters” Will Change How We Do Icon Systems
Maybe we can get back to an img-based icon system?
Auth0 BlogCompany/Startup Blogsread at source
Agentic Development: Time to Shift the Focus
Agents can turn ideas into pull requests in almost no time. The hard part now is deciding what to build and validating that generated code is safe to ship. Here is a risk-based approach to both.
ESLint BlogLibraries, Frameworks, etc.2 min read
ESLint v10.13.0 released
Highlights Several core rules have been updated to report more linting problems. no-use-before-define The no-use-before-define rule has been updated to account for the fact that IIFEs execute immediately by treating them as part of the execution context where they are defined…
Twilio BlogMulti Author Blogsread at source
How to modernize CX without ripping and replacing your stack
See how real-life CIOs and CTOs modernize customer engagement while keeping their existing systems.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
📖 Explore custom voice narration with Gemini 3.8 Flash TTS
AdactioTop Front-end Bloggersread at source
The Mountain In The Sea by Ray Nayler
Back in 2019 , I read the book Other Minds: The Octopus, the Sea, and the Deep Origins of Consciousness by Peter Godfrey-Smith and said: I really enjoyed this evolutionary tale. It’s equal parts biology and philosophy. I will never look at cephalopods quite the same way again. Reading Ray Nayler’s The Mountain In The Sea reminded so much of that book that I couldn’t resist flipping ahead to the acknowledgements at the back. Sure enough, Other Minds gets a big shout-out. But that’s only part of the make-up of The Mountain In The Sea . There’s just as much William Gibson as Peter Godfrey-Smith. I don’t just mean that the book is an unexpectedly rip-roaring cyberpunk thriller—which it is—but that it’s also got that Gibsonian narrative structure; three disconnected protagonists in three separate stories that you just know are going to connect before the book is done. The great accomplishment of this book is how well it balances the two genres of philosophy and cyberpunk. There’s plenty of musings on the nature of consciousness, be it human, octopus, or artificial intelligence. But there’s also plenty of high-tech hacking shenanigans. Above all, it’s an excellent example of one of my favourite subgenres of science fiction: first contact . It’s as linguistically satisfying as Ted Chiang’s Story Of Your Life , the pinnacle of the first-contact subgenre. The fact that there are no extra-terrestrial species just adds to its realism.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Turning raw hardware sensor data into music with Gemini
Engineering at MetaCompany/Startup Blogs8 min read
How Meta Built Forum With AI-Native Engineering
Meta’s newest app, Forum, is for anyone who wants to go deeper into the conversations in their Facebook groups. To build Forum, Meta engineers adopted a whole new way of working by bringing an AI agent into the development cycle. We’re sharing insights into what it took to build Forum with agentic AI: how we [...] Read More... The post How Meta Built Forum With AI-Native Engineering appeared first on Engineering at Meta .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
We Need All the Disciplines
From where I sit, figuring out what to build, building it, and shipping it are all part of the art of making software. Many disciplines have emerged through the years to facilitate this work: product, design, engineering, devops, etc. We need all these disciplines to make great, dependable software (granted, in different doses). Each brings different values and judgments; each sees things the others don’t. And including all might mean going a bit slower. Human collaboration may seem less “efficient” than handing the work over entirely to the machines. But inefficiency may be the cost of collaborating with humans, rather than extracting an output from a machine. We gain not only from their judgment and expertise in a particular discipline, but from the relationship, trust, and shared understanding that blossoms from making something together. As the old proverb says: “If you want to go fast, go alone. If you want to go far, go together.” Reformulated for today: If you want to go fast, go with the LLM. If you want to go far, go with your fellow humans. Reply via: Email · Mastodon · Bluesky
Engineering at MetaCompany/Startup Blogs4 min read
2026 World Cup: Breaking Records, Spiky Charts and Reliability at Scale
Every four years, the World Cup becomes the largest planned stress test of our infrastructure. This year it also set an all-time record! There are a few moments throughout the year, like New Years Eve, that really let us see the collective impact of everything we’ve built — but none are bigger than the quadrennial [...] Read More... The post 2026 World Cup: Breaking Records, Spiky Charts and Reliability at Scale appeared first on Engineering at Meta .
Jeffrey Zeldman PresentsMore Front-end Bloggers1 min read
Silly Old Bear
Remembrance of Poohs past. The post Silly Old Bear appeared first on Jeffrey Zeldman Presents .
Heroku BlogCompany/Startup Blogs3 min read
Front-End Web Deep Dive: Runtime Config
Runtime configuration has been brought to the Front-End Web Cloud Native Buildpack in a way that is standard, secure, and requires zero re-builds. By revisiting Twelve-Factor principles through the lens of modern web standards, we have created a strategy that works for any framework. The post Front-End Web Deep Dive: Runtime Config appeared first on Heroku .
DigitalOcean BlogMulti Author Blogs23 min read
Building a computer that can pause and resume in milliseconds: Inside the MicroVM architecture behind Managed Agents
An agent starts a test suite, edits a file, calls a model, and waits. Later, it resumes work with the same processes, files, and context. Sometimes it needs to fork that environment and try two approaches at once. These workloads force a tradeoff on conventional infrastructure.…
Microsoft Edge BlogBrowsers, engines, etc.4 min read
Faster protection, fewer interruptions: How Microsoft Edge is rethinking updates
At a glance Microsoft Edge is developing new ways to help security updates reach people faster with less disruption. A seamless-updates prototype shows how Edge could update while work continues. Available today, Restar The post Faster protection, fewer interruptions: How Microsoft Edge is rethinking updates appeared first on Microsoft Edge Blog .
Engineering at MetaCompany/Startup Blogs2 min read
Sapienz Receives ISSTA 2026 Impact Paper Award
Ke Mao, Mark Harman, and Yue Jia have been recognized with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) 2026 Most Influential Paper Award for their 2016 research, “Sapienz: multi-objective automated testing for Android applications.” The recognition celebrates a decade of impact from work that began at University College London and went [...] Read More... The post Sapienz Receives ISSTA 2026 Impact Paper Award appeared first on Engineering at Meta .
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Gemini 4 Argon in Antigravity
The Mozilla BlogBrowsers, engines, etc.5 min read
What does the (Fire)fox say?
It all started with a question: What does Firefox sound like to you? Over the past year, Mozilla developed a small but meaningful set of sounds to add a sonic dimension to the Firefox experience. When we started this process, we knew we wanted something warm, human, and representative of our open source identity. We […] The post What does the (Fire)fox say? appeared first on The Mozilla Blog .
Web Tools WeeklyMulti Author Blogsread at source
Web Tools Weekly Issue #691
Fimo Review, CSS/HTML, Testing, Uncats
LogRocket BlogCompany/Startup Blogs6 min read
Traditional GPT vs. looping Transformers: Key differences
Explore how looping Transformers reuse layers and compare with traditional GPT models in reasoning tasks. The post Traditional GPT vs. looping Transformers: Key differences appeared first on LogRocket Blog .
AdactioTop Front-end Bloggersread at source
I am afraid my stuffed dinosaur will eat us all. He must be stopped
My computed probability of the risk that Chomp will eat me, or in statistical terms, P(CHOMP), is approximately 95%. This has been a tough realization for me, because I consider Chomp a close friend, and I insist that no harm or regulation should come to him. However, if he should succeed in making me his first human sacrifice, it gives me no joy to inform you that there is nothing to stop him from eating us all. I know what you’re thinking, because I’ve heard it all before: Aren’t you just making up the words he’s saying? You’re the one who’s saying he wants to eat humans . I have to say, I’m insulted, and kind of sad for you. This kind of ad hominem attack only bolsters my argument. Why won’t you engage with the facts I have presented, namely that a stuffed dinosaur wants to devour all humans and only I can save us from that outcome? adactio.com/links/22800
Jake Archibald's blogTop Front-end Bloggers64 min read
JPEG XL vs AVIF for web use-cases
JPEG XL has landed, but how does it compare?
Ahmad ShadeedMore Front-end Bloggersread at source
Fit height to background pattern size with calc-size()
Ana RodriguesMore Front-end Bloggersread at source
Goodbye sweet Jessie
This post has a content note of pet loss. Visit the link directly if you're okay with reading it.
Bootstrap BlogLibraries, Frameworks, etc.read at source
Triaging open source with agents
The Astro BlogLibraries, Frameworks, etc.read at source
Astro 7.4
Astro 7.4 adds a --timings flag that shows where your build spends its time, separate build and runtime image services, a notFound() handler for custom entrypoints, and experimental parallel prerendering and custom redirect pages.
Twilio BlogMulti Author Blogsread at source
How to Build a Voice AI Agent with OpenAI's GPT-Live, Twilio Agent Connect, and TypeScript
Build inbound and outbound voice AI assistants that can handle tool calls using TypeScript, Twilio Agent Connect, and OpenAI's GPT-Live.
Twilio BlogMulti Author Blogsread at source
What is agentic identity? Securing AI agents in 2026
Discover what agentic identity is in 2026. Learn how AI agent identity and governance secure autonomous systems across channels while building customer trust.
Twilio BlogMulti Author Blogsread at source
Twilio Video Media SDK Powers Smarter Customer Engagement
Unlock the future of customer engagement with the Twilio Video Media SDK, now Public Beta. Seamlessly combine live video data, AI, and secure, connected experiences.
Mux BlogCompany/Startup Blogs2 min read
Introducing spending alerts: Get notified when your spend crosses thresholds you set
Mux spending alerts email your team when your organization’s spend crosses a threshold you set. Learn how to set up alerts.
Mux BlogCompany/Startup Blogs3 min read
How Change.org uses video to turn signatures into stories
Change.org uses video to put a human face on petitions. See how switching to Mux gave their teams better insight into engagement, errors, and bot traffic.
Thoughts From EricMore Front-end Bloggers6 min read
My Interop 2027 Rankings
In which I explore why I ranked what I did for Interop 2027.
Next.js BlogLibraries, Frameworks, etc.read at source
Next.js Security Update for Upstream Vulnerabilities
The October 14, 2026 out-of-band security update for Next.js is now available
Bram.usMore Front-end Bloggers4 min read
Scroll-Triggered Animations Debugger (DevTools Extension)
I’m extremely pleased to announce the release of Scroll-Triggered Animations Debugger , a DevTools extension to visualize and debug CSS Scroll-Triggered Animations .
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Gemini 4 Argon: What’s new and what’s next
Heroku BlogCompany/Startup Blogs3 min read
Improved Static Website Support on Heroku with Front-End Web Cloud Native Buildpack
Recently, we expanded Heroku’s industry-shaping primitives, adding support for client-side browser apps, composed of HTML, CSS, and JavaScript. This built-in support for static web apps joins the existing Heroku Buildpacks: Ruby, Python, Go, Java, Clojure, Scala, Node.js, PHP, and .NET. With the new Front-End Web Cloud Native Buildpack (CNB), you get a complete static web […] The post Improved Static Website Support on Heroku with Front-End Web Cloud Native Buildpack appeared first on Heroku .
CodePenCompany/Startup Blogs1 min read
444: A Gosh-Dang Full-Blown Read/Write API
Marie and Chris are on the podcast to talk about our very new v2 API. This baby (slaps the hood) can do it all. It’s complete read/write access to all your Pens, Collections, and Assets. This API isn’t hamstrung by anything, so the door is open to whatever you want to build. We’ve already seen […]
Frontend Masters BlogMore Front-end Bloggers8 min read
Building a Fancy Scrollspy Using Modern CSS
Scrollspy navigation used to mean IntersectionObserver and a pile of JavaScript. With scroll-target-group, :target-current, and a little anchor positioning, a plain list of anchor links can highlight the current section all on its own.
Frontend Masters BlogMore Front-end Bloggers1 min read
“WebMCP is Agentic WebPerf”
Yoav Weiss makes a good point: “WebMCP is Agentic WebPerf”. I’ve seen both pushback to WebMCP in the form of “websites should just be better, or agents should be smarter, there shouldn’t be alternative paths to using them built.” And I’ve seen plenty of excitement for WebMCP in the form of “ooooo AI droolface”. But […]
LogRocket BlogCompany/Startup Blogs13 min read
How I stopped hassling my friends to test my apps, and just asked Grok Bot instead
Learn how one solo developer used multiple Grok Bot AI agents to test, report bugs, fix code, and monitor deployments — hands-free, on a $30/month plan. The post How I stopped hassling my friends to test my apps, and just asked Grok Bot instead appeared first on LogRocket Blog .
LogRocket BlogCompany/Startup Blogs7 min read
How PMs can use AI and Markdown to preserve product context
Keep the reasoning behind product decisions within reach. Build a clear system to track customer feedback, priorities, and project progress. The post How PMs can use AI and Markdown to preserve product context appeared first on LogRocket Blog .
CSS WizardryTop Front-end Bloggersread at source
Web-Perf Wednesday 013 – CrUX Adds Soft-Navigation Core Web Vitals
CrUX adds experimental Core Web Vitals for SPA soft navigations, while Firefox and Safari improve cache evidence, image delivery, and rendering.
SyntaxPodcastsAudioListen
1047: Adobe has a big problem
Someone just clean-room ported seven Adobe apps to Rust, and Wes is shocked at how good it is. Scott and Wes break down what it gets right, what’s still missing, and why copying software is easy but inventing what comes next is the hard part. Show Notes 00:00 Welcome to Syntax!…
W3C BlogBrowsers, engines, etc.2 min read
Introducing group activity pages
W3C groups now have an Activity page that shows, month by month, their charters, publications, meetings, participants and GitHub work in one place. The pages are in beta, and we would like your feedback.
Bruce Lawson's personal siteMore Front-end Bloggersread at source
Farage believes Andrew Tate is “an important voice”
Now we know that the execrable Andrew Tate is wanted by British police for allegedly making indecent images of a child, rape, stranging women during sex, and possession of extreme pornography depicting sexual intercourse between people and live animals — one involving an eel and another involving a horse. Let us not forget that Nigel […]
Zach LeathermanTop Front-end Bloggers1 min read
All of my 300+ browser tabs are beautiful
I am a habitual tab hoarder so I created a Firefox addon to help me manage every one of my very special browser tabs. Sort tabs by oldest, unload them, find duplicates, and consolidate tabs to a single window — buncha useful stuff in there! Download from Mozilla Addons Source…
AdactioTop Front-end Bloggersread at source
Installing Websites Must Be Easy
A message to Apple from the W3C Technical Architecture Group: We expect user agents to make installation an obvious affordance to users. Specifically, we expect the install option to clearly name the action, and to be easily reachable from the browser’s UI. An entry inside a menu with an unrelated label (such as Share), or several menu layers deep, does not meet this expectation. adactio.com/links/22799
AdactioTop Front-end Bloggersread at source
Zero
The term “no-brainer” refers to a suggestion that is so compelling that it would be foolish to even consider not doing it. I came across a no-brainer recently, thanks to Matt Hobbs: Make all UK Government websites free to access without mobile data charges. When I was done slapping my forehead at how obvious this proposal is, I signed the petition . If you’re a UK resident, you should do the same. And then spread the word. This is the kind of proposal that I imagine any politician would be happy to support, regardless of party affiliation, so don’t be shy about contacting your local MP. I guess in theory this could be opposed on the grounds that it technically violates net neutrality, but I would hope that the obvious societal benefits would outweigh that objection. Like I said, a no-brainer.
AdactioTop Front-end Bloggersread at source
Reading The Tusks of Extinction by Ray Nayler.
Auth0 BlogCompany/Startup Blogsread at source
One SDK, Multiple Platforms: Introducing the Auth0 SDK for Kotlin Multiplatform
Add login, logout, and secure token storage to iOS and Android apps using the Auth0 Kotlin Multiplatform SDK. Simplify cross-platform auth.
Frontend FocusMulti Author Blogsread at source
The best way to use icons in Web UIs
🚀 Frontend Focus #762 — October 14, 2026 | Read on the web What the iPhone Duo Means for Web Development — The Duo is out next week, so Darius fired up the simulator to try the Device Posture and Viewport Segments APIs (both available behind a flag). Using Video.js components and CSS, he tried to recreate Netflix's folded-player UI, but Apple's fullscreen restrictions made things a tad interesting. Darius Cepulis (Video.js) The Best Way to Use Icons in Web UIs — Lea shows how to insert and tweak icons without touching any HTML, using --icon custom properties, @property , style queries, and mask . The result? A pure CSS icon system that’s “ more flexible and maintainable than what you've been using ”. Lea Verou Become the TypeScript Expert on Your Team — Be the person your team trusts to review AI-generated TypeScript. Learn generics, conditional types, and discriminated unions in depth, then use that knowledge to catch subtle errors and steer AI toward cleaner types. Master.dev sponsor The 2027 Web Platform Feature Ranking Returns — Back for a second year, Firefox's ranker lets you sign in with GitHub, compare and rank the Interop 2027 proposals. Jake Archibald says last year’s findings (taken from ~1,900 rankings) helped “ prioritise a lot of work this year” , so it's worth having your say. Firefox ⚡️ IN BRIEF 📊 The results of the 2026 Stack Overflow Developer Survey are out. With over 30,000 responses, JavaScript came in as #1 language for the 12th year in a row. 🦊 Mozilla now offers an Enterprise version of Firefox, focusing on things like compliance, regulatory requirements, security, and telemetry controls. 🔒 Starting February next year all new/renewed Let's Encrypt certificates will use a 64 day lifetime by default (down from 90). 🧭 Apple has shared a new page making their case for switching over from Chrome to Safari. 🛡️ If you miss Arc, Crest is a new browser hoping to scratch a similar itch . It curiously offers both Chromium and WebKit rendering. 📙 Articles, Opinions & Tutorials Lazy Loading Images and Media: How Far Ahead Browsers Fetch — Ben measures how far ahead Chrome, Firefox and Safari fetch lazy-loaded media. He also shares what we can lazy load (including video and audio in Chromium browsers), and covers where lazy , eager and fetchpriority fit. Ben Schwarz (Calibre) How Sindre Sorhus' Personal Site is Now Made in Swift — A prolific JavaScript developer explains why he dropped Astro and now builds his personal site, styling and markup included, with Apple's Swift language. Sindre Sorhus Agentic Mobile Development, from First Prompt to the App Store — Expo gives your coding agent the mobile infrastructure it is missing: native builds, store submits and live updates. Expo sponsor Recursion is DEAD and HTML Killed It — A fun, practical look at using Chrome’s new out-of-order HTML streaming (known as declarative partial updates ) to let the browser assemble nested comment threads for you. Chromium-only, but exciting. Dave Rupert 🖼️ I Guess I’m Using WebP Now — It’s been 16 years since Google introduced the WebP image format, support is now widespread ( 97% ), and hey, maybe they’re worth another look? Gavin Anderegg Scroll-Triggered Animation as the Missing Piece for Scrollytelling on the Web — A look at the CSS Animation Triggers spec, an Interop 2027 candidate, and how it kicks off an animation based on scroll position. Five demos show what it enables. Brecht De Ruyte Firefox 158 Enables JPEG XL by Default — Coming shortly after Chrome did the same, Firefox now supports JPEG XL by default, adding image/jxl to its image Accept header. Mozilla 🌐 In other browser news, Chrome 156 beta is out (stable next week) and adds support for CSS random() . Also, Safari Technology Preview 254 is out with both calc-size() and interpolate-size support. Fingerprints are the New Cookies — Several ways JavaScript and browser APIs can assign a unique identifier to you. Roy Fish How to Test an iframe 's postMessage Handler Keshav Malik 🧰 Tools, Code & Resources Bootstrap 6 Alpha — An early look at the popular framework's first major release since 2021. Modernization is the order of the day, with most Sass variables now CSS variables, ESM-only JS plugins, and it leans on more browser-native features. Mark Otto reseter.css 3.0: The Modern CSS Reset — v3 of this popular CSS reset is a major rework. Both the 'full' and 'mini' variants now ship wrapped in @layer reset for predictable overrides, use logical properties throughout, and are built with Lightning CSS. And all just ~1KB compressed. Krish Gupta Publish to Miris Straight from Adobe Substance 3D Painter — Stop sharing decimated 3D content. Stream your high-fidelity Adobe Substance 3D Painter assets via the Miris plugin. Miris sponsor ascii.rest: Animated ASCII Art for Web Pages — A collection of over 200 animated ASCII pieces, from lovely art pieces to more practical components like loaders, spinners, charts, shapes, etc. Shubham Kira Screen Ruler: Measure, Inspect, and Edit Web Pages — A popular Chromium extension for taking page measurements, CSS inspection, and live edits. Comes with an MCP server too. Myster Violets webvitals.fyi: Explore and Compare Every Performance Tool — Currently includes 29 tools, each given an opinionated rating, based on capabilities and role (e.g. frontend vs. performance engineer). Phil Gourley FontGlyph: Local-First Tool to Convert SVG & PNG Icons into a WOFF2 Icon Font cwittenberg Vite Plugin Registry: Discover and Compare Plugins for Vite, Rolldown, & Rollup VoidZero Lift HTML: A Tiny Library for Building HTML Web Components Yaroslav Lapin 📰 Classifieds Bring your wild ideas to Mozilla Festival . Gather and connect with other developers and creatives in Barcelona, Oct. 28-30. Get your badge . 📸 Add barcode scanning to your web app using STRICH , a lean JS SDK. Free 14-day trial, try the demo app today!
remy sharp's b:logTop Front-end Bloggers1 min read
The Correspondent [book]
A lovely story that held all the marks of a real person full of real faults, discovering late in life that there's still more to be seen. I can't remember the last time I shot through a book so fast. 6 days it took me to read (fast for me). I think it's partly due to the technical nature of the book. Specifically, it's written as (the title would suggest) correspondents from Sybil (the main character) and the people she writes to. Due to this structure, there's really no particular moments when the story has any "what's next" moments, but rather just flows from letter to letter. Although it is written as a series of disjointed letters, it works really well and at no point did I feel lost - even when the letter starts, if it's addressed to Sybil, unless it's an email, you don't really know who it's from until the clues in the letter. Sybil is in her twilight years and has enjoyed a good career and when we meet her she really isn't looking for much other than exchanging letters with her friends, family and others. One thing is very clear from the letters and the book: Sybil is flawed, but in ways that we can see as the reader, but she doesn't see from her perspective. In ways that are frustrating but don't (or didn't to me) come across as contrived for the story. I've known people with these kinds of blind spots. I can imagine myself being just as stubborn. I really enjoyed reading the book, it ends a little cliche but not so much in a sickly way. Although my last two books were centred entirely around 70+ year old characters so I think the next book will have to try to be a little different!
Twilio BlogMulti Author Blogsread at source
How to Retrieve a Phone Number's SMS Pumping Score in Rust
In this tutorial, you'll learn how to retrieve a phone number's SMS Pumping Risk Score — along with other helpful information — in Rust.
HTML All The ThingsPodcastsAudioListen
AI Basics For Developers
AI coding tools are getting more capable, but learning to use them well is about more than chasing the newest model. In this episode, Matt and Mike break down the fundamentals developers need to work effectively with AI, from models, agents, and harnesses to tools like Cursor,…
Treehouse BlogMulti Author Blogsread at source
Treehouse’s CEO Built a Creative App with AI: Here’s What She Learned
Kari Brooks is not a professional developer, she’s the CEO of Treehouse. Using AI, she was able to turn a personal side project into a real digital product — and you can, too, with Treehouse’s AI Bootcamp, free to all... The post Treehouse’s CEO Built a Creative App with AI: Here’s What She Learned appeared first on Treehouse Blog .
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Gemini 4 Argon and Google Antigravity: From 2D concept to 3D cathedral
Mux BlogCompany/Startup Blogs9 min read
Let your agent cook by giving it the recipe
We've shipped a prompt library to give your agent the exact recipe for common use cases built on Mux. The evals tell the whole story.
DigitalOcean BlogMulti Author Blogs12 min read
Inside Action Gateway in Managed Agents
A coding agent finishes a change and wants to open a GitHub issue with a link to its results. The agent can describe the issue, but creating it belongs to a different system. It needs a tool that can access GitHub, a connection with permission to use the correct account, and a…
Engineering at MetaCompany/Startup Blogs15 min read
Meta’s Generative Ads Model (GEM): Scaling the Central Model and Compute Engine for Frontier Ads AI
Last year, we introduced GEM, the industry’s largest recommendation system (RecSys) foundation model. GEM established Meta’s first LLM-inspired paradigm for ads recommendation, driving major performance gains. Building on this foundation, our next goal is to further scale both compute and intelligence transfer with next-generation hardware, and expand this capability across Meta’s entire ads ecosystem. This [...] Read More... The post Meta’s Generative Ads Model (GEM): Scaling the Central Model and Compute Engine for Frontier Ads AI appeared first on Engineering at Meta .
LogRocket BlogCompany/Startup Blogs16 min read
AI dev tool power rankings & comparison [Oct. 2026]
Compare the top AI development tools and models of October 2026. View updated rankings, feature breakdowns, and find the best fit for you. The post AI dev tool power rankings & comparison [Oct. 2026] appeared first on LogRocket Blog .
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Design Software Systems Like a Senior Engineer – Complete Course
DigitalOcean BlogMulti Author Blogs4 min read
DigitalOcean Inference Router Enhancements: Performance Tuned Routing, No Rules to Write
Every few weeks, a new model steps up and claims best-in-class at something. The launch chart makes the case, the link makes the rounds, and your team is back to the question nobody has time for: should we switch? The answer takes a week of evals, side-by-side tests and debate,…
QuirksBlogTop Front-end Bloggersread at source
Mucking about with mobile browsers
Today, for the first time in ten years, I bought a test phone (a second-hand Galaxy S21) and worked on creating my first mobile browser test array in nine years. Here’s a few fun facts that I noticed. My array consists only of one iPhone and one Galaxy — quite a difference with the past, when I routinely used about twelve to fifteen devices. Still, let’s start small. The phone market is simpler than back in 2012. And these two phones have one advantage I thought I’d never have: they use the same charger !!!! I thoughtlessly switched the charger from Galaxy to iPhone. And! It! Worked! 2012 would not believe you. Your choice is important to us The Galaxy has a browser/search engine choice menu nowadays. That’s fair, I’d say, given that the iPhone has one as well. Both these lists are very long, and that will likely put off consumers. That’s the point of such long lists. Anyway, I knew what I wanted on my Galaxy. Chrome, Samsung Internet, UC, Firefox, Vivaldi. The first two were already on it. The others required use of the Play Store, which, incidentally, doesn't have a search bar by default any more. Sure, there’s a menu item, but it’s not the same. (A search bard by default might be a useful feature for the EU to require. Consumers must have choice.) When I’d found UC I also saw Firefox. Cool, two downloads in one screen. Then I looked further and saw that Firefox was a sponsored result. Same when I searched for Vivaldi. Clearly, someone at Mozilla bought a bunch of good keywords. Zoom reflow! Coolest feature last. It turns out that UC supports zoom reflow . That is, when you resize the visual viewport, the text adapts to the new width and fits snugly. This used to be an HTC thing back in the days (but today nobody remembers HTC). Now, apparently, it’s a UC thing. The downside of this feature is that it must be very expensive in terms of reflowing the page. I don’t doubt that there will be exceptions and things where the page doesn’t reflow. But I discovered it only an hour ago, so I will bask in the radiance of my absolute favourite mobile feature returning from the dead. Difficult questions will have to wait for tomorrow.
Bram.usMore Front-end Bloggers5 min read
Introducing css-typed-om, a complete and WPT-tested polyfill for CSS Typed OM
Being a big fan of the CSS Typed OM , I’ve wanted a proper polyfill for it for years. Just before my summer vacation back in July, with the help of Gemini/Antigravity, I finally built one: css-typed-om .
The Mozilla BlogBrowsers, engines, etc.4 min read
Mozilla introduces Firefox Enterprise
Institutions are recalculating who controls the technology they rely on. Mozilla has an independent option to offer. For years, organizations consolidated technology around a small number of providers to make things simpler. Fewer systems. Tighter integrations. More economies of scale. But that consolidation went well beyond technology. It consolidated dependency, too. The resulting risks have […] The post Mozilla introduces Firefox Enterprise appeared first on The Mozilla Blog .
JavaScript WeeklyMulti Author Blogsread at source
Ryan Dahl: 'Why reimplement Node? It works.'
#806 — October 13, 2026 Read on the Web JavaScript Weekly Deno is Joining Cloudflare (But…) — Maybe David Bushell saw the writing on the wall , as the Deno team isn't joining Cloudflare to keep working on Deno , but to fold celld into workerd so Durable Objects can be self-hosted ( more on that here ). The Deno runtime will get a final year of official fixes, Deno Deploy closes in six months, and JSR moves to Cloudflare's infrastructure. Ryan Dahl 💡 On Hacker News , Ryan Dahl noted that Deno "has been sucked into the gravity well of Node compatibility" before asking: "Why reimplement Node? It works." But what happens to the JavaScript™ trademark case , I wonder…? CodeAF: #1 of Ten Coding Harnesses on DeepSWE — Ten coding harnesses ran the same open model on 113 real GitHub issues. CodeAF solved the most and paid the least per solved issue: 3.4x less than Claude Code, 4.8x less than OpenCode. A new open-source coding harness built for open models. AgentField AI sponsor Bun 1.4.3 Adds bun check , a Built-In TypeScript Type Checker — bun check is a port of TypeScript 7's checker that reads your tsconfig.json , reports the same errors as tsc and, Jarred claims, runs 3-6x faster. It plugs into bun run / test / build too. Idle server processes now use far less CPU, and a JavaScriptCore upgrade picks up numerous perf gains . Jarred Sumner IN BRIEF: AWS has launched Lambda Web Functions , which run an ordinary port-listening Node server (Express, Hono, Fastify, etc.) on Lambda with no handler rewrite, billing for active CPU time and separately for memory. 📊 The 2026 Stack Overflow Developer Survey results are out (30,903 people took part) with JavaScript the #1 language for the 12th year in a row (and TypeScript at #6). 🔒 Despite this week's fresh stir , no malicious Zod release reached npm. Malicious commits pushed to its repo in September were reverted the same day, as Colin McDonnell explains . 🔒 An out-of-band Next.js security release is due tomorrow . RELEASES: Last second addition: TanStack Start 1.0 has just dropped. Big news for full-stack React and Solid fans! :-) 🎉 Partytown 1.0 – A popular way to relocate third-party scripts to run in a Web Worker rather than on the main thread has left beta after five years in development. Marionette 5.0 – Six years on, the Backbone-era framework returns with a core free of Backbone, jQuery and Underscore… and they explain why! Bootstrap 6 Alpha – An early look at Bootstrap's first major release since 2021, leaning on modern CSS and making its JavaScript plugins ESM-only. Express 5.3.0 – A maintenance release worth upgrading to, as patched qs , proxy-addr and body-parser dependencies close five CVEs. 📖 Articles and Videos 📊 WebSocket Servers in JavaScript: Node.js, Bun, and Deno — In 2023, Daniel found Bun much faster than Node at relaying WebSocket messages, but there was a bug in his Bun server. This new attempt uses a C client/relay as a baseline, and Node 26 now gets close to C latency, ahead of Bun and Deno. Daniel Lemire How Sindre Sorhus' Personal Site is Now Made in Swift — One of JavaScript's most prolific developers explains how he's dropped Astro and now builds his personal site with Swift, including the styling and markup, with broken links and style typos failing at compile time ( source ). Sindre Sorhus Too Many Agent Traces to Read? Find the Ones That Matter, Live Oct 14 — Bad answers, wrong tool calls, too many traces. See how Sentry engineers find the failures worth fixing. Register now . Sentry sponsor Tiny Apps with TinyJS — A quick look at a new way to make tiny JS-powered desktop apps we featured a few weeks ago. Raymond Camden 📄 Yet Another Way to Invoke Functions Without Parentheses – There are many ways to invoke arbitrary functions in JavaScript without using parens, but this is a particularly obscure one! bartosz 📄 Six Months of Building with Remix 3 – What the post-React Remix (v3 was released earlier this month) is like to work with day to day. Sergio Xalambrí 📄 A Visual Notation for React's Parent and Owner Trees – With a playground that draws them from your code. Jules Blom 📄 How to Test an iframe 's postMessage Handler Keshav Malik 🛠 Code & Tools 🤖 OpenCode 2.0: A Big Update for the Open Coding Agent — A full-featured agentic coding app, built on Bun, that's more akin to Claude Code than Pi , say. v2.0 overhauls it with background subagents, a 'code mode' to let models script MCP tool calls, and clients for vanilla JS and Effect code to drive it. Anomaly / The OpenCode Team 💡 If you've not given OpenCode a try yet, you can get started here . Tamagui 3: One React UI Codebase for Web and Native — A styling system and component kit for sharing UI between React web apps and React Native, with a compiler that keeps things fast on both. v3 adds Tailwind-style props and React Strict DOM support. Nate Wienert Mobile AI Infrastructure for Web Devs Who Code with Agents — Point the agent you use for the web at iOS and Android. Expo takes care of the native builds and the trip to the stores. Expo sponsor H3 v2: The UnJS HTTP Framework Rebuilt on Web Standards — The minimal HTTP framework behind Nitro and Nuxt's server layer is now stable in v2, a rewrite around standard Request and Response so the same app runs on Node, Bun, Deno, Workers, and even in the browser. Migration guide . Pooya Parsa Shaders: 190+ WebGPU Effect Components, Now Open Source — Ripples, glows, and dissolves into ASCII, composed as components rather than written as shader code, for React, Vue, Svelte, Solid, or plain JS. The engine, framework bindings, and the components themselves are now all MIT licensed. Simon Le Marchant 💡 If you like this vibe, ascii.rest , which offers "236 animated ASCII pieces for web pages" , is also worth a look. Node.js v26.11.0 (Current) – Adds a --process-timeout flag to end a process after a set time, plus virtual table support in node:sqlite . Hono 5.0 RC – The web-standards server framework goes ESM-only and moves its runtime adapters into separate packages. 🔒 Handlebars 4.7.10 – The templating library fixes two critical JavaScript injection flaws affecting releases back to 3.0. he 2.0 – Robust HTML entity encoder/decoder. First release in eight years, now ESM with named exports. React Aria 1.22 – Adds a new Sheet component . pnpm 12.12 📰 Classifieds ⚡️Add lightning-fast 1D/2D barcode scanning to your web app with STRICH . On-device processing, free trial and demo! Durable AI agents built with the AI SDK you already use. Long-lived LLM sessions that survive deploys, crashes & refreshes. Test out chat.agent on Trigger.dev . 🎬 Your app needs video, not a video team. Upload any format to Hyperserve's API , get back MP4 on a global CDN. Ship video in an afternoon. 📢 Elsewhere in the ecosystem In Fingerprints are the New Cookies , Roy Fish demonstrates the various ways web pages can assign a unique(ish) identity to you using JavaScript. 🤖 Theo Browne set AI agents loose on porting the TypeScript 7 compiler to Rust, and ts-rust is the (very experimental) result. 📱 Following Shopify, Coinbase is moving its app off React Native , saying agents have made building each feature twice cheap enough to go fully native. Fancy a retro robot voice in your web experience? Klattsch is a voice synthesizer you can use on the web or from Node.js as an npm package. Daiiisy, daiiisy… Three years ago we mentioned Linus Groh's Zig-based Kiesel JavaScript engine. It passed 25% of test262 back then, but v0.4.0 has landed and it's now at 94.7% (not far behind V8) and supports modern language proposals like await dictionary and numerous iterator proposals.
Twilio BlogMulti Author Blogsread at source
Cyber Week Readiness: A Developer's Guide to Scalable Comms
Learn how to scale your SMS, voice, and email infrastructure for Cyber Week — covering API optimization, fault tolerance, and real-time deliverability.
Jens Oliver MeiertTop Front-end Bloggersread at source
CSS Optimization: Is Using Declarations Just Once (UDJO) Still Effective Today?
On the merit of (and tooling and metrics for) an old CSS maintainability and performance optimization technique.
Engineering at MetaCompany/Startup Blogs11 min read
OCP Summit 2026: Powering AI with Open Innovations in Scale-Up, Scale-Out, and Scale-Across Networks
At the 2026 Open Compute Project Global Summit, Meta is sharing the next generation of open networking infrastructure, including: Our first liquid-cooled network rack (IcePack), and 102.4T switch platform (IceCube). Flattened Planar Fabric (FPF), a multiplane backend scale-out fabric that fundamentally changes how GPUs connect to the network MetaRoCE, our open-source AI transport protocol. Launching [...] Read More... The post OCP Summit 2026: Powering AI with Open Innovations in Scale-Up, Scale-Out, and Scale-Across Networks appeared first on Engineering at Meta .
Treehouse BlogMulti Author Blogsread at source
How to Get Free Coding Courses Through Your Public Library
You don’t need a paid subscription to start learning to code — if your local library partners with Treehouse, you already have access! Get Treehouse for Free Treehouse is available for free to patrons of participating public libraries across the... The post How to Get Free Coding Courses Through Your Public Library appeared first on Treehouse Blog .
Treehouse BlogMulti Author Blogsread at source
A Developer’s Honest Take on AI: An Interview with Gustavo Medori
iOS developer Gustavo Medori has shipped software for a decade. Here's how he uses AI to kill the busywork, write better code, and protect the parts of the job he loves. The post A Developer’s Honest Take on AI: An Interview with Gustavo Medori appeared first on Treehouse Blog .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
The Dock on Mac, From OS 10 to macOS 27
I wrote the chapter on app icon history for The iOS App Icon Book . The other day I found an old note stashed away where I had started researching the macOS version of that chapter (which Michael ultimately ended up writing). At the time, I didn’t know what to write. I mean, how do you write a history of icon design for the Mac? It’s rich! To get my creative juices flowing, I started by researching the different docks in macOS through the years and compiled them all into a single graphic (big shout out to this compilation of images on 512 Pixels ). I just wanted to preserve and archive that image. Check out the high-res version here . That’s it, that’s the post. Reply via: Email · Mastodon · Bluesky
LogRocket BlogCompany/Startup Blogs11 min read
Chrome vs. Safari vs. Firefox: AI Debugging MCPs Tested
Can AI agents debug React bugs across browsers? I tested Chrome, Safari, and Firefox debugging MCPs on four bugs to compare their findings, workflows, and effectiveness. The post Chrome vs. Safari vs. Firefox: AI Debugging MCPs Tested appeared first on LogRocket Blog .
W3C BlogBrowsers, engines, etc.5 min read
We’re on a roll - EPUB 3.4 is coming
The Publishing Maintenance Working Group at W3C has been quietly working on yet another update for the EPUB3 standard, and we're excited to share what we have been up to. Our goal is to not only maintain the EPUB standard, but do our best to keep it in line with the needs of industry, and this update does exactly that. Your existing books do not need to change, if they conform to previous EPUB versions, they will conform to EPUB 3.4. Content you create today will automatically conform as well.
Engineering at MetaCompany/Startup Blogs8 min read
Shipping Media Over QUIC at Meta Scale for Instagram Live Ingest
Meta has begun deploying Media over QUIC (MoQ), an emerging open protocol for real-time video streaming at scale. MoQ will help simplify our protocol stack for live streaming video and enhance overall user experience for live video. We’re sharing how we shipped MoQ on Instagram Live ingest, and what the future looks like from here. [...] Read More... The post Shipping Media Over QUIC at Meta Scale for Instagram Live Ingest appeared first on Engineering at Meta .
DigitalOcean BlogMulti Author Blogs5 min read
Introducing DigitalOcean Agent Data Services: The Data Foundation for Agents
Agents are only as capable as the context they can reach. An agent with reliable access to the right information makes decisions grounded in fact; one without it guesses. And the work agents produce is itself a critical asset: every execution trace, intermediate result, and…
DigitalOcean BlogMulti Author Blogs4 min read
Introducing DigitalOcean Insights: Built-in Observability for Your Agents, Applications, and Infrastructure
Coding agents have changed how fast teams ship, and more of the software they ship now includes agents. A production agent spans model calls, routing decisions, tools, and the infrastructure underneath. When an agent run slows down or fails, the cause could be anywhere in that…
DigitalOcean BlogMulti Author Blogs6 min read
Introducing DigitalOcean Signals and Simulations: see how your agents and models really behave in production, then test the fix before it ships
You ship an agent. It mostly works. Then the feedback loop becomes a support ticket: a user got the wrong answer, a tool call looped four times, a refund went out that shouldn’t have. Standard observability tells you the system was up and the latency was fine. It can’t tell you…
Frontend Masters BlogMore Front-end Bloggers11 min read
Tips and Tricks for Using TanStack Start with Cloudflare Durable Objects
Some hot tips on using middleware for simplifying Durable Object creation and managing WebSocket connections.
SyntaxPodcastsAudioListen
1046: The Pi Updates are insane
Scott, Wes, and CJ break down the latest Pi updates, including durable long-running agents, Codemode, and MCP support, then debate whether pull requests are dead in favor of issues. Plus Supabase picks up Turso, Screen Studio 4 drops, JavaScript Composites bring value-based…
Bruce Lawson's personal siteMore Front-end Bloggers2 min read
EU, EU, It’s off to work we go
Last week, I had an exciting few days in Brussels, meeting with the European Commission with other browser vendors, technology groups, and representatives of a Big Tech Gatekeeper about the latter’s sustained and relentless malicious compliance with the Digital Markets Act, the EU’s law “to make the markets in the digital sector fairer and more […]
AdactioTop Front-end Bloggersread at source
Back at the Vehicle Assembly Building …twenty years after I got to go inside it: https://adactio.com/journal/1208
remy sharp's b:logTop Front-end Bloggers4 min read
My AI policy [blog]
There's no shortage of commentary on LLM usage and I've penned several posts that have never left draft status because in part I can't articulate exactly what I want, and partly because there's so much noise around the subject. That's been true for the last few years but as an senior (and old) developer I think it might be useful to at least put in writing what happens to be true for me this moment in October 2026. Fair notice: this post will only briefly cover any policy I personally hold and quickly move into my opinions about LLMs and our community.
Twilio BlogMulti Author Blogsread at source
Now in GA: Power Live Conversations with Segment Conversation Memory Integration
Eliminate agent cold starts with Segment Conversation Memory Integration. Sync customer profiles into live channels for real-time, context-aware AI interactions.
Jim Nielsen’s BlogMore Front-end Bloggersread at source
The Fascinating World of Domains
Pete Millspaugh has a lovely article over on WIRED that peers into the world of domains. (If you’re as interested in the esoteric details of domains as I am, follow Pete’s writing at Dot Com Press .) You should just read the article, but here are a few things that stood out to me. The .com Registry Did you know who the registry for .com is? I didn’t. The registry that owns .com, Verisign, makes a billion and a half dollars every year just by keeping the lights on. To Verisign’s credit, the lights never go out: It reports 100 percent uptime over the past 28 years. It’s a pretty slick business model, watching over a database of words and collecting annual renewal fees. Warren Buffett thought so too, investing in Verisign in 2012, when its stock price was about one-eighth what it is today. Why is it simultaneously surprising and not surprising that the company running .com makes billions and has 100% uptime over almost three decades? Maybe GitHub should reach out for some advice, lol. Buying Domains Is a Spy Thriller Apparently the last time you could buy generic top-level domains (gTLDs) was in 2012. So now that ICANN is providing another window of purchases in 2026 — and nobody knows when another window will open — there’s a lot of interest in capitalizing on these moments for new gTLDs. most organizations [are] extremely secretive about their plans. One applicant from the last round tells me companies were flying around the world, meeting in person to avoid any risk of digital leaks, avoiding Gmail for fear of Google spying. Instead of email or video calls, she flew to London, then to Madrid. “We did it all in person. People got a little weird and scary, super paranoid.” There’s a certain irony to this — people flying around the world to conduct business on owning a piece of the internet because they don’t trust the internet. It appears the future of the internet is to be negotiated offline lol. More Domains = More Online Handles We haven’t had new gTLDs since 2012. Why do we need more? I can imagine a future where expressive top-level domains become our personal brands, identities on the internet. This is already true in some nerdy corners of the web, like on Bluesky, where your domain is your username. I don’t call my internet friends Neal and Luke, I call them neal.fun and luke.zip. Instead of joining the land rush to grab our username on each new social media site, we’ll carry our domain around the web with us. I’m telling you, domains are the OG handles on the internet . More domains mean more opportunities for individual expression at the root layer of internet infrastructure — that makes sense for a web that’s meant to be worldwide! You Think You Have a Domain Vice? As developers, we often joke about our addiction to buying domain names for our side projects. But buying a domain name — e.g. my-side-project.com — is child’s play compared to buying a generic top-level domain name (gTLD). That’s where the domain whales are. ICANN charges a $227,000 application fee for each string, to recover the cost of running the program. The $36 million or so that Nova will need to cover those fees […] is coming from the personal bank account of Yoni Belousov, a reclusive domain investor (industry jargon: “domainer”) who’s been in the business since he was 14 years old. Next time somebody asks me what I’d do with an insane amount of wealth, I now have the jargon for an answer: “I’d become a domainer.” A Few Fun Facts to Close A few things about domains I didn’t know until I read this: all two-letter extensions are off the table. Those belong to countries, like .co in Colombia and .me in Montenegro and .ai in Anguilla. If you want to run a geographic TLD, like .nyc or .paris, you need approval from that municipality your string can’t be too similar to an existing one (.corn is a no-go; looks too much like .com) certain special strings are off limits, like .icann and .www (wouldn’t that be a trip). www.www would be a baller domain! Just think of the recursion you could do with that on the subdomain level. Reply via: Email · Mastodon · Bluesky
Stéphanie WalterMore Front-end Bloggersread at source
Pixels of the Week – October 11, 2026
This week brings some resources on neurodiversity and cognitive accessibility, explains why design struggles to justify its value to business, and how AI exposes design’s craft crisis. Also don't miss some nice accessible color combinations and funny wildlife photos.
David BushellMore Front-end Bloggers4 min read
D-Bus Hell
The time has come to address the elephant in the comments. Whenever my blog hits a place with a comments section the most predictable comment I see — besides some variation of “this idiot is utterly delusional!”† — is this one: “lol I read the domain as “D-Bus Hell” Random commenter”I’d prefer if […]
Adam ArgyleTop Front-end Bloggersread at source
WWW Ep255 Meta Harnesses Medical Midjourney And Specialists
Ep #255 Meta-Harnesses, Medical Midjourney, and Why Specialists Are Cooked Robbie and I are back together, talking token limits, OpenCode burning budgets, work trees for parallel agents, Impeccable's art direction grilling, CodeRabbit versus Copilot for PR reviews, self-heal…
Ethan MarcotteTop Front-end Bloggers2 min read
All watched over by algorithms of loving grace.
If you liked that, have you considered you might enjoy: more of that
Lea Verou’s blogTop Front-end Bloggers27 min read
The best way to use icons in Web UIs
TL;DR? Jump to demo I’ve always had a soft spot for icons 1 . Not only do they add polish to a UI, they can also tangibly improve usability. Familiar icons help users find what they need quickly, since we recognize pictures much faster than we read words. And as a web architect…
Sara SoueidanTop Front-end Bloggers3 min read
My top picks for Interop 2027
I love the Web platform, and it’s a privilege that we, the web community, get a chance to influence what browser makers work on every year. For the second year in a row, Firefox has created a page that allows us to rank the Interop 2027 features that we care about the most.…
Jens Oliver MeiertTop Front-end Bloggersread at source
A Short Theory of the Political Spectrum
On who votes left, right, and center—and what it means to vote either left or right.
Go Make ThingsMulti Author Blogs1 min read
We live in a world where...
I saw this on Mastodon today (saved the image, lost the source), and it just brought me so much joy! Did you know that we live in a world where octopuses dream, otters have a favorite shell that they carry with them all their lives, cows have best friends, and bees have different “dialects” of dance depending on the region? Or that cats purr at a frequency that accelerates bone healing, the forest grows flowers first after a fire, and dolphins give each other names and respond to them, and Penguins make proposals by giving each other the most beautiful pebble?
HTML All The ThingsPodcastsAudioListen
Is the AI Bubble Starting to Pop?
Is the AI bubble finally starting to pop? In this edition of the Web News, Matt and Mike discuss OpenAI reducing usage on its $200 Pro plan, the enormous cost of AI infrastructure, and growing questions around whether businesses are actually seeing enough financial return from…
AdactioTop Front-end Bloggersread at source
Going to Florida. brb
Zell LiewMore Front-end Bloggers2 min read
Redefining My Relationship With You
I no longer knew how to define my relationship with the people who read my work. Not teacher and student, not leads and customers. Here's where I eventually settled: fellow wayfarers.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Order in any language with Gemini 3.5 Live Translate
DigitalOcean BlogMulti Author Blogs5 min read
DigitalOcean MicroVMs: Fast, isolated compute for your AI agent infrastructure
Coding-agent platforms, sandbox products, and code-execution services all need the same thing: isolated machines that start up fast, retain their state between bursts of work, and don’t consume compute when idle. If you build it yourself, you’ll have to lease compute capacity…
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
🤖 Operating real hardware with Gemini AI
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
n8n Full Course – Architect Scalable AI Automations from Scratch
Adrian RoselliMore Front-end Bloggers4 min read
Decorative Images…
…aren’t a thing. Three hand-drawn lines curling together like an S or three skinny snakes trying to spoon. At least not as far as people are concerned. Yes, this is an absolutist take, but sometimes it’s necessary to take the absolutist position to force someone to justify their own reasoning.…
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Building low-latency remote robotics with Gemini
Frontend Masters BlogMore Front-end Bloggers7 min read
5 Good Choices for HTML Containers
Divs and spans are fine, but purposefully meaningless. Often the meaning actually matters, so let's look at some of those situations.
DequeMulti Author Blogs4 min read
Deque named a Leader in the 2026 Gartner® Magic Quadrant™ for Digital Accessibility
Deque has been recognized as a Leader in the 2026 Gartner® Magic Quadrant™ for Digital Accessibility! The post Deque named a Leader in the 2026 Gartner® Magic Quadrant™ for Digital Accessibility appeared first on Deque .
Christian HeilmannTop Front-end Bloggersread at source
Returning to Bengaluru in November, see you there.
After rocking San Jose with our World Congress, WeAreDevelopers’ next port of call is Bengaluru in India. See you there on the 25th of November for two days of excellent talks and workshops !
LogRocket BlogCompany/Startup Blogs10 min read
10 React features that let you delete old code in 2026
React 19.3 and modern CSS make several common patterns unnecessary. Here are 10 features that let you delete old React code and simplify your apps. The post 10 React features that let you delete old code in 2026 appeared first on LogRocket Blog .
PiccalilliMore Front-end Bloggersread at source
The Index: Issue #201
2027 web platform feature ranking This is the second year we're doing this, and last year's 1900+ rankings not only helped us push the right proposals in the Interop process, it was also used to prioritize web platform feature development in Firefox. Certainly beats thumbs up in GitHub issues! Make your voice heard. This hue shall pass A fabulous colour contrast tool from the great folks over at Clearleft. Dark forestry Not only an outstanding and important piece of writing, but the design and effects are lovely. Destroy any website This is very fun! Destroy your least favourite websites (like the pre-loaded example) for a vibe boost. css.earth Explore earth, other planets and even other galaxies, all rendered with HTML and CSS, via PolyCSS . The box model and box sizing Here's one from the Piccalilli archives that you might have missed to wrap up this issue. P.S. this is a good website from personalsit.es . Sponsor message Has your organisation gone too deep with frameworks or [gasp] LLMs and feel like you're stuck? We're helping clients get away from that noise and instead, focusing their efforts and budgets on actually doing stuff that will help them reach their goals. We do all of that while running this publisher, Piccalilli too! Our availability opens up again in late 2026 into 2027, so check out what we're about. Maybe we can be the key that unlocks your success in 2027 onwards. Check out our work
W3C BlogBrowsers, engines, etc.5 min read
What’s new in the W3C Website Design System
A significant update to the W3C Website Design System was published at the end of September 2026. Here’s what changed and why.
Robin WieruchMore Front-end Bloggersread at source
Toward a Self-Improving Agentic Code Review Loop
An agentic code review loop where each developer fires their own AI review skill at pull requests, the author's agent answers, and a scorecard rates each skill.
remy sharp's b:logTop Front-end Bloggers1 min read
Tell Me Everything (Amgash, #5) [book]
I wasn't a fan of the narrative technique, or, particularly the characters. I'm sure it didn't help that it turned out that this was the last book in a five book series, where I've been told the previous books had built up the characters, and this was more of a bringing together of the characters from the previous books. This book was picked up because of recommendation, but I'd obviously missed the fact it was entry 5 of this world. The narrative tone reminded me a lot of the narration used in the movie 500 Days of Summer. Which, felt fine for a chapter or two, but for me, it felt a bit tired and forced the further I got. I also often lost track of the characters that weren't the main Bob and Lucy. One character is given months (or weeks?) to live, but I couldn't tell who they were or whether they were important (thankfully the book did give me a helping hand as a reminder once the character was dead!). I found some of the choice of dialogue odd and jarring at times, like the random use of "dickwad". Then finally the characters, literally telling each other everything… I just didn't care. The stories the characters Lucy and Oliver exchange are questioned once as to the point. As the reader, the thought had crossed my mind already. I feel like my review is particularly hard going on the book and maybe this story, even with a brief randomish murder thrown in, might have made a good conclusion to the characters, but as someone picking it up "cold", it didn't quite keep my interest.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Building with Gemma 4
Bram.usMore Front-end Bloggers4 min read
<calc-input>, a custom input element that accepts mathematical formulas
Continuing my streak of small form-related Custom Elements (like ) , I built . It’s a custom input element that accepts mathematical formulas — such as 2 + 3 or (2 + 3) * 4 — and automatically toggles between showing the formula on focus and the calculated result on blur.
Bram.usMore Front-end Bloggers2 min read
caniname: CLI tool to check project name availability across Netlify and NPM (and other sources)
Whenever I build a new tool or custom element (like or ), I always end up doing the same manual dance: checking if the package name is still free on NPM and if the matching .netlify.app subdomain is still unclaimed on Netlify. To automate that check, I built caniname .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
“Getting off the Modernization Treadmill”
My notes from this talk by Alexander Petros at Big Sky DevCon 2026 . Alex starts by noting how “modernize” used to mean something along the lines of “update this thing that was made before I was born”. But now “modernize” means something more like “update this thing from 5-10 years ago” (hence the framing of the talk, the “modernization treadmill”). Using a real-world example of an incredibly slow website that was required to access state-sponsored programs for welfare, Alex points out the disparity in conditions between those of us who make software and those who have to use them: The people who develop these websites are usually doing so on high-powered internet connections and high-powered devices, but they're not using them in the conditions that the people who most need those benefits are going to be. Then he shows a Reddit thread where somebody essentially posted, “I’m having problems with this website. I’ve been waiting for months for my application to go through. Any suggestions?” And one Reddit user responded, “The best thing you can do is go into the physical office, get a case worker, and your problems will be solved within the hour.” The irony. I guess we've come full circle now. It used to be: “Don’t talk to anybody. It’s faster and more convenient to use the website!” But now it’s: “Don’t use the website. It’s faster and more convenient to talk to somebody!” Have we failed at making websites? And is our failure, at least in part, rooted in the fact that we don’t leverage the basic tools for making websites: HTML, CSS, and (in a distant third) JavaScript? Alex goes on to argue that the technologies of the web have an ideological bent and, if used as designed, can solve so many of the performance, accessibility, and usability issues that plague so many websites. The grain of the web’s technologies are rooted in these values: User-friendly Backwards- and forwards-compatibility Long-term viability Universal accessibility Which means if you use them as intended, they are optimized to deliver outcomes rooted in those same values. So if you like those values and you want those outcomes, use the platform. Take HTML, for example. Here’s Alex: HTML does [performance improvements] for you for free. If you've coded your website in a proper, semantical, structure HTML style, it will just get better over time at zero cost to the people who built that website HTML is your friend. HTML won’t give you up or let you down . HTML will make it difficult for you to make a bad website. Write it in to the requirements of the project you’re doing that it work without JavaScript. Not necessarily that it doesn’t have any JavaScript, but just that the core functionality of the website can happen without JavaScript. If you do this […] you will find that it’s very hard to deliver a bad web page because the structure that HTML requires is one that fundamentally is good for the user, performant, and cost effective. Technologies are imbued with culture, which influences what you do and how you do it. If you can align your ideological beliefs with your technological choices, you might end up with an outcome that aligns with your values — who would’ve thought, eh? A lot of modern software developers come from websites like Facebook, they come from big tech companies [who] fundamentally have a different set of priorities. Their job is to keep you on the website as long as possible so that you consume more ads. But that’s the opposite set of requirements and priorities that the government needs to be doing, which is to build something that is clean, quick, efficient, and gets you in and out as fast as possible. So [I tell people] that the technology they use comes from [an] ideological place. But there are different ideological places that produce different technological results and if we start from those through lines then we can produce services that help people who need them. The ideological principles of the web are well established : users over everything else. If you use HTML as much as possible, you’ll make something that’s as user-friendly as possible on the web. Reply via: Email · Mastodon · Bluesky
Next.js BlogLibraries, Frameworks, etc.read at source
Upcoming Next.js Security Update for Upstream Vulnerabilities
Next.js plans to publish an out-of-band security update next Wednesday, October 14, 2026, addressing two Critical and one High severity vulnerabilities in upstream dependencies.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
📷 Searching for images from text with EmbeddingGemma 2
Web Tools WeeklyMulti Author Blogsread at source
Web Tools Weekly Issue #690
Media Tools, JS Plugins, Git/CLI Tools
AdactioTop Front-end Bloggersread at source
The people holding up the internet | Data Drop
Bringing receipts for xkcd.com/2347 . adactio.com/links/22794
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
TanStack Router Course – Loaders, Auth & Type-Safe Routes
W3C NewsBrowsers, engines, etc.read at source
First Draft Notes: Verifiable Credential Threat Models
The Verifiable Credentials Working Group has published a series of W3C Working Group Note Drafts for threat models.
The Mozilla BlogBrowsers, engines, etc.1 min read
Firefox partners with Anschutz Entertainment Group at the Uber Arena and Uber Eats Music Hall in Berlin
Firefox is teaming up with AEG and taking to the main stage at Berlin’s biggest and best indoor arenas. Starting this October, as the indoor music scene heats up and the basketball and ice hockey seasons are in full swing, fans flocking to the Uber Arena, Uber Eats Music Hall, and Uber Platz will see […] The post Firefox partners with Anschutz Entertainment Group at the Uber Arena and Uber Eats Music Hall in Berlin appeared first on The Mozilla Blog .
Ana RodriguesMore Front-end Bloggers1 min read
My Interop feature ranking
The Firefox team just launched a website that allows users to rank the Interop 2027 proposals that they care about. And I care about things - for selfish reasons and for work. And that's a challenge. I want to rank things that only benefit me and my blog but I also want to rank…
Bootstrap BlogLibraries, Frameworks, etc.read at source
Bootstrap 6 Alpha
DebugBear BlogCompany/Startup Blogs28 min read
Astro Tutorial: Make a Static Site with Interactive Components
This Astro tutorial shows how to build an interactive blog using file-based routing, build-time and live content collections, and the islands architecture.
Swizec TellerMore Front-end Bloggers1 min read
When code is cheap, judgement becomes the job
Software engineering has changed in the last 2 years. Here's how that looks without the fluff. Real company, big stakes, finite token budget
Twilio BlogMulti Author Blogsread at source
Building a Multi-Channel AI Agent with Twilio Conversations and eve
Learn how to build a multi-channel AI agent with Vercel's eve and Twilio Conversations. Unify SMS and WhatsApp into one thread, give your agent long-term customer memory with Twilio Memory Store, and swap the LLM with one line of TypeScript.
Twilio BlogMulti Author Blogsread at source
[Webinar] Master automated journeys
Move beyond unwanted communications. Drive immediate ROI and hyper-relevant marketing.
Twilio BlogMulti Author Blogsread at source
September 2026 Fraud Update: Phishing Trends, Third-party Safety and Latest Releases
Discover Q3 2026 fraud trends. Detect the latest phishing tactics, secure third-party credentials, and learn about Twilio's new OAuth 2.0 and IP ACL security tools.
Twilio BlogMulti Author Blogsread at source
Unified Customer Communications: Twilio Voice, SMS, and WhatsApp meet Salesforce
Unify Twilio Voice, SMS, and WhatsApp directly in Salesforce with the new Partner Contact Center Integration. Eliminate the tab-swapping now.
Google for DevelopersYouTube ChannelsVideoWatch on YouTube
Real-time golf swing coaching with Gemini 3.8 Live
Jens Oliver MeiertTop Front-end Bloggersread at source
On the Decision Underlying Decorative Images
What would change the judgment people have to make about images?
Bram.usMore Front-end Bloggers3 min read
Bringing Microsoft Internet Explorer’s proprietary “Interpage Transitions” back to Modern Browsers using the View Transition API
Back in late 2024, I started working on a fun end-of-year side project named ie-page-transitions . It”s a CSS + JS library that brings back Microsoft Internet Explorer’s proprietary “Interpage Transitions” to modern browsers, powered by the View Transition API. After sitting unfinished for a while, I finally got all 23 classic effects over the finish line and published the project on page-transitions.style .
The Mozilla BlogBrowsers, engines, etc.1 min read
Jambu Palaniappan and David Parry-Jones join the Mozilla Corporation Board of Directors
Today, we are very pleased to announce two new additions to the Mozilla Corporation Board of Directors: Jambu Palaniappan and David Parry-Jones. As we build the next chapter of Mozilla, we’ve been focused on bringing people onto our Board who combine deep operating experience with a real commitment to the values Mozilla stands for. Jambu […] The post Jambu Palaniappan and David Parry-Jones join the Mozilla Corporation Board of Directors appeared first on The Mozilla Blog .
Heroku BlogCompany/Startup Blogs2 min read
October 2026 Update: Heroku Innovations and New Features
Heroku’s continuous platform innovation keeps operational overhead out of your path while delivering our industry-best developer experience. We handle everything below your code, from the core infrastructure and OS maintenance to runtimes and dependencies, so developers can stay focused on building. You can see that ongoing innovation across our latest releases in managed data services, […] The post October 2026 Update: Heroku Innovations and New Features appeared first on Heroku .
LogRocket BlogCompany/Startup Blogs14 min read
Your UX copy style guide has a new audience
Your UX copy documentation isn't just for human writers anymore. Here's how to build a copy ecosystem that AI tools and agents can understand too. The post Your UX copy style guide has a new audience appeared first on LogRocket Blog .
W3C NewsBrowsers, engines, etc.1 min read
W3C issues press release about developing Verifiable Credential Barcodes
In a press release we present the concept of real-time revocation that is being developed in the W3C Verifiable Credentials Barcodes specification to protect physical documents.
Level AccessCompany/Startup Blogs8 min read
What Sets Sustainable Accessibility Programs Apart
Sustainable accessibility programs share seven characteristics that reinforce each other: governance, communication, training, workflow integration, executive support, procurement requirements, and shared culture. If The post What Sets Sustainable Accessibility Programs Apart appeared first on Level Access .
David BushellMore Front-end Bloggers4 min read
A sustainable web career, for when all this blows over
For better or worse the web industry is going through a bit of a phase. The reasons are largely irrational. People still need the web, nothing has changed there. Regardless, the financials of this business are a struggle. Longterm career prospects are looking dicey. […]
DigitalOcean BlogMulti Author Blogs2 min read
Account Control, Every Layer: From Your Organization to Every Session
If you run a multi-team organization, you need to see what each team can provision and change it without filing a ticket. If you sign in to DigitalOcean every day, you want to decide how long you stay signed in. Two new controls handle both. Resource Limits gives org Owners and…
LogRocket BlogCompany/Startup Blogs6 min read
How Meilisearch uses LogRocket’s MCP to improve free trial experience and feature adoption
Discover how Meilisearch uses LogRocket's MCP and Galileo to improve free trial conversion and adoption of newly shipped features across its Cloud product. The post How Meilisearch uses LogRocket’s MCP to improve free trial experience and feature adoption appeared first on LogRocket Blog .
LogRocket BlogCompany/Startup Blogs20 min read
The top 10 AI agent frameworks to know in 2026
Explore the top AI agent frameworks in 2026 and compare how they handle tools, memory, structured output, streaming, and step limits. The post The top 10 AI agent frameworks to know in 2026 appeared first on LogRocket Blog .
LogRocket BlogCompany/Startup Blogs9 min read
How to resolve cross-functional conflict in AI product development
Resolve cross-functional conflict in AI product development with a 3-step framework to clarify risks, assign owners, and align teams to act. The post How to resolve cross-functional conflict in AI product development appeared first on LogRocket Blog .
CSS WizardryTop Front-end Bloggersread at source
Web-Perf Wednesday 012 – Return to the Unresolved Trace
A quiet week leaves room to revisit unfinished performance investigations and turn partial evidence into a clear next step.
SyntaxPodcastsAudioListen
1045: Who can actually max out 5 AI subscriptions?
Scott and Wes answer listener questions about what replaced blogging, what to do while your AI agent works, and who should pay for token costs. They also cover keeping agents from going off the rails, getting your team excited about AI, and staying motivated when AI takes the…
The Mozilla BlogBrowsers, engines, etc.4 min read
100 days later: Microsoft still steers Windows and Copilot users to Edge, everywhere the law lets it
One hundred days ago, Mozilla released Over The Edge 2.0, the second independent report from leading experts on deceptive design Dr. Harry Brignull and Cennydd Bowles, on how Windows, Edge, Bing, and Copilot are designed to steer people away from the browser they chose. We published the report, and the researchers published the evidence for […] The post 100 days later: Microsoft still steers Windows and Copilot users to Edge, everywhere the law lets it appeared first on The Mozilla Blog .
Chris HawkesYouTube ChannelsVideoWatch on YouTube
Can You Still Say “I Built This” If AI Did the Coding?
CodePenCompany/Startup Blogs1 min read
443: Image Hosting is Quite Powerful on CodePen
We’ve made several upgrades to uploading/hosting images on CodePen lately. One change, moving to the open-source file-uploading library Uppy, was driven by business concerns. But the benefits are good for everyone: uploads are faster, and the money we saved let us increase file size limits and total storage limits on the higher PRO plans. Plus, […]
Ana RodriguesMore Front-end Bloggers1 min read
Bookmarks that were lingering in tabs
I was a big girl this week and I finally read and closed all the tabs I had open. Here's my picks from that selection. Fresh browser start - here I go. Bookmarks related to tech and web development Native HTML and CSS Features That Replaced JavaScript by Ronalds Vilciņš. What…
Frontend FocusMulti Author Blogsread at source
JPEG XL finally ships in Chrome
🚀 Frontend Focus #761 — October 7, 2026 | Read on the web How Fast is the Web? Exploring Billions of Real-User Measurements — A new free BigQuery dataset of anonymized real user Core Web Vitals from 10,000 large Cloudflare-fronted sites, updated daily and covering Safari/WebKit as well as Chrome. The post covers some of the initial findings, including how downloads are usually the smallest part of a slow LCP. Townsend & Jansma (Cloudflare) Would You Let Your AI Agent Grade Its Own Homework? — Agents write code faster than ever. They even review their own work. But who’s reviewing them? Dropbox, Notion & ElevenLabs don’t take the risk. With Meticulous, every change is exhaustively verified, with zero developer effort. Meticulous sponsor Shipping JPEG XL in Chrome — Chrome 155, released yesterday , introduced support for JPEG XL ( .jxl ) images. They can offer 30-50% better compression than JPEG, HDR support, and more. Versari, Firsching, Jägenstedt (Chrome for Developers) 📺 If you're catching up on Chrome, ▶️ this video from Matthias Rohmer runs through DevTools changes across versions 151 to 153. The State of HTML 2026 Survey is Open — Devographics’ annual look at how we use HTML, forms, web components and browser APIs is back, and should take 10-15 minutes. Browser vendors use the results to prioritize their roadmaps, so your answers help decide what ships next. Devographics ⚡️ IN BRIEF 🌐 The site on reserved domain example.com has just been redesigned , including a new JavaScript file to serve multi-language content (and here's why ). 🆕 Rachel Andrew rounds up what’s new to the web platform in September , a bumper month for Baseline with progress() , alpha() and revert-rule all now Newly available. ♿️ WebAIM's eleventh Screen Reader User Survey is out: 1,780 responses, JAWS back ahead of NVDA, and 68% saying web accessibility has stagnated or worsened in the past year. ✏️ SVG 2 has moved closer to becoming a formal W3C Recommendation , with an updated Candidate Recommendation focused on cross-browser consistency. 📙 Articles, Opinions & Tutorials ✈️ Airline Sites are Slow, but They Don’t Have to Be — Some interesting analysis of the performance of over 100 different airline websites using real-user metrics. A massive ~95% fail the Core Web Vitals test on mobile. Ben Schwarz CSS Does Your Tooltip Positioning Now — Matt takes a look at CSS Anchor Positioning, namely anchor-name and position-anchor , and how to use them to build tooltips and dropdowns that hold their position through window resizes and page scrolls. Matt Smith 👀 Meanwhile, Patrick Brosset digs into why title tooltips are so underused and floats the Edge team’s proposed stylable ::tooltip . Your Agent Can Write a Mobile App. Expo Gets It onto Real Phones — Expo is mobile AI infrastructure: your agents build, test and ship iOS and Android apps, and you approve what goes out. Expo sponsor Why Don’t More Developers 'Use the Platform'? — Nolan, a big Web platform advocate, casts a thoughtful look at the common alternative, exploring why we often rebuild things platforms already give us in JavaScript and CSS. Nolan Lawson The Road to Dart Sass 2 — Sass may not be the default choice it once was, but the project keeps moving. Dart Sass 2.0 is now slated for release in December. It’ll turn most of 1.x's deprecation warnings into hard errors. Natalie Weizenbaum A Sustainable Web Career for When All This Blows Over — It’s fair to say the industry is in a state of flux, and David offers a strongly opinionated take on the skills worth investing in, and the technologies and trends worth rejecting. David Bushell Understanding Bidirectional Text: A Guide for Developers Mojtaba Seyedi Implementing children-count() in Modern CSS Temani Afif How Do Passkeys Work? Andrew Lombardi 🧰 Tools, Code & Resources Panda CSS 2.0 — A major release of a popular CSS-in-JS library. 2.0 keeps the same css() API but gets a much faster compiler ( rebuilt in Rust ). Other new additions include publishable design systems, view-transition styling, an ESLint plugin, and a new typography preset. Adebayo, Adebesin, Adebayo (Panda CSS) Shaders: 190+ WebGPU Effect Components, Now Open Source — The rendering engine, framework bindings, and shader components from this WebGPU effects library are now MIT licensed. It's a visually striking collection of components for React, Vue, Svelte, Solid, and plain JS. Simon Le Marchant Build Forms That Look Native in Your Frontend — Customize SurveyJS built-in themes or use adapters for Bootstrap, MUI, and shadcn/ui. Self-hosted, backend-agnostic, JSON-driven. SurveyJS sponsor 📺 Video.js 10: Five Players Rebuilt as One — Sixteen years after helping move video off Flash, Video.js has been rebuilt from scratch, bringing in the teams behind Plyr, Vidstack, Media Chrome, and Mux Player. You get React and web components, a 60% smaller bundle, and skins you can make your own. Steve Heffernan CSS Doodle: A Web Component for Drawing Patterns with CSS — A way to use CSS as a language for drawing patterns, backgrounds, icons, and generative decorations. The site is packed with examples . Released this week, v0.55 adds numerous new tiling types. Yuan Chuan pure-web-bottom-sheet: A Bottom Sheet Built on CSS Scroll Snap — A performant, lightweight, and accessible bottom sheet web component powered by CSS scroll snap and CSS scroll-driven animations. Plenty of examples here . Vili Ketonen 📰 Classifieds 📸 Add barcode scanning to your web app using STRICH , a lean JS SDK. Free 14-day trial, try the demo app today! Don’t just code—grow as a technologist - Explore new technology, sharpen your existing skills and build new ones when you work in tech at Fidelity. 🎨 One for fans of gradients Gradient Visualizer: Debug Multi-Layer CSS Gradients — Paste a background value made up of gradients and Ahmad's new tool pulls each layer apart so you can inspect it alone, view the stack in 3D, replay it as a timelapse, edit it and get fresh code back. Ahmad Shadeed
Twilio BlogMulti Author Blogsread at source
Avoid Sending SMS to Landlines in PHP with Twilio's Lookup v2 API
In this tutorial you'll learn how to filter out landlines (and other non-mobile numbers) in PHP using the power of Twilio's Lookup v2 API.
Level AccessCompany/Startup Blogs7 min read
How to Improve Mobile Accessibility Testing Without Slowing Delivery
Mobile accessibility testing keeps pace with delivery when checks run where teams already work. Our mobile tools put testing and guidance inside builders’ The post How to Improve Mobile Accessibility Testing Without Slowing Delivery appeared first on Level Access .
Next.js BlogLibraries, Frameworks, etc.read at source
Next.js 16.4
Next.js 16.4 introduces lazy compilation, smaller Turbopack output, React 19.3 features, Cache Components improvements, and new developer tooling.
Jim Nielsen’s BlogMore Front-end Bloggersread at source
Apple’s App Icon HOA
Louie Mantia has a great post about how app icons are converging towards the squircle on iOS and macOS. His post reads like a history. If you’re wondering, “How did we get to a place where all app icons are becoming squircles?” Mantia’s post answers that question by starting at the beginning. It’s hard to walk away from Mantia’s article without a sense of empathy for Apple’s position, like “Oh ok, I get why they’re doing what they’re doing. It makes sense.” Apple’s direction is kind of a tacit acknowledgement to how most people are shipping app icons. Apple is “paving the cowpaths” as it were, because most app icons are just brand logos. Nowadays, it’s these bland, big-business logo icons that make up a good chunk of iOS Home Screens and macOS Docks, instead of the beautiful, illustrative app icons that used to dominate our devices. So many app icons are just logos in a squircle, so Apple made tools like the Icon Composer and glass effects to help make that approach look good by default. Apple is helping most people most of the time make app icons that don’t suck. [Apple is making] it easier for all apps to fit in on the platform, especially apps built by designers and developers who aren’t familiar with how to make an icon that looks great next to first-party icons. The net effect is: some of the platform’s best icons look worse, while some of the platform’s worst icons look better. In other words, this new approach raises the floor but it also lowers the ceiling. The thought that came to mind as I read Mantia’s post was, “This reminds me of HOAs.” I grew up in a neighborhood where anyone could do anything with their homes and yards, so you had this eclectic mix throughout the neighborhood — everything from “Wow, that house is so unique!” to “That thing is a dump.” Somewhere along the way HOAs became more prevalent (in my neck of the woods), where all the houses in a neighborhood have to meet a certain standard — and so they all start to look the same. It keeps the dumpy things out, yet nobody stands out . That’s kinda what macOS feels like right now with regard to app icons. For better or worse, squircle app icons are Apple’s HOA and we’re all just living in it. Reply via: Email · Mastodon · Bluesky
Heroku BlogCompany/Startup Blogs5 min read
A New Era for Managed Databases: Announcing Heroku Postgres Advanced
At Heroku, we’ve built a platform that allows developers to focus on their apps, not managing their infrastructure. Heroku Postgres Advanced carries forward that philosophy as our next-generation database offering, available today. The post A New Era for Managed Databases: Announcing Heroku Postgres Advanced appeared first on Heroku .
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Build & Train a GLM-5.3-Flash Model From Scratch with Python
The Mozilla BlogBrowsers, engines, etc.4 min read
Strengthen your online security for free with Firefox
Every October, Cybersecurity Awareness Month reminds us the importance of protecting our digital lives. The theme for 2026 is ‘Don’t Make It Easy for Them,’ with the National Cybersecurity Alliance (NCA) and the Cybersecurity and Infrastructure Security Agency (CISA) providing simple, actionable steps users can take to make it harder for cybercriminals to attack. Everyone […] The post Strengthen your online security for free with Firefox appeared first on The Mozilla Blog .
Christian HeilmannTop Front-end Bloggers1 min read
TLDRs newsletters are TLDR so I wrote a converter that gets all the important links
Much like a lot of other people, I subscribe to quite a few of the newsletters of TLDR. As I re-use the things I found there in own publications, I did find the newsletters – ironically – not quite succinct enough to go through them quickly. I wanted to skip sponsored sections and other cruft, […]
Dave RupertTop Front-end Bloggersread at source
Recursion is DEAD and HTML killed it
There’s a new web platform feature flighting in Chromium called Declarative Partial Updates . This proposal adds a new element which enables out-of-order streaming of content. Rather than the traditional way of building the HTML you need on the server, or sending JSON down to a JavaScript framework, you can staple HTML onto the initial response and use the syntax to inject that content into the placeholder. A simple example of this would be: ` syntax for ` ` becuase the HTML highlighter likes that better. Either syntax works. --> Hello world First post The late-arriving template will auto-magically get slurped up into the placeholder slot. Unlike the element though, once you use it’s done. You burned that card and it doesn’t work a second time. If you want to chain more than one post together and create a feed of posts, you can repeat the placeholder with the same at the bottom of the appended item. The essence of the feature is that you can open a server connection, never close it, and keep pumping more HTML onto the page. The element does the heavy lifting of taking that new HTML and putting it in the right place. There’s lots of potential here (e.g. my beloved HTML Imports?) but I think the canonical use case would be how an LLM chatbot could stream in content that generates at different speeds: Markdown formatted text goes here... Hi, sorry I took so long! Here's a whole-ass application. That will create some other problems like FOUC and LCP hurk-jerk you will have to manage –and that’s for another post– but lazy-loaded HTML rendering adds an interesting capability to the web platform. It took me a couple walks around the neighborhood to understand how I could potentially use and out-of-order rendering on a normal workday. Rendering a threaded response The rule of thumb I came up with is that might be a pattern to reach for any time where you want important content to show up first and then you kind of don’t care when other content shows up below the fold. A post with nested replies A product with reviews that show reviewer profile cards A gigantic pull request with nested comment threads A book with authors that have related books You get the gist, a classic relational data situation. The example I’m going to go with is a nested reply thread like a Reddit thread or Bluesky post. Building a nested thread of replies isn’t rocket science, but you have to do a lot of for-looping to first build up the tree of posts you’re going to render… → Fetch all root posts in thread → Loop through posts → Fetch replies for each root post → Loop through root post replies → Fetch replies for each reply → Add nested reply to parent reply → Add parent replies to root posts → Walk tree → Send HTML for all posts Assuming the data tree gets stitched together by the database or our server backend, your first attempt at rendering nested content will probably be the most literal approach: create a for-loop for each level of content… // pseudo-code const postsTree = postsDb.find(p => p.thread_id === 'abc123'); postsTree.map(post => html` ${post.username} ${post.body} ${post.replies?.map(reply => html` ${reply.username} ${reply.body} ${reply.replies?.map(nestedReply => html` ${nestedReply.username} ${nestedReply.body} ` ).join('')} ` ).join('')} ` ).join('') An obvious limitation here is that we’ve hard-coded ourselves to three levels of nesting. Adding more nesting would require backend and frontend work and break the classic “ Rule of three ” programming rule. Hard-coding your nesting is the “dumb way” to render nested content… but also the normal way. Making this a bit smarter and more infinite Philosophically-speaking, UI should be agnostic to the content it renders. If nested content is a possibility, a content renderer should theoretically support infinite nested content. Practically-speaking, most of us have learned that it doesn’t matter if the Product Manager’s Jira ticket says “The max is two nested items”, there will always be at least three. The smarter way to render this is to use recursion because nested for-loops are BAD and you are DUMB if you use them. But if you obfuscate the nesting into a function that calls itself, then that’s ✨recursion, baby✨ and you’re a GENIUS programmer. Jokes aside, recursion will clean up the template code and simplify getting HTML on the page. → Fetch all posts in thread → Loop through posts → Build a map → Loop through map → Build a tree → Walk tree → Send HTML for all posts Before we grabbed all posts, then all replies, then all nested replies. Walking that tree is a bit slow. We can make that faster by fetching a flat list of posts in the thread and then assemble a tree. You can do this with some crafty LEFT JOIN SQL statements but its generally easier on the server. buildPostTree : building a nested tree from a flat list of posts function buildPostTree(posts) { const postsById = new Map() // Loop through posts to build map for (const post of posts) { postsById.set(post.id, { ...post, replies: [], }) } const roots = [] // Loop through map values to build tree for (const post of postsById.values()) { // Parentless posts must be roots if (!post.parent_id) { roots.push(post); continue; } // Find this child's parents! const parent = postsById.get(post.parent_id) // Add child post to parent's replies parent.replies.push(post) } return roots } Then instead of hard-coding nested for-loops, we can recursively walk the tree to render the HTML for the posts. // pseudo-code const posts = postsDb.find(p => p.thread_id === 'abc123'); const postsTree = buildPostsTree(posts); const renderPost = (post) => html` ${post.username} ${post.body} ${ // Loop through post replies and render the HTML post.replies?.map(reply => renderPost(reply)).join('') } `; postsTree.map(post => renderPost(post)).join('') That’s a more robust and understandable way to handle infinitely nested content. Our code is more durable to future changes. Need more or less nesting? Sure, we don’t care. That’s a data concern not a component rendering concern. Even though we’ve simplified and reduced lines of code, both strategies have the same bottleneck: You need to build the entire tree before you can render the HTML . The user waits for us to stitch the data together and the user waits for us to walk the tree and render synchronously. That’s two render blocking operations to put a thread onto the page. The element gives us another path… Infinitely nested threads with out-of-order HTML First we setup our page to receive the HTML, like we did at the top of this post… And our rendering strategy gets a lot more simple… → Get all posts in thread → Loop through posts → Send HTML for post And code looks a little something like this… /* get all root posts */ const posts = postsDb.find(p => p.thread_id === 'abc123'); const renderPost = (post) => html` ${post.username} ${post.body} ` /* loop through posts */ posts.forEach(post => main.appendHTML(renderPost(post)) ); No tree building is happening whatsoever on the server. The microsecond after we generate the template in the middle of the for-loop we can stream/send the HTML directly to the client and let the page assemble itself. No recursion, no pre-assembly required. It all snap-fits together without us imperatively injecting content. A brief demo in CodePen. I recommend reading the HTML first, imagine that’s the order it streamed in, then viewing the assembled tree of nested comments. See the Pen LEFT JOIN with HTML by Dave Rupert ( @davatron5000 ) on CodePen . It’s worth noting a thread of 10K posts will crush the browser, so you’ll still have to load responsibly and think about a “Show more comments” buttons. I’m hand-waving the details here, but this gets easier too because your loadMoreComments() function doesn’t need to know anything about where to append those new comments, it can just staple them to the bottom of the page. I’m excited about the possibilities here of removing ancillary content or UI from the critical rendering path. I’m interested in HTML’s newfound ability to self-assemble content and relationships in a declarative way. And maybe… he says with a glimmer of hope in his eyes… HTML Imports will be resurrected and there will be peace on Earth.
LogRocket BlogCompany/Startup Blogs10 min read
Choosing the best color combinations for UX design
Colors in UI aren't just decoration. They're the key to emotional impact, readability, and accessibility. This blog breaks down how to pick colors that don’t just look good — they work for your users. The post Choosing the best color combinations for UX design appeared first on LogRocket Blog .
W3C NewsBrowsers, engines, etc.1 min read
Updated Candidate Recommendation: Scalable Vector Graphics (SVG) 2
The SVG Working Group published Scalable Vector Graphics (SVG) 2 as a Candidate Recommendation Snapshot and invites implementations.
QuirksBlogTop Front-end Bloggersread at source
The cost of AI
At Fronteers Dark Mode last Friday I had AI conversations with three or four people. At the end of each of them I asked: “Yeah, but what would those tokens really cost?” They didn’t know either, but agreed that it was the right question to ask. Is AI truly cheaper than the workers it replaces? I encourage you to do the same. After each conversation about AI, ask what the true cost of the tokens would be. Nobody knows, but getting used to asking the question is a good idea. Costs and benefits AI is being very heavily subsidised right now. I still don’t know what the true cost of a token is. Nobody does. (This analysis says “hyperscalers have spent about $1.2 trillion on AI investments while only making $277 billion in revenues.” That’s $4.33 spent for every dollar earned.) On the consumer side, this is the first time the tech giants release a service that is not “free” — and that after years of training us to expect free goodies everywhere. They can fund their free social networks and such by productizing the consumer, but there’s no way they can port the ad model to AI. The money just isn’t there. (The total global ad market in 2025 was about $300 billion. This analysis estimates that the hyperscalers need at least $1.3 trillion per year over the next ten years. That’s four global ad markets and a bit.) Also, this is the first time the tech giants release a service that is cordially disliked by a large percentage of the world — maybe even to the extent that it influences sentiment about the tech giants themselves. But consumer opinions don’t matter, it’s the corporate market that counts. So the question becomes: can AI efficiency save the world about 25% of its total IT costs? (The 2020 global IT market — untouched by AI — was estimated to be $5.2 trillion, and as we saw we need at least $1.3 trillion per year to keep AI running. The savings would not only come from IT, but IT would be expected to deliver the lion’s share.) Factories and tradesmen Quick history lesson: the industrial revolution, which replaced tradesmen by huge factories, didn’t take place because people liked huge factories, but because they produced stuff cheaper . Right now I’m not seeing any evidence that AI is cheaper than the workers it replaces, especially not when taking into account the amount of checking that AI errors and bugs still require. I could be wrong, but it’s unprovable either way, and the numbers I quoted above seem to support my viewpoint. The tech giants are creating something with the appeal of a 19th-century factory, complete with oppressed and estranged workers, without delivering the sole benefit: cheaper IT and other services. Do they create their factories because they like them? Regardless of the costs? Did that make them bite off more than they can chew? Hey, I’m just asking questions. Recent articles For this article I read a few overview stories about the cost of AI — and not in my local anti-AI socialist rag website, but in the sort of unsuspect capitalist publications that Very Serious Investors read. I found that, while the authors still sprinkle sentences throughout their articles about “obvious benefits,” and company X saving $50K, and the general wonders tech brought to the world, they start to be pretty critical of the huge expenditures. To me, this sounds as if the writers are preparing the world for a shifting viewpoint; for the moment that money will run out, unlikely as that might appear to anyone within the bubble. Oh, yes, we could be wrong, mr AI True Believer who pays for a subscription to the magazine we write these words in ... except that we’re not. To me, it sounds as if at least part of the capitalist class is waking up to the fact that AI is just a bubble. And once enough people say “AI is just a bubble” it becomes reality. So help it come about. After each conversation about AI, ask what the true cost of those tokens would be. Sow doubt. Hint at bubbles. Let’s hope the bubble bursts soon. It’s only after the inevitable crash that we can assess the true cost — and benefits — of AI.
Smashing MagazineThe Giants6 min read
A Practical Guide To Naming Things
A practical guide to naming UI components, with useful resources, naming conventions, and structures. You’ll find more [useful guides](https://www.smashingmagazine.com/category/guides/) and [online workshops](https://smashingconf.com/online-workshops) here on Smashing Magazine, so make sure to browse and explore.
HTML All The ThingsPodcastsAudioListen
AI Basics for Small Businesses
AI can save small businesses time, reduce repetitive work, and unlock capabilities that previously required more people, but where should you actually start? In this episode, Matt and Mike break down how small businesses can introduce AI without getting overwhelmed, from…
Brad FrostTop Front-end Bloggers1 min read
Laser Storm
This weekend, I took Ella to her cousin's birthday party at Laser Storm on McKnight Road north of Pittsburgh. The small structure is now dwarfed by much larger, newer chain stores, but entering the doors transported me to the same amazing world my cousins and I would visit as…
JavaScript WeeklyMulti Author Blogsread at source
Why don't more developers 'use the platform'?
#805 — October 6, 2026 Read on the Web JavaScript Weekly Why Don't More Developers 'Use the Platform'? — A thoughtful look at why we often rebuild what browsers already offer, from someone usually on the platform's side. It kicked off an extensive Hacker News discussion , with many arguing native controls and APIs are too limited or awkward to depend on. Nolan Lawson Free Course: Build Ambitious Modern Interfaces Faster with OpenAI Codex — Join Katia Gil Guzman for this free Codex course and learn how agentic coding has changed frontend development. You'll cover setup, prompting, feedback, skills, automations, deployment and more. Master.dev sponsor Preact 11 Released — Six years after the road to Preact 11 began, the latest version of the popular "alternative to React with the same modern API" is here, with improved hydration, automatic ref forwarding, and an ESM-only package. The upgrade guide covers the changes. The Preact Team Nuxt 4.6: A Big Step Towards a Server-Agnostic Nuxt — A meaty release for the full-stack Vue framework with a server layer that no longer ties you to Nitro (pure Vite server builds are now an experimental option), built-in sessions, Vue Vapor support, and a new CLI ( Nuxt CLI 4.0 ). Daniel Roe IN BRIEF: Prolific package maintainer Sindre Sorhus has disabled outside pull requests due to AI contribution spam, though he'll keep maintaining his projects. SWC also now restricts PRs to trusted contributors. 📊 The JavaScript Framework Benchmark site has added results for Chrome 154 covering 196(!) ways to implement an app, how each performs, and how large they are. npm stage publish can now create new packages , so automated workflows no longer need a manual first publish. RELEASES: Remix 3.0 – No official post yet, but the new stable release of the rebuilt full-stack framework, with no React required. The RC release post has more info, though. Ink 8.0 – The popular TUI renderer now requires React 19.3 and adds scroll offsets for building scrollable views, now common in coding agent UIs. Inferno 10 – React-like UI library built for raw rendering speed. Now shifts more work from runtime to its JSX compiler. Qwik 2.0 RC , pnpm 12.10 , Ember 7.3 , Video.js 10 , ESLint 10.12 📖 Articles and Videos Getting Started with Claude Code Mods — Claude Code has just added support for Mods , a way to extend the agentic coding harness with JavaScript so you can watch events, change behavior, and draw custom UI. Addy builds a mod here in ~80 lines that shows a live 'forecast' of your context window. Addy Osmani Friendship Ended with Deno, Now Node is My Best Friend — David felt good about Deno in 2021, but has now returned to Node and is surprised by how much has improved. He ported his site generator back with barely any changes, and doesn't hold back on where he thinks Deno went wrong. David Bushell 100+ Search Engines. One Simple API — Build with real-time data from Google, YouTube, Amazon, and more. SerpApi delivers structured JSON and Markdown for AI agents and your apps. Skip scraping headaches. SerpApi sponsor I Tested 11 HTTP Resilience Libraries — How do fetch wrappers like Ky , ofetch , and Wretch behave if you abort mid-retry? The author of ffetch tested eleven options and found five still attempt retries after cancellation. Gabor Koos 📄 How Booking.com Cut Its Node.js Service's Costs by 38% – By moving from PM2 to Watt 's worker threads and reworking load balancing and worker configuration. Ilya Malyavin 📄 Readable Regular Expressions for TypeScript, Inspired by Emacs – Rebuilding the SemVer regex from named, composable pieces. Rahul M. Juliato 📄 On Automatic Type Refinements – Which filter callbacks let TypeScript narrow an array's type, and which don't. Radosław Miernik 🛠 Code & Tools TanStack Charts 1.0: A Composable, Typed Charting Library — A framework-neutral way to declaratively specify visualizations in typed, tree-shakable JavaScript which are then rendered with SVG or Canvas. The extensive sample catalog (with code) shows off line, bar, pie and area charts, plus heatmaps, box plots, histograms, etc. Tanner Linsley SvelteKit 3: 'The Same Framework with a Little More Polish' — Svelte's official app framework gets a cleanup/polish release. Few new features, and remote functions remain experimental, but existing users have some work to do to migrate (though sv migrate can handle much of it ). The Svelte Team Publish to Miris Straight from Adobe Substance 3D Painter — Stop sharing decimated 3D content. Stream your high-fidelity Adobe Substance 3D Painter assets via the Miris plugin. Miris sponsor Effect 4.0: A Smaller Core, Rebuilt Runtime — A ground-up rewrite of the popular library for building reliable apps that handles tricky stuff like resource management, concurrency, retries, typed errors, and more. v4.0 boasts 5x smaller minimal bundles and 86% less memory used per concurrent task. Sebastian Lorenz Lightpanda 1.0: A Headless Browser for Automation — A headless browser built from scratch in Zig. With no graphical rendering, it uses a fraction of Chrome's CPU and memory (~35MB memory in a run I just did!). Drive it with Puppeteer/Playwright or, the fun bit, script it with plain JavaScript . Francis Bouvier eslint-cssicorn 0.1 – Sindre Sorhus has moved the CSS-only rules from his mammoth eslint-plugin-unicorn ESLint ruleset into a new CSS-focused package. pixelmatch 8.0 – Tiny, fast pixel-level image comparison library. Switches to a more perceptually accurate color metric, so diff counts will change. PR Comment Inbox – Nicholas Zakas's email-style inbox for GitHub review comments, with threads and read/unread state. Electron Forge 8 – Toolkit for building, packaging, and publishing Electron apps. Redux Toolkit 2.13 – The official Redux toolset adds TypeScript 7 support. 📰 Classifieds Bring your wild ideas to Mozilla Festival . Gather and connect with other developers and creatives in Barcelona, Oct. 28-30. Get your badge . Trigger.dev runs your TypeScript agents and workflows in production, with queues, retries, and no timeouts on long-running tasks. 📢 Elsewhere in the ecosystem 📊 The State of Devs 2026 survey results are out with over 5,000 developers sharing their thoughts on software development career security, AI use/sentiment , hobbies , and the workplace (including income). Why does example.com now load JavaScript? The IANA says since most clients hitting the site are automated and don't load JavaScript, it's a way to save bandwidth. There's more on the site's recent redesign here . Netlify explains how it reduced Edge Function invocation latency by ~5x , switching from hosted V8 isolates to Unikraft MicroVMs on its own edge network. 🤖 Pi 1.0 , the minimal Node.js-based coding agent, adds MCP and non-LLM model support through 'Codemode'. They also launched an experimental Pi Durable runtime for running resilient, long-term agent flows.
Jens Oliver MeiertTop Front-end Bloggersread at source
HTML Minifier Next: Exempt CSS, JS, and SVG From Minification, Collapse No-Break Spaces and Empty Attributes, Higher Correctness
On the latest changes to the super-configurable web page minifier.
Level AccessCompany/Startup Blogs13 min read
Focus Indicators: WCAG Requirements and Best Practices
A focus indicator is the outline or highlight, often called a focus ring, that marks which interactive element has keyboard focus as you The post Focus Indicators: WCAG Requirements and Best Practices appeared first on Level Access .
LogRocket BlogCompany/Startup Blogs10 min read
Enhancing UX design with lateral thinking techniques
For when you're stuck in a UX design rut next, bring in lateral thinking. Lateral thinking will take your designs in fresh directions, solving tricky problems with unexpected creativity. The post Enhancing UX design with lateral thinking techniques appeared first on LogRocket Blog .
Go Make ThingsMulti Author Blogs1 min read
No human is illegal
I just ordered a bunch of leftist patches to put on my backpack, because virtue signaling is good, actually. One patch I kept seeing over and over again is… No human is illegal on stolen land. I get it. It’s supposed to point out the hypocrisy of complaining about illegal immigration in a country that was founded by stealing it from and genociding the people who already lived here.
SyntaxPodcastsAudioListen
1044: Ruby on Rails is Dead
Scott, Wes, and CJ ask whether Ruby on Rails is really dead (and whether Rust is just Rails you don't have to read), then dig into Meta's new Muse agent, which is free, comes with its own VM, and is already reading messages nobody asked it to. Plus: upm, a tiny TypeScript npm…
Level AccessCompany/Startup Blogs9 min read
AI vs. Closed Captioning: Understanding Audio Accessibility Compliance
Captions are written text meant to account for audio content such as spoken dialogue, important sounds, and other audio information. They may also The post AI vs. Closed Captioning: Understanding Audio Accessibility Compliance appeared first on Level Access .
Speckyboy Design MagazineDeveloper/Designer News4 min read
Should Your Agency Charge Less for AI-Assisted Solutions?
Should clients pay less when agencies use AI? Learn why faster WordPress development still depends on expertise, testing, planning, and clear communication about results. The post Should Your Agency Charge Less for AI-Assisted Solutions? appeared first on Speckyboy Design Magazine .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
“I’m Embarrassed on Behalf of the Tech Industry”
That’s something Ben Thompson said a recent episode of Dithering . He was referring to how he felt while trying to help his mom get control of her digital life. Everything was just too hard and convoluted and he felt embarrassed as someone who works in tech. That very same evening, I randomly got this text from a family member. I hear this a lot from family and friends who sit outside tech. “Nothing works.” “Everything is hard to use.” “I can’t make sense of this.” And to them I am a representative, a connection, to this pain in their lives. And I, too, am embarrassed on behalf of the tech industry — by our collective failure. Reply via: Email · Mastodon · Bluesky Related posts linking here: (2026) “Getting off the Modernization Treadmill”
Stéphanie WalterMore Front-end Bloggersread at source
Pixels of the Week – October 4, 2026
👉🏻 Curated weekly UX Research, Design & Tech resources: building a general-purpose accessibility agent, how to make your design system AI-ready, WCAG 3.3.4 error prevention explained, why you got faster but your company didn't, the AI delegation matrix for your UI, flame painting art on copper, curated branding inspiration, how mechanical watches work, maps of book characters' journeys, free no-login utility tools.
Go Make ThingsMulti Author Blogsread at source
Radical books that aren't a slog
I’m loving the resurgence of zines! Violet B. Fox just released on on radical books that aren’t a slog, a collection of books for leftists that aren’t super dense theory by old dead white guys. There’s so many good ones to choose from, but I started with The Parable of the Sower by Octavia Butler. For posterity, I’ve saved a local backup, but you should visit Violet’s site instead.
Christian HeilmannTop Front-end Bloggers7 min read
AI needs fewer Iron Men and more Smart Hulks
When I got into machine learning it was all about making the world a better place. I worked for Microsoft and had access to projects and the smart people behind them that all were for the benefit of humans. Batch analysis of MRI scan data to allow doctors to detect cancer growths faster. Analysis of […]
phpiedTop Front-end Bloggers2 min read
Debugging download initiator
I was recently debugging why an image was being downloaded. In Chrome devtools, in the network panel, the column for "initiator" was pointing to the end of the HTML document. But that wasn't true and I suspect when Chrome gives up on trying to figure out the actual code location, the default is the HTML […]
Jens Oliver MeiertTop Front-end Bloggersread at source
We Need to Protect Muslims
The West has developed a self-fueling story about Muslims that is used to wage a non-scrutinized forever war on Islam. Both the story and the war need to stop.
DXDMore Front-end Bloggersread at source
Não é Só um Logótipo, literalmente
A identidade visual do podcast "Não é Só um Logótipo" é um convite à descoberta de um sem fim de curiosidades sobre a disciplina do design. O conteúdo Não é Só um Logótipo, literalmente aparece primeiro em DXD .
Adam ArgyleTop Front-end Bloggersread at source
Page View Count Regression Fixed
Page view counts regressed Oct 1 and were fixed just now. Hopefully those historical counts can be retrieved or fixed; working on it.
Jeffrey Zeldman PresentsMore Front-end Bloggersread at source
Another Saturday, Another Song.
🎧 “Side Two” LP in progress. At 14 songs, it is nearly complete. I expect to release it before the year’s end. The post Another Saturday, Another Song. appeared first on Jeffrey Zeldman Presents .
David BushellMore Front-end Bloggers4 min read
Friendship ended with Deno, now Node is my best friend
It’s finally time I go crawling back to Node! I’ve been using Node heavily this month on a SvelteKit client project. When did Node get so good‽ Deno has been my go-to runtime for so long I forgot how to Node. Now I’m back, I find all the ECMAScript† sugar is supported and the old annoying APIs have […]
HTML All The ThingsPodcastsAudioListen
AI Has Made Skilled Labour Almost Free (And It’s Scary)
Our world already has an instant gratification problem and AI has somehow made it worse. It's making skilled work faster and cheaper than ever, which in turn makes us more impatient than ever. Why should we spend a week learning a new SEO tool or a new coding method when we can…
remy sharp's b:logTop Front-end Bloggersread at source
Firefox version 157 is very round (and how to make it less round) – creolened.com [link]
This is very useful. I do like the direction Firefox design is going, but the very round tabs make me think the hit target for tabs - especially when pinned and muted - is much smaller than it actually is. Original link: creolened.com/firefox-version-157-is-very-round
Adam ArgyleTop Front-end Bloggersread at source
Transitioning Field Sizing Content With CSS
Neat CSS trick: Use anchor to track the size changes in a textarea (or whatever) and transition instead of instantly update 🤘🏻 See on Codepen
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Kotlin Course For Beginners – Full Tutorial
W3C BlogBrowsers, engines, etc.4 min read
W3C Newsletter - September 2026
W3C President and Interim CEO Dominique Hazaël-Massieux shares timely and notable highlights and information selected from the busy and prolific work last month at W3C.
PiccalilliMore Front-end Bloggersread at source
The Index: Issue #200
It's issue #200 of The Index! A real milestone that we should celebrate with a dedicated CSS links issue. Let's get stuck in to the good links . Multiple-column layout, rows, rules, and floats The Boss™ is here with some fantastic news on layout capabilities that we can use. They should really open the door to more creative layouts, which is great. Our CSS isn’t opinionated enough This really resonates as Craig is describing issues that inspired CUBE CSS . Semantic state changes are a really good way of doing things too. Controlling when CSS custom property values are computed Jake, the fountain of technical knowledge, is here with another must read. CSS scroll-triggered animations are here, and I completely missed them A very good guide on scroll-triggered animations with some sage advice on usage too. Not many better people to cover this than Cyd! Detect when elements overlap with CSS We're enjoying how Ahmad is covering stuff that will be tripping people up all the time in their jobs as front-end devs. It's great to see. A pragmatic guide to modern CSS colours - part one Here's one from the Piccalilli archives that you might have missed to wrap up this issue. P.S. this is a good website from personalsit.es . Sponsor message Mozilla Festival is co-built by developers and designers from around the world. Come gather, share, and connect with us in Barcelona, October 28-30. Last year, more than 2,000 people came together to unlearn old ways of building tech. This year, with eight tracks and a spot in Barcelona's Open Tech Week, MozFest gives your ideas room to run wild. Join us for three days of conversation and hands-on building. Get your badge
web.dev BlogMulti Author Blogsread at source
New to the web platform in September
Discover some of the interesting features that have landed in stable and beta web browsers during September 2026.
ESLint BlogLibraries, Frameworks, etc.2 min read
ESLint v10.12.0 released
Highlights Support for tokens and comments in SourceCode Rule authors often work with ESLint’s SourceCode object, which represents the JavaScript source code being linted. Its getText() , getLoc() , and getRange() methods have always accepted a node, token, or comment, but the…
Hidde's blogMore Front-end Bloggers5 min read
How IT can get more sustainable quicker: notes from Green IO
At Green IO this week , I heard about offshore wind, sustainability data, and cloud certification. This post has some notes I took. They all in some way relate to what can get us to more sustainable IT quicker. Better sustainability data It's really hard to reason about your…
Adam ArgyleTop Front-end Bloggersread at source
Front End Fast Money With Kevin Powell
30s on the clock, how well do my CSS answers stack up against Kevin 's audience? Watch on YouTube
Mux BlogCompany/Startup Blogs3 min read
Tune AI workflows before you build: Introducing Mux Robots playground
Run Mux Robots AI workflows on your own video before you build. Tune parameters, compare runs side by side, and copy an agent prompt to take it to production.
Cloud FourCompany/Startup Blogs5 min read
How Do We Write About AI in Web Development?
I love writing about the rapid pace of change in web development, so why am I struggling to write about how AI is affecting my career?
The Mozilla BlogBrowsers, engines, etc.6 min read
Under the Hood: Prompt tuning Shake to Summarize for recipes
Following the rollout of Firefox’s Shake to Summarize feature to Android devices this May, we wanted to take a closer look at the modeling work behind the feature. In a previous blog post, we discussed our model selection process. Now that Shake to Summarize has been available on both iOS and Android for a few […] The post Under the Hood: Prompt tuning Shake to Summarize for recipes appeared first on The Mozilla Blog .
Web Tools WeeklyMulti Author Blogsread at source
Web Tools Weekly Issue #689
JS Utils, Git/CLI Tools, JSON/DB
Speckyboy Design MagazineDeveloper/Designer News14 min read
40+ Best Logo Fonts for Designers in 2026
Browse 40+ of the best logo fonts for branding and identity design, including minimal, script, geometric, vintage, display, and handwritten styles. The post 40+ Best Logo Fonts for Designers in 2026 appeared first on Speckyboy Design Magazine .
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Build your own Mobile App with Codex GPT-6 Astra - Full iOS and Android Course
DequeMulti Author Blogs11 min read
How to test MCP Apps for accessibility, and why it matters
MCP Apps are still new enough that whatever approaches we can establish now will be the ones that stick over the long term. Which means if we can get accessibility right at this stage, it will stay right as the ecosystem grows. This is how we can avoid introducing the same problems we've had to deal with across the rest of the web for so long. The post How to test MCP Apps for accessibility, and why it matters appeared first on Deque .
DigitalOcean BlogMulti Author Blogs8 min read
Introducing Agent Droplets: everything an agent needs, one price, one bill
Last week we launched DigitalOcean Managed Agents in public preview: a managed runtime, governed access to more than 16,000 tools, serverless inference, and persistent memory and storage, all on one cloud. Developers have already started thousands of agent sessions. Today we’re…
DigitalOcean BlogMulti Author Blogs4 min read
DigitalOcean MicroVMs: the Compute foundation for building your AI agent infrastructure (private preview)
An AI agent uses compute differently than a traditional application. Over a single session, it writes and runs code, calls a model, and waits on a tool or a person before picking the work back up. As a result, it needs real compute in short, intensive bursts. It also needs a…
Svelte blogLibraries, Frameworks, etc.read at source
SvelteKit 3 is here
Version 3.0 of SvelteKit, the official application framework for Svelte, is now available. If you’ve used earlier versions of SvelteKit, everything will feel very familiar — it’s the same framework with a little more polish, a little more type safety, and a little less junk. We’ve made migration as seamless as we can with the sv migrate command... npx sv migrate sveltekit - 3 -- tasks all -- confirm ...which will automatically migrate as much of your codebase as possible, and generate a TODO list for everything else. (If you’re agentically inclined, your robot friends will make short work of it.) To create a new app, run sv create : npx sv create my - new - app As with any major version bump there are a handful of breaking changes to be aware of, which are covered in the migration guide (or, more briefly, in the recent release candidate announcement ). Quick highlights: configuration now lives in vite.config.ts instead of svelte.config.js the $lib alias is now #lib , making use of standard subpath imports environment variables are more powerful and easier to use service workers are less boilerplatey error handling is improved across the board Are remote functions ready yet? Not quite. But it’s our top priority! Remote functions are a set of utilities for secure, efficient, type-safe client-server communication. You’ve likely seen some version of this idea in other frameworks, but we think you’re going to prefer this one. Using them requires Async Svelte , which for now requires an experimental flag. Bear with us. Join us in Ljubljana next month This is as good a place as any to remind everyone that the next in-person Svelte Summit is taking place on November 19-20 in the lovely town of Ljubljana, Slovenia. Among other things it will be a celebration of Svelte’s 10th birthday, and we’d love to share some cake with you.
Svelte blogLibraries, Frameworks, etc.read at source
What’s new in Svelte: October 2026
SvelteKit 3 is here! Check out the announcement post for the highlights, then run sv migrate to handle most of the upgrade for you. sv itself hit 1.0 on the same day, making the community add-on API official. Below you’ll find the last round of changes that landed before 3.0 - adapter API updates, zero-config deploys to Render and a few final breaking changes. Svelte Summit is also back for Svelte’s 10th birthday! It’s happening in Ljubljana on November 19-20 with talks from Rich Harris, Elliott Johnson, Paolo Ricciuti, Stanislav Khromov, pngwn and more. In-person and virtual tickets are available at sveltesummit.com . Svelte itself had a quiet month - 5.57.1 is all bug fixes and parser performance work. Per usual, there’s still plenty in the showcase... so let’s dive in! What’s new in SvelteKit 3 Adapters now receive the Svelte config as a function argument when adding Vite plugins ( 3.0.0-next.27 , #16986 ) Adapters can override getRequest and setResponse during vite dev and vite preview , so local requests behave more like the target platform ( 3.0.0-next.27 , Docs , #16753 ) Node: static assets are now served from tables recorded at build time instead of sirv ( adapter-node@6.0.0-next.13 , Docs , #16908 ) Netlify: the split and edge options can now be used together ( adapter-netlify@7.0.0-next.12 , Docs , #17045 ) adapter-auto now supports zero-config deployments to Render ( adapter-auto@8.0.0-next.4 , Docs , #16850 ) svelte-package now rewrites import aliases like #lib into relative imports, and warns when a .server. file or server directory doesn’t import a server-only module ( package@3.0.0 , #16360 , #16266 ) Breaking changes from the final prereleases The server now errors when a client-requested single-flight mutation refresh isn’t handled. Use ignore() or ignoreAll() on requested to skip a refresh on purpose ( 3.0.0-next.27 , Docs , #16892 ) Environment variables are now populated before instrumentation.server.js is evaluated, and the adapter instrumentation API has been updated to match ( 3.0.0-next.27 , Docs , #16303 ) builder.generateManifest has been replaced with builder.generateServerInstance and builder.manifest , and the Server constructor and SSRManifest type are no longer public ( 3.0.0-next.27 , Docs , #16875 , #16876 ) Query parameters beginning with x-sveltekit- are now rejected ( 3.0.0-next.28 , #17125 ) Cloudflare: the platform object has been removed. Bindings now come from an emulated cloudflare:workers module instead ( adapter-cloudflare@8.0.0-next.7 , Docs , #16754 ) Node: only static assets present at build time are served, they’re validated with content-hash ETag s instead of Last-Modified , and they only respond to GET and HEAD requests ( adapter-node@6.0.0-next.13 , Docs , #16908 ) Netlify: static files are now written based on the publish adapter option rather than reading netlify.toml ( adapter-netlify@7.0.0-next.12 , Docs , #17078 ) Upgrading an existing app? The migration guide covers every breaking change in 3.0. For all the bug fixes that went into the release, check out the SvelteKit / Adapter CHANGELOGs . What’s new in the Svelte CLI and AI Tools The drizzle add-on can now set up SQLite with Node’s built-in node:sqlite module ( sv@0.17.1 , Docs , #1206 ) sv 1.0 is out! New projects use SvelteKit 3 and #lib , and sv migrate sveltekit-3 upgrades existing apps ( sv@1.0.0 , Docs , #1138 ) The community add-on API is now official, and sv create can scaffold a new add-on from the addon template ( sv@1.0.0 , Docs , #1308 ) @sveltejs/enhanced-img is now available as an official add-on via sv add enhanced-img ( sv@1.0.0 , Docs , #1300 ) The Svelte OpenCode plugin now supports OpenCode V2 ( opencode@0.1.15 , #258 ) For all the bug fixes and performance improvements that went into Svelte 5.57.1 this month, check out the Svelte compiler’s CHANGELOG . CLI and AI tools updates can be found in the Svelte CLI and ai-tools releases. Community Showcase Apps & Sites built with Svelte Docvia is a framework-agnostic documentation library Powermove is an open-source video editor where an agent can add or fork panels, effects and workflows as extensions while the app is running npmchart lets you analyze and compare npm downloads, releases and GitHub activity for any package, from LayerChart author Sean Lynch GFX Computer is a graphics tool from Scott Tolinski built on TypeGPU and GSAP (requires HTML-in-Canvas to be enabled) PicoCAD 2 Web Viewer renders PicoCAD 2 models in the browser with optional special effects and GIF export VisuallyJs Circuit Diagram is a starter app for building an electronic circuit designer with VisuallyJs IMPIB is an in-browser image workflow for compressing, cropping and packaging responsive image variants, all processed locally with WebAssembly codecs Supvan Katasymbol Printer Web UI lets you print to Katasymbol thermal label printers straight from the browser on any computer or phone Deskfolk is a private AI team on your Mac that asks before risky moves and shows its work uptik schedules your video uploads so you don’t have to watch the clock to hit publish Mini Game Zone is a browser-based party game where two teams compete in quick mini-games like color matching and word races Arknights: Endfield Factory Planner helps you plan factories in Arknights: Endfield, with a Zig/WASM solver doing the heavy lifting SPIRAL WARDEN is an arena shooter/survival browser game with a Svelte UI on top of Phaser 3 physics Learning Resources Featuring Svelte Contributors and Ambassadors Make native desktop apps with Svelte 5 today using Custom Renderers by Code with Stanislav (featuring this WIP library ) WebMCP Challenge - GFX Computer by Scott Tolinski UI Libraries do not make your application accessible and Hello, Blog! by Enrico Sacchetti This Week in Svelte Ep. 150 Ep. 151 - Building a simple Svelte REPL Ep. 152 Ep. 153 Libraries, Tools & Components UI Components Sivir UI (last featured as Neel/UI in April 2024) has been rewritten as a shadcn-style component library built to be as themeable as possible FluentUI Svelte brings Microsoft’s Fluent UI to Svelte, now at 37 components with v0.4 Baby UI is a large collection of animation-first UI components horizon-layout is a zero-dependency IDE-style layout manager with dockable panes, draggable tabs, resizable splits and pop-out windows svelte5plus-calendar and svelte-json-discovery are zero-dependency calendar and JSON structure viewers, respectively Svelte-pasito is a dependency-free, customizable step indicator component Theme Toggles is a set of animated light/dark theme toggles that now supports Svelte Markdown Tools, Editors and Syntax Highlighting Twinkleplop is a delightful syntax highlighter from pngwn fractalpop is an SSR-safe, async syntax highlighter for SvelteKit that works with mdsvex and ships with Editor and Code Snippet components aragonite is a from-scratch markdown editor library for Svelte that doesn’t wrap ProseMirror or another editor svmd compiles CommonMark markdown straight into Svelte component source, so components and reactive expressions work inside your .md files Editable 2.0 is now in preview, letting clients edit text, images and videos directly on a Svelte site without a CMS svedocs is a customizable documentation framework built with SvelteKit Dev Tools Railway now offers an out-of-the-box SvelteKit template for hosting everything from static blogs to full-stack apps svebcomponents provides boilerplate-free, type-safe, server-renderable web components svdevtools is an early preview of a devtools package that lets you inspect components, props and state That’s it for this month! Let us know if we missed anything on Reddit or Discord . Until next time 👋🏼!
Heroku BlogCompany/Startup Blogs1 min read
Introducing Team Authorizations
Team Authorizations let you create and manage API tokens and OAuth authorizations at the team and team’s resources level instead of tying them to one person’s account. Until now, every API token belonged to an individual. When that person left the team, changed roles, or lost access, any integration, CI/CD pipeline, or automation built on their token could break without warning, and nobody else could easily see what was at risk. Team Authorizations fixes that. Your integrations keep running no matter who's on the team. The post Introducing Team Authorizations appeared first on Heroku .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
Dear Software Makers
Marques Brownlee just released a video essay titled “Dear YouTube” . I loved it. He talks about how YouTube is going to start shipping this new feature where makers can essentially publish different “variants” of their videos and see which performs best (an A/B test). Which immediately begs a lot of questions. Brownlee voices his: If I’m watching a video, do I know if it’s part of one of these A/B tests? If I’m reading the comments of a video, how do I know I saw the same thing as another commenter? How do linked timestamps work? It’s pretty wild when you think about it. I mean, imagine sending someone a link, “Check out this cool video!” And at that point you’re basically crossing your fingers, “I hope they see the same thing I did…” Marques says he spoke to some YouTube engineers about these questions and they didn’t really have answers. They were kind of just like, “We don’t know — yolo! This’ll ship soon.” So his video is a kind of plea to YouTube creators everywhere: Don’t use this feature! There’s this sort of unspoken rule of community on YouTube, that like we’re all having this same experience together — we’re all watching the same video. That is what makes it a cultural phenomenon is that we all saw the same thing […] so letting people put up two or three different videos of the same thing at the same time kind of fundamentally breaks that, which doesn't feel right. I agree, 100%. Brownlee goes on to make a lot of great points in the video that, I think, can be applicable to making software as well. A few that stood out: The skill of being a “creator” is not about maximizing views, retention, etc. It’s about finding creative ways to share stories, teach concepts, explore ideas, etc. Views, retention, etc. are all downstream of that. Making (and finishing ) something over and over and over is a better use of your time than making one thing and then trying all kinds of variants and obsessing over their varied performance. When you focus on optimizing, you end up trimming out all the creative (and fun) stuff because those things won’t, by definition, ladder up to metrics of efficiency. ( Moby Dick was not the most efficient way to tell that story.) Stand by your creative choices. Learn from your wins and failures, then make the next thing. Have some conviction. I find it interesting how Brownlee shares his opinion that YouTube spends way too much time chasing their competitors and not enough time being YouTube. Which, when you think about it, is exactly the kind of place a feature like this would stem from: an insecurity in your own creative choices. How YouTube approaches its own insecurities is now trickling down as a feature to its users. “Let’s let people make lots of variations on things, try all of them, and see what performs best” is exactly the kind of thinking you get in a platform that doesn’t know what it wants to be. So it’s left spending its time 1) doing what others are doing, and 2) following the fickle whims of whatever it can measure . It’s like this adolescent attitude of, “I don’t know what I want to be, so I’m gonna imitate my peers and let others tell me what they think I should be.” Anyway, that’s a long way of saying I liked the video. You might too. Hopefully you see the same thing I did, lol. Reply via: Email · Mastodon · Bluesky
Rachel AndrewTop Front-end Bloggers4 min read
More than words
While I’ve done a lot of reference documentation writing, my favourite type of work is writing tutorials and “how to” content. I enjoy the challenge of understanding a technology and an audience, then explaining the technology to that audience. AI seems to be particularly bad at creating this kind of content. When people try, they ... More than words
Next.js BlogLibraries, Frameworks, etc.read at source
September 2026 Security Release
The September 2026 security release for Next.js is now available
CodePenCompany/Startup Blogs1 min read
442: Pens are Actually Websites
Stephen and Chris jump on the podcast to talk about our (ahem, super cool) deployment feature. Any Pen can be a website! Well, they kinda are already, but you know what I mean. If you’re a PRO user all you do is click a button and the Pen is instantly deployed at a *.codepen.app website. […]
CodePenCompany/Startup Blogsread at source
Chris’ Corner: Sweet Typography
Choosing beautiful and unusual fonts and implementing them in visually compelling ways is certainly a way to stand out in this period of so many websites looking same-y. I figure it’s a good week to send some sweet typography links I’ve saved (in the form of screenshots): Notable to me: Apple has a dedicated icons […]
Smashing MagazineThe Giants12 min read
Under Autumn’s Spell (October 2026 Wallpapers Edition)
October is just around the corner, which means it’s time for some new desktop wallpapers! Designed by the community for the community, they’re here to brighten your screens, and maybe spark some creativity along the way.
CSS WizardryTop Front-end Bloggersread at source
Web-Perf Wednesday 011 – SpeedCurve’s INP Observer Missed Its Threshold
A long-standing lux.js bug left Event Timing on its 104 ms default, while browser releases improve testing and rendering performance.
SyntaxPodcastsAudioListen
1043: I’m Using GPUI For Everything
Scott and Wes ditch Electron and Tauri for GPUI, the GPU accelerated Rust UI framework from the Zed team. They get into its React-like API, styling that feels a lot like Tailwind, GPUI Kit components, the community fork drama, and the tiny desktop apps Scott has built with it.…
Andy BellMore Front-end Bloggersread at source
In response to “The death of web development education”
I read Mathias Schäfer’s excellent post, titled The death of web development education . I was thinking about how I can contribute to the conversation and really struggled to articulate the problem. The most effective way I can contribute, in my opinion, is a crude sketch I…
phpiedTop Front-end Bloggers2 min read
llms.txt: agent-optimization wishful thinking
Can't remember where I stumbled upon a SEO-type guide that was suggesting agent-optimization via a robot.txt-like file llms.txt which lives in the web root and helps agents use your site. Perfect, I thought, my sightread.org has a zillion options, all bookmarkable. I imagined a world where someone asks ChatGPT for a sight reading exercise or […]
DebugBear BlogCompany/Startup Blogs7 min read
Example.com Just Launched The Biggest Redesign In Decades
A look at the history of visual changes to example.com.
Frontend FocusMulti Author Blogsread at source
Why GitHub now ships more CSS, not less
🚀 Frontend Focus #760 — September 30, 2026 | Read on the web Improving Site Performance by Shipping More CSS — GitHub details how it spent three years purging styled-components and 'CSS-in-JS' from github․com in favor of CSS Modules. The result? Shipping more CSS, but GitHub reports 55% less time to server-side render a page. Josh Black and Marie Lucca (GitHub) 💡 CSS Modules isn't a browser feature or standard, but a widely supported bundler convention where classes in a .module.css file get rewritten to unique names, scoping styles per file with no runtime cost. Reports That Time Out Aren't a Frontend Bug — The report worked in testing. In production, it scans months of rows and times out before it renders. That's not a frontend bug, it's the query behind it. TimescaleDB extends Postgres so that query returns fast at scale. Get $1000 credit to start . Tiger Data (creators of TimescaleDB) sponsor EmDash 1.0: An Open Source CMS for Astro — Cloudflare's alternative to WordPress, first announced in April, has reached 1.0. Each site ships with an MCP server, meaning you can set an agent to work out of the box. To accompany the launch, plugins can now be submitted to its registry . Matt Kane How Anthropic Made Claude's Web App Faster — The tale of how a recent sprint (with Claude doing much of the work) cut Claude's time-to-typeable at the 75th percentile from 3.1s to 0.55s, from tracking layout shifts too small for CLS to flag, to a :root:has() selector costing 24ms per DOM change, and a jump caused by Chrome pre-rendering the page at the wrong height. Wang, Attard, and G (Anthropic) ⚡️ IN BRIEF 🌀 Cloudflare has launched Turnstile Spin , a way to let AI agents set up Turnstile's protection on sites you're building. Cloudflare now also has a new cf CLI client which can work with all of its APIs (unlike Wrangler). 🧭 Safari Technology Preview 253 is out now , adding support for network throttling within the Web Inspector, amongst a huge number of fixes. 🦊 Firefox 157 has a new look , which you can see in action here . 📉 In response to recent chatter around the 'death' of web education , Andy Bell shares a bleak sketch of where things stand. 🟢 Version 31 of developer browser Polypane is out now , adding a new canvas layout, elements panel improvements, and an update to Chromium 155. 🔥 Got something you want to say about HTML? Manuel Matuzović is seeking submissions for this year's HTMHell Advent Calendar . 📙 Articles, Opinions & Tutorials Detect When Elements Overlap with CSS — A neat bit of CSS lateral thinking to detect when two elements get too close or overlap, no JavaScript needed. It combines anchor positioning, style container queries, and scroll-driven animations, using an overflowing 'measure' element as the trigger. Ahmad Shadeed Connection Allowlists: Lock Down Where a Page Can Connect — Chrome 152 adds support for a Connection-Allowlist header to tell the browser which servers a page is allowed to talk to (and block everything else). Benz & Zapata (Chrome for Developers) The Future of Frontend Is Agentic: Free OpenAI Course — Join OpenAI's Katia Gil Guzman and learn how to direct Codex through landing pages, dashboards, 3D interfaces, and shipping into an existing codebase. Master.dev sponsor Which Features Should Browsers Fix Together in 2027? — Ollie shares what features he believes the web platform should focus on next year, including the Sanitizer API , focusgroup , and grid-lanes , along with what early-stage things should be in consideration for the future. Ollie Williams Extracting Grid Information Using CSS — A neat CSS-only proof of concept technique where you can get information about a grid structure (number of columns/rows, where items sit on the grid, etc). The technique relies on scroll-driven animations, oddly enough. Temani Afif The Interface Cheat Sheet — A helpful illustrated list of good UI advice, touching on points from border radiuses and transitions to the use of color, scaling and accessibility. Jakub Krehel The Era of Agentic Mobile Development Is Built on Expo — Build with our CLI and dev tools. Test on our cloud simulators. And ship with the best CI/CD for mobile development. Expo sponsor Custom Attributes Polyfill — A polyfill for the proposed Custom Attributes spec, letting you attach reusable behaviours to any element via custom attributes with their own lifecycle hooks. Keith Cirkel Fluid Typography — Donnie argues that because container widths are unpredictable, using container queries to drive fluid font sizing isn't the right choice. He suggests we stick with viewport units to retain true control. Donnie D’Amato Stop Buttons Triggering Zoom When They’re Double Tapped Andy Bell Stop Treating CSS Container Queries Like Traditional Media Queries Victor Ayomipo Component Testing: A Practical Guide for Frontend Developers Storybook Blog 🧰 Tools, Code & Resources Transitions.dev: Essential UI Transitions for Web Apps — The home page shows a series of cards, each of which displays a CSS-based UI animation. You can also install the set as an agent skill for your AI coding tool. Some of the transitions are part of a "Pro" plan. Source code . Jakub Antalik Markuplint 5.0: An HTML Linter for All Markup Developers — This well-established linter recently hit version 5. The repo is here , and you can see things in action in the playground . Yusuke Hirao Make Your Logo Brighter Than White — If you've got an HDR display, this browser-based tool will quickly make its trick clear. Drop in your logo, choose which colors should glow, and get an HDR version ready to download. Claims to make things up to 7.5x brighter in Chrome and Safari. Chris Bennett 🔊 soundcn: A Curated Collection of Sound Effects for Modern Web Apps — A comprehensive set of 800+ sounds that's installable via the shadcn registry. You can browse them by category and test each one by hovering over its card. Pay attention to the licenses of sounds you use. GitHub repo . Kapish Dima 📰 Classifieds Balance build time with your time - Our technologists do meaningful work, and we give them the support to have a meaningful life, too. 🟨 Our weekly JavaScript newsletter shares cool projects, news, and articles with over 150,000 developers. 🙈 ...and finally Here's a kinda crude font foundry that takes two web fonts and mixes their glyphs, with unsettling results. I mean, why not make a Times New Roman/Comic Sans hybrid to catch folks off guard? And, yes, you can download the end result.
Human Who CodesTop Front-end Bloggers4 min read
Introducing PR Comment Inbox
PR Comment Inbox helps authors track and respond to every conversation in a busy GitHub pull request.
The Astro BlogLibraries, Frameworks, etc.read at source
What's new in Astro - September 2026
September 2026 - Astro Germany, Evil Martians migration story, and more!
Jeffrey Zeldman PresentsMore Front-end Bloggers2 min read
My Glamorous Life: in Which I am a Target
As I limped home from Physical Therapy, a man walking in the opposite direction suddenly planted himself directly in front of me and slammed me in the head with a heavy bag. It was a cloth bag, like a backpack with only one strap. I’ve no idea what was inside it : a beat box? […] The post My Glamorous Life: in Which I am a Target appeared first on Jeffrey Zeldman Presents .
Jim Nielsen’s BlogMore Front-end Bloggersread at source
VLM Enhanced Metadata For My Icon Galleries
Confession: I got nerd-sniped by Sam Henri Gold’s request for my icon galleries: I'd like to humbly request artwork-level searching in macosicongallery.com What follows is a train-of-thought blog post as I play with what an implementation might look like. I’ve actually long-wanted something like this, e.g. let me search for “coffee” and show me all icons that have some depiction of coffee in them. Similarly, I’ve wanted some kind of “related” representation for icons. I have this today via existing metadata, e.g. “Show me other icons in the category ‘Productivity’” or “Show me other icons tagged as ‘orange’”. But I’ve wanted a more robust representation of this, so if you were looking at an icon that had a microphone in it, the site would say “Here are other icons that also have microphones in them.” And the relationship would be rich/smart enough to know that “microphone” was meant broadly, i.e. dynamic mics, condenser mics, ribbon mics, etc. So how would you do this? I could go through every icon one-by-one and classify/tag any attribute of its design that comes to mind, but that would take ages! Seems like a good use case for a vision model. Trying CLIP First, I’ll look at Sam’s suggestion: run every image through CLIP. I’m not familiar with CLIP so I start with a little research: What is it? How would I use it? And most importantly: is it free/open (because I ain’t spending a ton of money to send my thousands of icon PNGs to an AI provider via their API)? Ok, so CLIP will take an image and spit back an embedding (basically a bunch of numbers representing features of the image). When you do it with multiple images, you can then compare those embeddings to see what the model considers similar (and, if you like, set a threshold for what constitutes a “match”). After getting a sense of the task in front of me, I work with the LLM to come up with a proof of concept. I don’t need to fit this into my existing site. I just want to make one-off HTML pages where I can feel out, “Can this process create anything useful? What’s the amount of work required?” Write a script that runs a sampling of icons through CLIP’s image encoder Read the file locally, e.g. ./ios/256/${icon.id}.png 256x256 pixel icons seem to be enough, as the CLIP model I’m using preprocesses them to ~224px anyway. Create a dataset representing the “embeddings” (an array of numbers) for each icon that I get from CLIP, e.g. Array }> Create a dataset representing the top matches between different embeddings, e.g. { [id: String]: [id, id, …] } Create a clip.html file has both datasets (plus supplementary icon metadata I already have), render all the sampled icons, and support an onclick for each icon that shows the related[id] icons. This is enough to create a single HTML file where I can click on an icon and see other icons that look like it. However, I realize quickly that I’ll need to process my entire icon library to really get a good sense for how well these are matching. So I do that. [Computer goes brrrr…] Ok, now when I click on an icon that looks like a camera, I see other icons that look like cameras. Or if I click on an icon that has a checkmark in it, I see other icons with checkmarks in them — sort-of. But the results aren’t that great unless an icon is visually distinctive. I share some thoughts with Sam. He has a few other suggestions I follow. DINOv2, SigLIP2, and More Sam mentions SigLIP2 so I start with that as a keyword. The LLM recommends DINOv2 so I say, “Let’s try it”. I give that a try, creating a separate dataset and prototype (e.g. embeddings-dinov2.json and embeddings-dinov2.html ) so I can continue to view these different prototypes and compare their outputs. It’s fine. Different from CLIP. Honestly not much better. So I figure let’s try another one. I go with SigLIP2. I ask the LLM to create a page where I can compare the results. Seems like six of one, half dozen of another. One does better on some kinds of icons, worse on others. The LLM recommends that, at this point, I be done shopping models. They’re roughly the same class of tool with different tradeoffs. None are breakthroughs. So now what? Try Tagging Icons With Keywords Sam recommends another approach: You could also try handing all icons over to a VLM, having it write up a description, and embedding THAT text against what people might search for. A thoroughly detailed person might’ve done this from the start, e.g. for an icon that’s a checkmark, add the keyword “checkmark” to its metadata. That would take me forever to go back through all my icons and do — a perfect task for a computer that never tires. So I give this a try. First I need a free/open VLM. After a little research I decide to try Moondream via Ollama . I have the machine go through each image and caption it, then pull out “tags” from the caption. For the Clear app icon , I get data like this: { "id": "clear-todos-2021-01-10", "caption": "The image features a red and orange gradient background, with a white checkmark in the center. The checkmark is slightly tilted to the right, giving it a dynamic appearance. The background transitions from red at the top to orange at the bottom, creating a sense of depth and movement. The checkmark is the main object in the image, occupying most of the space and drawing attention to itself.", "tags": [ "red", "orange", "gradient", "white", "checkmark", "slightly", "tilted", "dynamic", "appearance", "transitions", "creating", "sense", "depth", "movement", "object", "occupying" ] } Then the LLM creates a single search.html file where I can test icon matches by searching for tag overlaps (or choosing one of the popular ones). So, for example, on the search page I can click on “checkmark” and see all the icons with a checkmark. Or click on “fox” and see all the icons with a fox. Matches are pretty spot to be honest. But that’s a different kind of test than what I was doing with CLIP. CLIP: click on an icon and see other icons like it. Tags: click on a keyword and see other icons with that keyword. Can I leverage tags for the same kind of “related icons” work that CLIP is doing? CLIP vs. Tags I get the LLM to cook up a single-page HTML file where I can compare “click on this icon and find other icons like it” where I’m using embeddings from CLIP vs. matching on keywords. The results seem to fare much better for CLIP. For example, here I matched on what I think of as a “checkmark icon”. You can see the approach that matches on tags didn’t work too great. I believe this is because with my simple tag-overlap approach, a distinctive keyword like “checkmark” gets diluted amongst generic tags like “square”, “blue”, and “simple”. Whereas with CLIP, if you click on an icon with a checkmark, you get other checkmarks (and not other icons that also have related tags like “square”, “blue” and “simple”). Which all makes sense. Pushing on the implementation here could help, but that’s separate work to do. So Now What? I’m not sure. While doing all of this was an interesting technical exercise, there are a few important considerations I need to think through before implementing anything, such as: What kind of functionality do I actually want? A “related icons” feature? Does it match on keywords or embeddings? A “search” feature that matches on keywords? Both? How do I build these features into my codebase now, given the thousands of icons that already exist? How do I maintain this feature in the future? e.g. every time I add a new icon to my gallery, is a VLM now a dependency of this project? Given all the above, what’s the time and money cost? I’m very picky about adding new dependencies to these icon projects. I like to think that’s why I’ve been able to maintain and continue contributing to them after so many years — because I make it easy on myself (good job, Past Jim). So, for example, if I make a VLM a dependency of this project such that every time I add a new icon I have to run it through to create the embeddings, that’s a big dependency cost IMO. I’m not sure I want to do that. That said, Apple now ships foundation models in macOS 27 available through the CLI (go ahead, try typing fm in your Terminal if you’re on Golden Gate). So if my Mac continues to be the primary machine where I add/update metadata for my icon projects, using fm would be a really easy/low-cost way to process each new icon to generate a caption and keywords for matching in search. But again, I don’t know if I want to do that. I wrote this post to try and work through what I want to do, but I am still undecided. So I guess the only thing for me to do at this point is hit “Publish” on this post and keep simmering on a decision. Reply via: Email · Mastodon · Bluesky
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Python Algorithmic Trading Course – Massive, SnapTrade & Alpaca Integrations
The Mozilla BlogBrowsers, engines, etc.3 min read
More modern. More flexible. Still Firefox.
What comes to mind when you think of Firefox? Is it our best-in-class privacy features and ad blocking capabilities? Our partnerships with Wrexham, NVIDIA or Mistral? Or maybe our adorable mascot Kit? If you’ve been following Firefox this year, you’ve seen us add new ways to get things done while giving you more choice over […] The post More modern. More flexible. Still Firefox. appeared first on The Mozilla Blog .
Netlify BlogLibraries, Frameworks, etc.read at source
5x faster Edge Functions: v8 isolates to Unikraft MicroVMs
See how Netlify rebuilt Edge Functions on MicroVMs to deliver lower latency, greater reliability, and faster log delivery.
HTML All The ThingsPodcastsAudioListen
How to Prepare for a Tech Layoff
Tech layoffs can happen with little warning, even when your company is doing well. In this episode, Matt and Mike discuss the warning signs that layoffs may be coming, how to prepare while you're still employed, and what to do when a layoff starts looking imminent. From building…
JavaScript WeeklyMulti Author Blogsread at source
A-ha's Take on Me, recreated in pure JavaScript
#804 — September 29, 2026 Read on the Web JavaScript Weekly How Anthropic Made Claude's Apps 3x Faster in Two Weeks — A grab bag of performance lessons from a sprint that cut p75 'time-to-typeable' from 3.1s to 0.55s. Em dashes ( the irony! ) pushed V8 onto a slower regex path, a stray location.reload() caused half a million hidden reloads a day, and more. Wang, Attard, and G (Anthropic) Still Writing Tests? Meticulous Is Here — Notion, Dropbox and Wiz are now using a testing paradigm they can’t ship without. Built by former Palantir engineers, Meticulous creates an evolving suite of deterministic E2E UI tests, delivering exhaustive coverage with zero developer effort. Meticulous AI sponsor Vite+ 1.0: One CLI for Your Entire JavaScript Toolchain — The single vp command can now manage your Node runtime (if you wish), package manager, dev server, linting, formatting, testing, builds and task running, configured from vite.config.ts . vp migrate can be used to bring existing Vite, Vitest, ESLint, tsup, and similar setups into Vite+. VoidZero 💡 Evan You also looks back at four months of VoidZero at Cloudflare , including work on the Oxc React Compiler, Vitest 5, stable type-aware linting, and more. IN BRIEF: The latest TC39 meeting is taking place in Tokyo now, and three iterator proposals have already advanced to stage 4: chunking , join and includes (the latter just shipped in Chrome 154 ). Jarred Sumner shared 𝕏 a preview of Bun compiling JavaScript ahead of time : 24% faster startup and 48% less memory for Claude Code, but ~2x binary size. 🎉 Cloudflare finally has a single CLI for all of its APIs . cf is written in TypeScript and covers everything, whereas Wrangler only ever covered a subset. The Angular team is building a partly Rust-powered compiler , because TypeScript 7's Go port lacks APIs the current one relies on. RELEASES: MSW (Mock Service Worker) 3.0 – The popular API mocking library is now ESM-only, adds a Vite plugin, supports GraphQL subscriptions, and can intercept page navigations and form submissions. Vinext 1.0 – Cloudflare's Vite-based Next.js reimplementation now supports the Pages and App Routers, and offers a migration path for existing apps. Mermaid 12.0 – The diagramming tool now defaults to the ELK layout engine for flowchart, class, state and similar diagrams, so existing ones will look different unless you set layout: dagre . Also adds UML use case diagrams . pnpm 12.8 , Angular 22.2 , TinyBase 10 , QUnit 3.0 📖 Articles and Videos The Grand Unifying Architecture of Frontend — SolidJS's creator argues that HTMX, React, LiveView, and friends differ mostly in how they split the same three jobs (navigation, content, and instant UI feedback) between client and server. He then shows how Solid 2.0 aims to cover the whole spectrum. Ryan Carniato Build Products That Help People Build Their Lives — Fidelity technologists can change the way our clients invest - for the better and for everyone. Fidelity Careers sponsor Optimizing Objects with null Prototypes — In V8, objects created with { __proto__: null } or Object.create(null) start in a slower 'dictionary mode'. Matteo shows how creating a plain object and then setting its prototype to null preserves fast properties. Matteo Collina 💡 If you fancy going deeper, Fast properties in V8 is the V8 team's 2017 explainer of how objects switch between fast and 'dictionary' mode. Node.js Built-ins That Replace npm Packages — A tour of 12 Node built-ins that replace common ecosystem packages along with their stability levels and some gotchas that might keep you using the established alternatives. Flavio Copes 📄 JavaScript's Greatest Pun? ${{ }} – Looks like Mustache, but ${{ name }} passes an object using shorthand properties to a tag function, preserving both the variable's name and value. Nishant Shukla 📄 How GitHub Improved Performance by Moving Off CSS-in-JS Josh Black and Marie Lucca (GitHub) 🛠 Code & Tools Size Limit: A JavaScript Performance Budgeting Tool — Set a size or load-time budget for your code and this tool can fail CI (or flag a PR) if a change goes over it. You can also do one-off checks and see visualizations of where the bytes are. Framework-agnostic and doesn’t care which bundler or CI you use. Andrey Sitnik Your UI Gets Blamed for a Slow Query — TimescaleDB extends Postgres so the query behind your UI returns fast as data grows. Get $1000 credit to start . Tiger Data (creators of TimescaleDB) sponsor EmDash 1.0: Cloudflare's WordPress 'Successor' is Now Stable — An Astro-based alternative to WordPress, now with a decentralized AT Protocol-based plugin registry and plugins that run in sandboxes. It’s not Cloudflare-only, either, as it also runs on Node.js. Buscemi, Kane, and Pham (Cloudflare) 📝 DOCX 9.8: Generate Word .docx Files from JavaScript — A comprehensive library for generating docx files. It’s only a few months since we linked to it, but this is a big release with support for charts, shapes and watermarks, plus more math notation support. ( Homepage .) Dolan Miu 🔊 wavesurfer 8.0 – Popular audio waveform renderer and player. Refactored for better efficiency, with numerous bug fixes. pretty-bytes 7.2 – Convert byte quantities into human readable strings. ✉️ postal-mime 4.0 – An email parsing library that works everywhere. Typia 15.0 – Turn pure TypeScript types into runtime validators. 📰 Classifieds The future of mobile development is agentic. For years, mobile shipped slower than the web. Now, agents are coding/testing/shipping all on Expo . 🤖 Blocking all bots breaks AI agents. Blocking none invites fraud. Fingerprint tells verified agents from bad actors. SurveyJS : Build complex forms faster with a drag-and-drop builder for any JavaScript app. Self-hosted and backend-agnostic. 📢 Elsewhere in the ecosystem 🎵 Tonny Espeset has recreated the '80s hit Take on Me by A-ha in pure JavaScript ( along with synthesized vocals! ), running through the always-entertaining Dittytoy online JavaScript music playground. Git 2.56 has just been released. It adds git add --resolved to safely stage merge conflict fixes, git branch --delete-merged for bulk branch cleanup, and more. All explained within. TanStack's Tanner Linsley built Redact , 'an alternative logical projection of React' aiming for full API compatibility with a simpler implementation, smaller bundles and better performance. It's now on GitHub . A quick history of why certain port numbers like 3000 and 8080 are commonly used in development.
Swizec TellerMore Front-end Bloggersread at source
Why I'm excited about Jev-like classifiers
zero-shot classifiers fit a nice spot on the roadmap to production AI apps
Jens Oliver MeiertTop Front-end Bloggersread at source
The AWAGAM Request Blocker, Now Available on Android
A DNS-based solution to use your blocklists also on your mobile.
Adrian RoselliMore Front-end Bloggers5 min read
#Corpowid and #Skynet Technologies Will Get You Sued
The market is flooded with so many accessibility overlays that it’s impossible to keep up. I’ve written about the biggest players (plus some also-rans) and provided enough technical details that most readers should know how to quickly evaluate their false claims and poor technology. Never mind their ethical failures as…
David BushellMore Front-end Bloggers4 min read
Shin honkaku
Shin honkaku is a sub-genre of Japanese detection fiction — and my new obsession! I’ve even designed my own book cover, scroll down to see… An intro to the genre “Shin honkaku” translates to “new orthodox” and pays homage to classic western authors of the early 20th century such as Poe, Queen, Van […]
David BushellMore Front-end Bloggers2 min read
Leaving them behind
Quick note before we begin: this is the first of two posts I’m publishing today. You’re welcome to skip ahead to: Shin honkaku — it’s far more fun! I’ve waited long enough! I’ve entertained one “wait six months” too many! The TL;DR for my updated AI policy has changed: The absolute vileness of the […]
Net NinjaYouTube ChannelsVideoWatch on YouTube
The Modern Coder Bootcamp (with AI) - New Course!
W3C NewsBrowsers, engines, etc.1 min read
Consortium Members elect Board of Directors
World Wide Web Consortium Members have elected seven individuals to the World Wide Web Consortium, Inc. Board of Directors
SyntaxPodcastsAudioListen
1042: Is the Jev Hype Overblown?
Is Jev actually a leap forward for classification or just hype and fake demos? We dig in, plus Claude Code’s new AGENTS.md support, TinyCast (the free, open-source Raycast alternative), an iPhone Fold simulator in Xcode, and a stack of dev tools you’ll want to try Show Notes…
remy sharp's b:logTop Front-end Bloggers1 min read
There are no "rogue" AI agents [link]
I've read so many posts in the last few months about AI agents going "rogue" and this post does a good job of calling absolute bullshit on the language being used by media outlets (and the tech companies themselves). AI cannot think for itself, nor can it take independent actions. But anthropomorphizing language suggesting it can is how the technology is described. I keep saying this, but the companies are responsible and should be prosecuted as such. Any other smaller company or individual caught in a cyber attack (which is what these reports actually are) would be likely jailed and banned from using computers again. Lest we forget Aaron Swartz. Original link: eoinhiggins.substack.com/[…]/there-are-no-rogue-ai-agents
DigitalOcean BlogMulti Author Blogs9 min read
How DigitalOcean Manages Credentials for Autonomous Agents
Built to align with NVIDIA’s Open Agent Safety Platform strategy for securing autonomous agents Consider an agent investigating a duplicate charge. It reads the customer’s email, checks their billing history, issues a refund, and updates a support ticket. Completing that…
W3C BlogBrowsers, engines, etc.4 min read
Recap of the web & AI international standards seminar: generative UI and WebSkill
Hosted by the W3C Shenzhen Representative Office as part of the 2026 CCF Standards Technical Conference, this seminar brought together industry experts to discuss emerging technologies and standardization challenges related to generative UI, WebSkill, and web AI.
web.dev BlogMulti Author Blogsread at source
August 2026 Baseline monthly digest
Read about various happenings with Baseline during August 2026.
Calibre BlogCompany/Startup Blogsread at source
Lazy Loading Images and Media: How Far Ahead Browsers Fetch
How far ahead Chrome, Firefox and Safari fetch lazy media, why a lazy hero image slows your page, and where to use lazy, eager and fetchpriority.
Speckyboy Design MagazineDeveloper/Designer News4 min read
How AI Can Help You Document Your WordPress Projects
Struggling to keep WordPress project notes up to date? We take a look at how AI can document code changes, explain features, store key details, and help build a system for ongoing project records. The post How AI Can Help You Document Your WordPress Projects appeared first on Speckyboy Design Magazine .
Dave RupertTop Front-end Bloggersread at source
Tupo
“Triple Threat” Josh Collinsworth has a brand new daily puzzler game called Tupo . On it’s surface it looks like a simplified 4×4 Sudoku block but with colored squares. That is the foundation for a simple ruleset: Every row and column contains each number exactly once Every row and column contains each color exactly once Every number + color combination appears exactly once Mini Sudoku with colors. Got it. How hard could it be? Hahahahahahahahahaha. You naive bastard. It’s deceptively difficult and then right when you get the hang of it, it jumps to a 5×5 grid on Friday. Simple yet complex is a difficult design concept to achieve and Josh did a great job. I got a sneak peek of the game a couple weeks ago and it quickly earned the top spot in my daily puzzle playlist. Before Inkwell Games , before Clues by Sam , I play Tupo. If you’re a fan of daily puzzlers, try Tupo. It won’t disappoint. → Play Tupo
Remote SynthesisMore Front-end Bloggersread at source
Wired's Women in Tech Survey
Tech is a tough place to work right now, but especially for women.
remy sharp's b:logTop Front-end Bloggersread at source
A Trump team wants to automate U.S. Web Design System accessibility testing. Experts are worried. [link]
This is gut wrenching. This is another example of cost cutting exercises that affect minorities. This isn't a story about AI, it's (another) story about pulling funding from the places that need to support those that need it to increase the profits of those who don't. Most accessibility testing is evaluating how a real human user — particularly a real human user with accessibility needs, like a screen reader user or other assisted technology user — would interact with the site. It is about what a human would experience. Original link: fedscoop.com/trump-team-automate-uswds-accessibility-testing-ai
HeydonWorksMore Front-end Bloggersread at source
The AI Artist Paradox
Whichever way you cut it, you cannot be an AI artist.
Julia EvansMore Front-end Bloggers5 min read
Replacing the old battery on rechargeable bike lights
Hello! Recently I needed bike lights for my bike. And I remembered that I already had rechargeable bike lights that I bought ten years ago, that I hadn’t tried in a long time. I tried to recharge them, but after fully charging them, they only worked for maybe 5 minutes before…
Chris HawkesYouTube ChannelsVideoWatch on YouTube
The Rise of Territorial Programmers in the Age of AI
HTML All The ThingsPodcastsAudioListen
AI’s Biggest Problem Isn’t Intelligence Anymore
AI models are already remarkably capable, but their intelligence doesn’t matter much if they’re too expensive, limited, or confusing to use. In this edition of the Web News, Matt and Mike discuss why cheaper and faster models, higher usage limits, and a better user experience…
remy sharp's b:logTop Front-end Bloggers4 min read
Redesign: fonts, alignment and nav [blog]
As I continue occasionally tinker on the redesign I've started (and often think "what's the point, current design is fine"), I wanted to share some of the problems I've run in to. Problems mostly for me because I'm not a designer, and I don't have the wiring to know what works.
Jens Oliver MeiertTop Front-end Bloggersread at source
I’m Giving Up on Outreach to Parties and Governments
Why I’m abandoning direct political outreach, and what silence and inaction from leaders reveals about Europe’s path forward.
DigitalOcean BlogMulti Author Blogs9 min read
The agent-first cloud: why we built Managed Agents
Compute (EC2) opened the front door to the first generation cloud. Agents need something different: compute, inference, and data working as one. We built the cloud that delivers all three as one simple, intuitive developer experience for AI-natives. Every era of the cloud has…
David BushellMore Front-end Bloggers2 min read
Removing the fancy button
My blog is standard.site ready but I’m pausing full integration for now. I desperately wanted the fancy button but after its novelty wore off I’ve accepted the truth. The Bluesky button is bad UX. This has been widely complained about from day one. The problem is obvious for Bluesky users. […]
W3C BlogBrowsers, engines, etc.6 min read
Crafting WCAG 3 for more accessible user experiences
In this post, W3C's Web Accessibility Initiative (WAI) Director Shawn Lawton Henry covers some of the stakes and challenges in developing W3C Accessibility Guidelines (WCAG) 3 that is under active development.
Jeffrey Zeldman PresentsMore Front-end Bloggers1 min read
Undersung Hero: M. Frog
I bought this LP because of its Milton Glaser-designed cover featuring the colored pencil musical notations of composer/synthesist and former monk Jean-Yves Labat, alias M. Frog. It was 1973; I was about to become a high school senior, and I had hitchhiked to New York City with my friend Al Crump. The multi-floor Sam Goody […] The post Undersung Hero: M. Frog appeared first on Jeffrey Zeldman Presents .
Web Accessibility Initiative (WAI)Browsers, engines, etc.read at source
Crafting WCAG 3 for more accessible user experiences
In the W3C blog post Crafting WCAG 3 for more accessible user experiences, W3C WAI Director Shawn Lawton Henry covers some of the stakes and challenges in developing W3C Accessibility Guidelines (WCAG) 3.
text/plainMore Front-end Bloggers7 min read
“The” IP Address
As elaborated in a prior post, sites and services often try to use an IP address as an input into protection (e.g. blocking a spammer) or customization (providing local weather info) algorithms. Commonly, software would like to know “What is this device’s IP address?” Unfortunately, this is not a trivial question to answer, because it Continue reading "“The” IP Address"
Google ChromeBrowsers, engines, etc.read at source
5 ways to upgrade your study habits with Chrome
The video shows a whiteboard that says "Keeping Tabs on Google Chrome."
The Mozilla BlogBrowsers, engines, etc.5 min read
Classic, Private, or Smart? Choose the right Firefox window for every task
We spend a lot of time browsing online. Whether you are researching for work, planning a trip, paying your bills, or scrolling through social media, your browser is there for it all. While all these tasks are very different in nature, a lot of people still tend to stick to the same window type for […] The post Classic, Private, or Smart? Choose the right Firefox window for every task appeared first on The Mozilla Blog .
Web Tools WeeklyMulti Author Blogsread at source
Web Tools Weekly Issue #688
Frameworks, AI Tools, Vue Tools
Dave RupertTop Front-end Bloggersread at source
How Many Dudes?
If I’ve been missing from the internet it’s because I’ve been spending my evenings grinding on a game from Butterscotch Shenanigans called How Many Dudes? Hot off the heels of the release of their massive multi-year sequel project Crashlands 2 , the family+ operation at BS turned a little game-jam style prototype into a “Featured on the Apple App Store” game in under a year. How Many Dudes? seeks to solve ancient internet riddles like: How many toddlers could you take on in a fight? Would you rather fight 100 duck-sized horses or 1 horse-sized duck? Who would win: 100 men vs 1 gorilla? The premise is pretty simple. Build a team of fighters with different abilities and power-ups and enter the arena to fight different enemies and bosses. For me this game has it all: Balatro -level of power creep Impactful decision making So much economies Great art style and hilarious copy A proper amount of gore Enjoyable difficulty curve RNG, but not too much Those characteristics all lead toward a game with great replay-ability. Mastering lower tiers unlocks characters and power-ups in higher tiers creating a perfect “loopback” system where I want to 100% the lower tiers before moving on. A full round takes around 20 minutes but you can stop and start it effortlessly like a good casual game. I could go on forever about the power stacking economies in this game but it’s the little bits that impress me the most. Like how the characters don’t have proper walk animations and instead rotate and bob as they shimmy their way across the screen like a paper cutout on a popsicle stick. This may seem like corner cutting but on a screen with 1000+ combatants, particle effects, blood splatter, and explosions… I bet limiting characters to a single low-frame combat animation cycle is a critical ingredient for good performance. Then there’s the characters themselves. With nods to other game franchises, movie tropes, and popular (but litigious) dungeon crawling tabletop systems, the game about memes builds on cultural memes to add depth. And even though these characters don’t talk, interact, and you don’t technically control them, the hilarious copy hidden within the power-ups and item pick-ups gives a game with a lot of characters a ton of character. I will confess some bias; Butterscotch Shenanigans is one of my favorite gamedev studios and I’m internet friends with their CEO Adam Coster ( he’s even been on my podcast ). It didn’t start like that. Before knowing Adam, I watched their GDC talks and mentioned their studio in a post I wrote about a GMTK video essay . I like their approach to prototyping a lot but what I like most about Butterscotch Shenanigans is that they have that old-world #indieweb ethos of sharing what you know . They have a blog for detailing their process , a podcast, and offer open source tools for GameMaker on GitHub. If I ever pivoted to gamedev, I’d want to build a studio like theirs. A big inspiration for me. Anyways, that’s my review of How Many Dudes? If you like deck-building rougelikes or button mashing power fantasies, I think you’ll like this game. And here’s my Dude tier list in case you’re wondering…
freeCodeCamp.orgYouTube ChannelsVideoWatch on YouTube
Inside a Hong Kong Hackathon [Full Documentary]
Geoff GrahamMore Front-end Bloggersread at source
Never forget the first chat agent UI.
Kent C. Dodds BlogTop Front-end Bloggersread at source
You Own the Outcome: Product Engineering in the Age of AI
Agents are great at producing code. The valuable work left for you is deciding what should exist, how it should behave, and what you're willing to trade for it.
The Web Witch's BlogMore Front-end Bloggers1 min read
A Short Update on Designing for Foldable Devices
And here we are three years after I wrote about the Google Pixel Fold being announced , followed now with the announcement of the iPhone Duo...(I have questions about the naming by the way). Four years ago I was talking about web primitives in the platform for the Surface Duo.…
Sass BlogLibraries, Frameworks, etc.5 min read
The Road to Dart Sass 2
When we first released Dart Sass 1.0.0 in March 2018, our goals were clear: We wanted to retain the original Ruby Sass implementation's commitment to fixing bugs quickly and consistently keeping up with the evolving CSS spec as well as new Sass language features. We wanted to…
Jonnie HallmanMore Front-end Bloggers16 min read
Building the Open Standard website with Stripe
Reuniting with my friends at Stripe, I collaborate with them on the landing page for Open Standard.
The Code BarbarianMore Front-end Bloggersread at source
Faster SSE Responses with Async Generators and Promise.race()
Phil NashMore Front-end Bloggersread at source
Build a contact form with Astro and Resend
I try to keep my email address from appearing on public websites to avoid spam. But I do like people to be able to contact me if they have something I might be interested in. The solution for this? A contact form! This site is mostly statically generated, but as it is currently built with Astro and hosted on Cloudflare Workers , I can designate an endpoint as dynamic, use it to accept a form submission, validate the data on the server, and send it to my email inbox using Resend . In this post, I’ll show you how I built it. What it does When you visit /contact , the Astro framework renders an HTML page with a form on it containing three inputs: the user’s email address, a subject, and the message they want to send. When the user fills in the form and submits it, the browser makes a POST request to the same URL, and the server-side code kicks in. It extracts the details from the form, validates the data, and uses the Resend API to send a message to my email address. If the user didn’t include all the details, the page is rendered again with error messages and the existing content of the form so that they can correct the form and submit again. For full disclosure, I currently work at Resend, but I implemented the first version of this back in 2024 . It’s always nice when you go from a happy user of a service to working there. Let’s see how to build this. Start with the HTML Astro pages are simple to build; they start with the component script, which is effectively TypeScript frontmatter for your template, and finish with the component template, made up of HTML and other Astro components. I built my contact form as a page at the /contact route, so I started with a file at the src/pages/contact.astro path in my Astro app. The contact form then starts with the HTML: --- // Component script --- form method = "POST" > div > label for = "email" > Your email label > input type = "email" id = "email" name = "email" placeholder = "you@domain.com" required /> div > div > label for = "subject" > Subject label > input type = "text" id = "subject" name = "subject" placeholder = "Hi Phil!" required /> div > div > label for = "message" > Message label > textarea id = "message" name = "message" placeholder = "Your message" required > textarea > div > div > button type = "submit" > Send button > div > form > Setting the form’s method to "POST" but not providing an action means that it will submit to the same route that rendered it. My site is set to output as a static site, but you can enable on-demand dynamic routes and rather than prerender a static page, it will dynamically render pages and respond to POST requests. To do this, just add the following to the component script: --- export const prerender = false ; --- If your Astro site is set to server mode , this isn’t required. Set up your secrets To send emails with Resend you will need a Resend account , a domain verified with Resend , and an API key . With those sorted, add the API key, an email address you’ll be using to send the email using the verified domain, and the email address you’re sending it to (yours), to the .env file: RESEND_API_KEY = RESEND_TO_EMAIL = RESEND_FROM_EMAIL = You can then load and validate these variables in Astro config in astro.config.mjs . // astro.config.mjs import { defineConfig , envField } from "astro/config" ; export default defineConfig ({ env: { schema: { RESEND_API_KEY: envField . string ({ context: "server" , access: "secret" }), RESEND_TO_EMAIL: envField . string ({ context: "server" , access: "secret" }), RESEND_FROM_EMAIL: envField . string ({ context: "server" , access: "secret" , }), }, validateSecrets: true , }, }); This is incredibly useful as this config both validates that the environment variables are present when you build or run the application and ensures that the server-side secrets aren’t included in any bundled artifacts. Return to the src/pages/contact.astro page. You can now import those environment variables from astro/env:server . Another bonus is that they will be correctly typed. --- export const prerender = false ; import { RESEND_API_KEY , RESEND_TO_EMAIL , RESEND_FROM_EMAIL } from "astro:env/server" --- Prepare values and errors For both GET and POST requests, the page renders the current field values in the HTML. It may also need to render validation errors or a success message. Let’s set those up in contact.astro . --- type ContactErrors = { email ?: string [] | undefined ; subject ?: string [] | undefined ; message ?: string [] | undefined ; }; let errors : ContactErrors = {}; let email = "" , subject = "" , message = "" , successMessage = "" ; --- The page can be updated to show the success message if it is present or the form and any values or errors. --- // Component script --- { successMessage ? ( p > { successMessage } p > ) : ( form method = "POST" > div > label for = "email" > Your email label > { errors . email && errors . email . map (( error ) => ( p class = "form-error" > { error } p > )) } input value = { email } type = "email" id = "email" name = "email" placeholder = "you@domain.com" required /> div > div > label for = "subject" > Subject label > { errors . subject && errors . subject . map (( error ) => ( p class = "form-error" > { error } p > )) } input value = { subject } type = "text" id = "subject" name = "subject" placeholder = "Hi Phil!" required /> div > div > label for = "message" > Message label > { errors . message && errors . message . map (( error ) => ( p class = "form-error" > { error } p > )) } textarea id = "message" name = "message" placeholder = "Your message" required > { message } textarea > div > div > button type = "submit" > Send button > div > form > ) } Verify the input Next, we need to validate the submitted data. I chose to do this with zod , since it is already installed as part of Astro. Start by importing zod and defining two schemas. --- import { z } from "astro/zod" ; const normalizedFormSchema = z . object ({ email: z . string (). trim (). catch ( "" ), subject: z . string (). trim (). catch ( "" ), message: z . string (). trim (). catch ( "" ), }); const contactFormSchema = z . object ({ email: z . email ({ message: "Please enter a valid email address" }). trim (), subject: z . string (). trim (). min ( 1 , { message: "Please enter a subject" }), message: z . string (). trim (). min ( 1 , { message: "Please enter a message" }), }); Check to see if the request is a POST by checking Astro.request.method . If it is, commence the work of validating the input and sending the email. I used two different zod schemas to help with parsing the submitted data. The normalizedFormSchema will always return an object containing email , subject , and message properties, defaulting each property to an empty string. The parsed values can be assigned to the default values for the email , subject and message that we set up earlier. Parsing with the contactFormSchema does the real validation. If parsing succeeds then we have all the information required to send an email. If validation fails, we collect the errors using zod’s flattenError function and pass them to the component to render. --- if ( Astro . request . method === "POST" ) { const data = await Astro . request . formData (); const normalizedFormData = normalizedFormSchema . parse ( Object . fromEntries ( data ), ); ({ email , subject , message } = normalizedFormData ); const contactFormData = contactFormSchema . safeParse ( normalizedFormData ); if ( contactFormData . success ) { // The data is correct, send the email } else { errors = z . flattenError ( contactFormData . error ). fieldErrors ; } } Hook up the Resend API Now that the data is validated, we can send the email. It’s easiest to send with Resend using the Resend Node.js SDK : npm install resend Import the SDK at the top of contact.astro : --- export const prerender = false ; import { RESEND_API_KEY , RESEND_TO_EMAIL , RESEND_FROM_EMAIL } from "astro:env/server" ; import { Resend } from "resend" ; Then, when the data has been parsed and validated correctly, create an instance of the Resend client and use it to send the email: --- // validate the data if ( contactFormData . success ) { const resend = new Resend ( RESEND_API_KEY ); const { error } = await resend . emails . send ({ to: RESEND_TO_EMAIL , from: RESEND_FROM_EMAIL , replyTo: contactFormData . data . email , subject: contactFormData . data . subject , text: contactFormData . data . message , }); if ( error ) { throw new Error ( `Failed to send contact email: ${ error . message } ` ); } successMessage = "Thanks for your email, I'll get back to you soon!" ; } else { errors = z . flattenError ( contactFormData . error ). fieldErrors ; } --- Here we are using an email address on our own domain to send the email since we can’t send on behalf of the user using the contact form. We set the user’s email address as the replyTo property, so that when you hit reply in your email client, it goes back to them. If Resend returns an error, we throw it so that Astro responds with a 500 status and our monitoring can alert us. Otherwise, we set successMessage and render the confirmation. Spam protection I initially built my contact form like this to keep from publishing my email address on the public web and avoid getting picked up by spammers. While that worked, it did not stop another class of bots from finding the contact form and filling it out themselves. I was so excited when I got my first email from the form, and then it turned out to be spam anyway. So, while this is how to set up a contact form using Astro, there is more work to do before you publish: you need to stop bots from abusing it. Ultimately, I put Cloudflare’s Turnstile in place, though you might consider things like Google’s reCAPTCHA or hCaptcha . In another post I’ll share how I implemented Turnstile. Happy emailing This is how to build a contact form with Astro and Resend. I like how Astro’s pages allow you to do all of this in one file, and how sending the email with Resend is just a couple of lines of code. Thankfully, once I’d shut down the bots, I’ve also received some really useful emails through this form. I hope this is a helpful look at how to add just a touch of interactivity to an otherwise static site using Astro.
overreactedTop Front-end Bloggersread at source
How I Vibed a Proof of Conway’s Conjecture
You can just prove things, apparently.
CSS Articles by Temani AfifMore Front-end Bloggersread at source
Extracting Grid Information Using CSS
Extracting Grid Information Using CSS Read the full article online
Dan DaviesMore Front-end Bloggers7 min read
A view from inside the Novira Cymru Premier
This article reflects my personal views and experiences as a director and media officer at Holywell Town. It is intended as a constructive contribution to the conversation around the new Cymru Premier. The expanded Novira Cymru Premier has brought 16 teams together in Wales’s top tier, creating a league with more visibility, more big occasions […]
Philip WaltonTop Front-end Bloggersread at source
Modern Web Types
Addy OsmaniTop Front-end Bloggersread at source
Brownfield Agentic Engineering
What it takes to run agents in a codebase older than the team
Adam SilverMore Front-end Bloggers2 min read
Why I wait for research to prove something is needed before it’s added to the UI
Last week, a colleague gave feedback on a prototype I’m working on - a flow that helps users review a case. The UI has an accordion of documents. You can select text within each document to annotate it: Here’s what the page looks like when the accordions are collapsed: The…
DigitalA11YMore Front-end Bloggersread at source
How to Test Touch Target Size for WCAG Compliance
Has this ever happened to you? You’re scrolling through an app or website on your phone and accidentally tap a link or button you never intended to select. Or perhaps you’re trying to complete an online purchase and, instead of pressing the small “Buy Now” button, you accidentally activate a neighboring link because the controls...
SpeedCurve BlogCompany/Startup Blogsread at source
September synthetic test agent updates: Chrome, Firefox and Lighthouse
This month, we've updated our synthetic testing agents. In addition to upgrading the underlying VMs, we've updated browser and Lighthouse versions: Chrome 148 (previously 138) Firefox 153 (previously 135) Lighthouse 13.4.1 (previously 12.8.0) What has changed? We understand the sensitivity related to changes in your performance data. Synthetic updates can cause baseline changes due to hardware changes, browser optimization or in the case of Lighthouse, changes to the methodology. Although the browsers introduced many new features between the updates there are only a few that will may have a noticeable impact on test results: Chrome Lazy-loading for video was introduced in Chrome 148 and pages that make use of this attribute will download less videos and their total size will be smaller too. Chrome 146 fixed an LCP bug which sometimes measures an image that wasn’t yet painted as LCP. Firefox Improvements to Firefox’s HTTP/3 implementation and the introduction of support for Compression Dictionaries which can result in smaller HTML, CSS & JavaScript downloads for sites that support them. The Scheduler API allows finer grained control of JS execution through features such as scheduler.yield Lighthouse Lighthouse introduced Insights and the data these generate is available for every synthetic test. AWS Instance Change AWS was running out of capacity in some regions so the EC2 instance the synthetic agents use has changed from c5.large to c6a.large. To retain comparable performance with the previous agent the CPU is throttled in all desktop tests. The instance size change has had an impact on some metrics, and during extensive testing, we've observed that Total Blocking Time (TBT) improved due to this change. Impact on metrics To provide a baseline when upgrading browsers, Lighthouse, or other components of our agents, we regularly measure the speed of more than 200 sites in both our production and canary environments. During this upgrade, we've found that most metrics have remained consistent between the new and existing versions of the agent, but that Total Blocking Time (TBT) has improved significantly. Across the corpus of sites we're testing, we've observed that Total Blocking Time (TBT) has improved by approximately 12% at the 75th percentile for the Mobile Medium profile. Largest Contentful Paint (LCP) and Cumulative Layout Shift (CLS) have remained largely unchanged. What should you do next? Our observations on how the upgrade affects metrics are based on the sites in our test corpus, and every site is different. While Total Blocking Time might be the only expected change, there is always a chance your metrics will change based on the optimizations discussed above. Over the next few weeks, we recommend reviewing your performance budgets and checking that they are still appropriate for your site and then adjusting them if necessary. This is a practice we recommend doing on a regular basis as part of a 'get fast, stay fast' methodology , which you can learn more about in our Web Performance Guide to Performance Budgets . Private agents For customers who host their own private SpeedCurve agents : We're planning to release an updated version of the Docker container in the next few weeks. If you have any questions about the upgrade, its impact on your metrics, or any questions about SpeedCurve in general, you can reach us at support@speedcurve.com.
WebAIM BlogBrowsers, engines, etc.4 min read
If you have to ask, is it accessible?
As one of the researchers identifying products and tools for inclusion in the NCADEMI EdTech Accessibility Directory, VPATs have been on my mind. Most of the product vendors in the directory that do have VPATs do not provide them publicly, but instead require a potential customer to request the VPAT. This really surprised me, and […]
CSS-TricksThe Giantsread at source
Let’s Use the Emergent CSS random() Function in all the Browsers
The journey to create a polyfill for the upcoming CSS random() function that works in all browsers. Let’s Use the Emergent CSS random() Function in all the Browsers originally handwritten and published with love on CSS-Tricks . You should really get the newsletter as well.
Scott Hanselman's BlogMore Front-end Bloggers3 min read
Debugging my new network, when 10 Gigabit Ethernet Runs at 300 Megabits
I've been moving my home storage over to a UniFi UNAS Pro 8 as part of a larger homelab moderization . My main IRONHEART (the ultimate PC from a few years back) desktop now has an Intel E610-XT2 10GbE card, the NAS is on 10GbE, and there's a Minisforum MS-01 miniPC on the same network with a 10GbE SFP+ connection running Immich and Portainer and a few other things. Everything says 10 gigabit. Windows says 10 gigabit. UniFi says 10 gigabit. SMB copies are using the correct NIC but my file copies are running at around 100 to 200 megabits per second which is sad making. Naturally, I blamed the NAS, and the spinning rust within. The UNAS has six 16 TB spinning disks in RAID 6 and a pair of NVMe SSDs being used as cache. I'm also running Immich on the MS-01, with its photo library living on the UNAS, so there are lots of thumbnails, metadata reads, and little background writes happening. All seem like reasonable suspects. I switched the UNAS SSD cache from read-write to read-only. No meaningful difference. I stopped Immich completely. No difference. I looked at iostat ; the disks weren't saturated. We looked at SMB signing and Windows Defender network scanning. Still slow. Then I stopped testing the NAS and ran iperf3 directly between the Windows desktop and the MS-01: iperf3 -c 192.168.1.222 -P 4 133 Mbit/sec Oops. The reverse test was better, but still wrong: iperf3 -c 192.168.1.222 -P 4 -R 1.33 Gbit/sec That's weird. Now the disks, SMB, Immich, RAID, and the NAS itself were completely out of the equation. This was a Windows/NIC problem and it's weirdly asymmetrical. Looking at the Intel adapter statistics shows me... Get-NetAdapterStatistics -Name "Ethernet - 10 Gig Intel" There were nearly a million ReceivedDiscardedPackets . During one ten-second iperf3 test, the counter increased by another 268. Why? The E610 driver had its receive buffers at the default 512 , although it supported up to 4096. I increased them. I love an increased buffer. Set-NetAdapterAdvancedProperty ` -Name "Ethernet - 10 Gig Intel" ` -DisplayName "Receive Buffers" ` -DisplayValue "4096" The discarded-packet count during the next test went from 268 to zero , and receive throughput jumped from 1.33 Gbit/sec to 5.15 Gbit/sec . The transmit direction was still terrible, basically 313 Mbit/sec . The next experiment was disabling Large Send Offload (LSO) V2 for IPv4: Set-NetAdapterAdvancedProperty ` -Name "Ethernet - 10 Gig Intel" ` -DisplayName "Large Send Offload V2 (IPv4)" ` -DisplayValue "Disabled" Then I ran the same iperf3 test again. 7.03 Gbit/sec That's not a typo. 313 Mbit/sec to 7.03 Gbit/sec by changing one NIC setting. Sweet sassy molassey. LSO exists for a good reason: Windows can hand large TCP buffers to the NIC and let the adapter/driver segment them into network-sized packets, reducing CPU work. Microsoft does, however, explicitly point out that segmentation offload can reduce maximum sustainable throughput with some network adapters/configurations. LSO is usually useful, but not in this case. In my particular combination of Windows and the Intel E610-XT2, something in the IPv4 LSO path was very, very sad. I don't yet know whether this is an Intel driver bug, firmware issue, Windows interaction, or something particular to this machine, so I wouldn't turn this into random tech blogger advice that everyone should disable LSO. Measure first, cut once. Er, twice. Just stay woke. Finally I went back to the test that started all this and copied the same large file to the UNAS and Robocopy reported: Speed : 350,201,354 Bytes/sec. Speed : 20,038.682 MegaBytes/min. About 350 MB/sec , or 2.8 Gbit/sec of sustained real-world SMB writes to a six-disk RAID 6 NAS. That's much more like it. The useful lesson isn't "disable LSO." It was that when storage is mysteriously slow, eventually you have to stop testing storage. iperf3 removed the NAS, filesystem, RAID, cache, SMB and disks from the experiment in one move. Once the raw network was also slow, the problem became dramatically smaller. And, sometimes the little checkbox labeled Large Send Offload is capable of making your 10 gigabit card run like it's 2004. TL;DR - with LSO V2 for IPv4 enabled, Windows-to-Linux iperf3 managed about 313 Mbit/sec . Turning off that single offload took the exact same test to 7.03 Gbit/sec . I’m deliberately saying on this machine because LSO is normally useful and this isn’t blanket advice to disable it everywhere. © 2025 Scott Hanselman. All rights reserved.
Mozilla HacksBrowsers, engines, etc.3 min read
Intent to Ship: JPEG XL
It isn’t often that new image formats land in browsers. In the early 2000s we had JPEG, GIF, and PNG. The 2010s gave us WebP, which was a modest step up from JPEG. But the 2020s have given us two new image formats that are a big step up from previous formats: AVIF and JPEG […] The post Intent to Ship: JPEG XL appeared first on Mozilla Hacks - the Web developer blog .
Chen Hui JingMore Front-end Bloggers4 min read
I still like writing websites by hand
Back in 2020, I built Alex's website. He has not changed it since then. That's on him, not me. I think I first met him in 2017. It is now coming up to 10…
Manuel MatuzovićMore Front-end Bloggers12 min read
My HTML boilerplate in 2026
Every element I use for the basic structure of a HTML document, with explanations why. Five years ago, I shared the HTML boilerplate I use for most of my projects. Since then, a lot has happened in HTML. It's time to give it an update. My boilerplate This is the final document.…
Monica DinculescuMore Front-end Bloggers3 min read
Classic dopamine economics
I keep forgetting to write a post. Instead what happens is I leave myself little bread-crumb trails of notes (“chitaru shiota exhibit; can’t relate”, “birdhouse craft”), like a woman fleeing a crime scene that she will later have to investigate. They just sit there. A little…
Big MediumMore Front-end Bloggersread at source
The Right to Resist Optimization
“If machines are great at the things we’ve long thought to be uniquely human, maybe we’ve been misunderstanding humanity all along.” This weekend I picked up a physical copy of The Humanist Review of AI at Casa Magazines , a collection of essays on AI by technologists, academics, and philosophers compiled by Mustafa Suleyman, the head of Microsoft AI. Audrey Tang’s essay, AI and democracy: the right to resist optimization , stood out for the way it reframes a conversation that’s become a little bleak. The reassurance we keep hearing goes something like this: Sure, LLMs can write songs and novels and will probably make movies soon, but don’t worry—humans will always have taste . It’s a pretentious consolation, and probably not even true. A probabilistic system armed with design principles can make evaluations of taste just fine. For better and worse, humans are no longer unique for having ideas or for writing them down. What remains unique is our ability to stand behind our creations—to be accountable for them and to love them. People flock to IMAX theaters not out of love for the film format, but because a director like Christopher Nolan made a stand for it. It’s the person behind a creation that gives it meaning; the audience trusts him . Tang, like our own Josh Clark, argues that Turing’s imitation game has been a trap from the start. We shouldn’t build machines to imitate us—and we shouldn’t evaluate ourselves like machines either. She points to social media, where content is ranked by engagement, as a case of humans optimizing themselves against a machine’s metric. It’s hard not to think of education, where standardized tests reward answering questions on short passages, so classrooms assign excerpts instead of books—and students stop reading books at all. We keep building the very world we say we’re afraid of. So what should we be cultivating instead? Tang offers a starting place, naming the skills she sees as essential for the future: originality, expression (getting your ideas across to other people), and morals. It pairs well with the argument we make in the first chapter of Sentient Design —that there have always been many kinds of intelligence, and the arrival of machine intelligence should sharpen rather than diminish our sense of the human ones. “What ways of becoming human should education cultivate when many forms of performance can be automated?” My answer is that education must move away from ranking compliant output and toward cultivating interpretive courage, collaborative range, ethical imagination and the capacity to participate in revision without losing face. The RIght to Resist Optimization | The Humanist Review of AI
keyframersYouTube ChannelsVideoWatch on YouTube
CodePen 2.0 + @keyframers = The Biggest Launch In History???
Max Stoiber's EssaysMore Front-end Bloggersread at source
Build something to disagree with
A rough first version gives everyone the same thing to react to. Make ideas concrete before debating them.
Darek KayMore Front-end Bloggers5 min read
Sabbatical #18: Great Ocean Road
A travel journal from my visit to the Great Ocean Road, Australia.
Modern Web Development with ChromeMore Front-end Bloggers4 min read
The web the model sees
A run of recent posts on aifoc.us that I did not plan as a series but which turned into one. The thread is that the web a model sees is staler and thinner than the one you ship, and I have mostly been trying to find ways to see it.
swyxMore Front-end Bloggersread at source
What America has meant to me
Every time I have given up on America, it has been a mistake. And yet, America has never, ever given up on me.
Salma Alam-NaylorMore Front-end Bloggers12 min read
Goodbye, forever, probably.
Why I’m leaving developer relations, and why I’m not telling you what’s next.
A List ApartMulti Author Blogsread at source
Designed for a Dead Language
Every language app in your pocket inherited a teaching method built for Latin. Understanding why that happened is a more useful design lesson than anything the apps themselves will teach you. In 1788, Prussia introduced the Abitur, a standardized national examination required for entry into universities and the civil service. To pass it, students needed to demonstrate measurable, gradable knowledge. The system needed to teach language to large classrooms, produce consistent outcomes, and do it with one teacher and thirty students. The educators responsible for designing this system reached for the only teaching template they had, one that had been used in European schools for two centuries: the method developed to teach Latin. Latin, by 1788, was a dead language. Nobody needed to speak it. The scholars who studied it were reading Cicero and Virgil, not conducting conversations. The method built around it, memorizing grammar rules, constructing translations, analyzing written texts, reflected that reality exactly. Oral skills were irrelevant. Comprehension of written form was everything. The method was not designed to produce speakers. It was designed to produce readers of texts in a language nobody spoke. When Prussia applied this template to French and German, living languages spoken by living people, the premise did not change. Johann Valentin Meidinger's textbook Praktische Französische Grammatik , published in 1804, ran to 37 editions across Europe by 1857. Karl Plotz formalized the approach into what became the dominant model for teaching modern languages across Europe and eventually the United States, where it became known simply as the Prussian Method [1]. Each institution that adopted it trained teachers in it, who trained students who became teachers. The constraint that created the method, how do you grade language at scale with limited resources, became invisible inside the method itself. What remained was the assumption: language is a body of rules to be learned consciously and measured. It was a design decision dressed up, over time, as a pedagogical truth. The observation that should have ended it There are people in the world who cannot read or write a language and speak it fluently. There are children who hold full conversations years before they can read a single word. There are immigrants who arrive in a country knowing nothing of its language and come out, years later, speaking it naturally, not because they studied it, but because they lived inside it. Literacy and fluency are separate things produced by entirely separate mechanisms. The Grammar-Translation method, as it became known, assumed they were the same thing. That assumption was inherited from a method designed for a language nobody needed to speak, and it was wrong the moment it was applied to a language people actually used. The evidence against it accumulated slowly. In the mid to late nineteenth century, reformers including François Gouin in France and Maximilian Berlitz in the United States argued independently that language should be taught the way it is actually acquired, through immersive exposure to real communication in the target language, not through analysis of its rules. Berlitz built an entire school network around this principle. The reformers were correct. They were also largely ignored by mainstream education systems, because the Grammar-Translation method had one decisive advantage that direct immersion did not: it could be graded. In 1982, the linguist Stephen Krashen gave the argument its most formal articulation in what he called the Monitor Model of second language acquisition. His distinction was precise: language acquisition, the unconscious process through which children absorb their native language and through which adults succeed in immersive environments, is categorically different from language learning, the conscious study of grammar rules and vocabulary that classrooms deliver [2]. Acquisition produces fluency. Learning, at best, produces the ability to pass a test. The evidence supporting this distinction, and the observation that immersive exposure to real native-speaker communication is the mechanism that produces genuine fluency, has only grown since. I went to Brazil without a word of Portuguese and came out speaking it. I studied French in a classroom for years and cannot hold a conversation in French today. This is not an unusual experience. It is the expected outcome, and it has been the expected outcome for as long as we have had formal language education. The same decision, made again in a different medium Prussian educators faced the question: How do you deliver language learning at scale, measure progress, and retain users over time? The answer it arrived at was structurally identical to the one arrived at in 1788. Duolingo gamified the grammar drill into a streak. Anki formalized the translation exercise into a spaced-repetition flashcard. Babbel organized grammar lessons into structured modules. The interfaces were new. The underlying assumption, that language is a thing you study rather than an environment you inhabit, was not. This was not a failure of design skill. The products that emerged from these decisions are, in many respects, genuinely well-crafted. Duolingo's retention mechanics are sophisticated. Anki's spaced repetition is grounded in real cognitive science. They are excellent at what they actually do. The problem is what they actually do: produce measurable engagement with a proxy for language rather than the conditions that produce language itself. A streak is measurable. A vocabulary score is measurable. The moment a user walks out of an app and holds a real conversation in another language, that happens in the world, outside the product, and cannot be instrumented. When the outcome a user needs is difficult to measure directly, the design process tends to reach for something that can be measured. The proxy becomes the goal. The interface optimizes for it. The gap between what the product delivers and what the user actually needed grows. This is not a pattern unique to language learning. It is a pattern that repeats across product categories whenever a design constraint—the need to measure, the need to scale, the need to produce a grade—gets built into a system so deeply that it stops being visible as a constraint and starts being mistaken for a truth about the problem itself. What happens when the constraint changes The constraint that made the Grammar-Translation method necessary in 1788 was real and rational. One teacher. Thirty students. A standardized exam. You cannot grade a conversation at scale. You can grade a translation exercise. The method was not chosen because it produced fluency. It was chosen because it produced a score. That constraint no longer exists in the same form. Technology has made it possible to deliver immersive, real-time conversation practice to anyone with a smartphone, at a cost that continues to fall. The design problem is no longer how to make language learning gradable at scale. It is how to make the conditions of genuine language acquisition accessible to people who cannot move to another country or afford a native-speaker tutor. The products that are now closest to solving the actual problem are not the ones that invented a new pedagogy. They are the ones that removed the access barrier to an old one. Praktika builds AI conversation partners with distinct personalities, regional dialects, and cultural context, replicating the specificity of a real native speaker rather than a generic language-learning voice. Langua clones native speaker voices so that the interaction feels like a real conversation rather than a lesson. Rosetta Stone's foundational methodology, image association in the target language with no translation, was built on the same insight Berlitz arrived at in the nineteenth century: language is acquired through immersive exposure, not through analysis of its rules [3]. A 2025 meta-analysis of 31 studies found that AI conversation tools produced a statistically significant improvement in language learning outcomes, a result that no amount of flashcard optimization has consistently matched [4]. None of these products invented a new theory of language acquisition. They translated an existing one into something more people could reach. The design question this leaves The Grammar-Translation method persisted not because educators were wrong about design, but because a design decision made under a specific constraint became, over two centuries, indistinguishable from the thing itself. The constraint, how do you grade language at scale, was forgotten. The method it produced was inherited as if it were a description of how language works, passed from Prussia to Europe to America to the App Store, from the grammar drill to the streak. Every time a design team optimizes for a metric because the actual outcome is hard to measure, they are making a version of the same decision. It is often the right decision given real constraints. The question worth asking is whether the constraint that made it necessary still exists, or whether it has simply become invisible inside the system it originally produced. Before reaching for what can be measured, it is worth asking what the user actually needs to do, and what stopped them from doing it before. Sometimes the answer is a new solution. More often it is an old one that was always out of reach.
Kitty GiraudelMore Front-end Bloggers26 min read
ProMe, a TTRPG Companion App
A rather extensive design and technical walkthrough of my new project, ProMe, a companion app for the game “The Protector’s Memories”.
Jack FranklinMore Front-end Bloggers5 min read
AI loops: who pays for the tokens?
A recent trend in AI has become this idea of "loops". Rather than you doing prompting and working with the AI to design and implement, you instead give it a higher level goal and let it roll. You build a system to let the AI make decisions, build and verify its work, all with…
ECMAScript DailyLibraries, Frameworks, etc.read at source
Normative: Add `using` and `await using` Declarations, SuppressedError, DisposableStack, and AsyncDisposableStack by rbuckton · Pull Request #3000 · tc39/ecma262
Explicit Resource Management ( using / await using declarations, SuppressedError , DisposableStack , AsyncDisposableStack ) has been merged into the ECMAScript specification.
Una Kravets OnlineTop Front-end Bloggersread at source
Modern CSS theming with light-dark(), contrast-color(), and style queries
Combine three new CSS features to build fully adaptive themed components.
Aleksandr HovhannisyanMore Front-end Bloggersread at source
How to Use an Android Phone Camera in OBS
Mirror your phone's camera to your computer with scrcpy, and record it with OBS.
Babel BlogLibraries, Frameworks, etc.6 min read
Releasing Babel 8 today: ESM-only, drop ES5 default, and a smooth migration path
Today we are releasing Babel 8. It's been 8 years since we released Babel 7. And that's not without reason.
Ashley NolanMore Front-end Bloggers2 min read
Hello again (and a new look)
After far too long a break from writing, I've given my site a fresh coat of paint.
Axess LabCompany/Startup Blogs1 min read
Webinar: AI and Accessibility – What have we learned so far?
Learn about the potentials and be aware of the pitfalls. Join our upcoming webinar to explore the rapidly evolving intersection of AI and accessibility, from its use as an assistive technology to supporting plain language. We will share our latest findings to help you navigate the real benefits, hidden risks, and common pitfalls of relying […]
Tim KadlecTop Front-end Bloggersread at source
Losing Focus
codeburstMulti Author Blogs7 min read
Sizing your first Elasticsearch cluster: what actually matters
Photo by Hirzul Maulana on Unsplash The million dollar question when setting up your first Elasticsearch cluster: sizing. It feels like it should have an obvious answer. How many nodes? How much storage? What’s the limit? But the reality is more complex. There isn’t one hard…
Eleventy BlogLibraries, Frameworks, etc.1 min read
New Sponsorship Tiers for the Build Awesome Kickstarter
We’ve added a bit more information about the new sponsorship tiers for the Build Awesome Kickstarter . Your company uses Eleventy currently or wants to support the Build Awesome platform moving forward. You’re interested in getting your brand icon in the Font Awesome Icon…
Mark's Dev BlogMore Front-end Bloggersread at source
My Thoughts on AI, Part 2: Agent Setup, Workflow, and Tools
Introduction Hopefully you've already read Part 1: Fears, Opinions, and Mental Journey so you understand how I ended up with this mindset and approach. Or maybe you saw how long it was and just immediately bailed out :) Welcome either way. Part 1 was the braindump. Story, thoughts, feelings. Here's the part that probably more of you are interested in :) What my actual agent setup and dev workflow looks like. How I approach using AI for writing code, what tools I use, how I have them configured. You can see a cleaned-up version of my config at https://github.com/markerikson/opencode-config-example - follow along in that repo for the pieces as I describe them here. As I said in Part 1: I am not trying to sell anything, change anyone's mind, or say I am an expert. I don't have the answers. BUT I DO HAVE SOME OPINIONS NOW! :) I'm not saying that everybody should follow them, but this is where I've landed. Introduction Agent Setup Overview Agent: OpenCode and CodeNomad Model: Opus 4.6 IDE / VCS: VS Code and Fork Daily Development Workflow Parent Orchestrator Session for Project Management Subtasks for Development OpenCode Config Permissions Management File Reads Code Structure and Search Context Management Session History and Search Dev Plans Repo and Management Scripts Plan Management Issues Personal Dev Plans Repo Workflow Artifacts devplans.ts Automation Script Progress Updates and Subtask Handoffs AGENTS.md Commands and Skills Project Setup Progress and Subtask Management Task Tracking Other Commands Other Skills Config Improvement Process Potential Future Workflow Improvements Final Thoughts Agent Setup Overview Agent: OpenCode and CodeNomad I've settled on OpenCode as my agent of choice. I quickly decided I couldn't use TUIs for any development work. I've always been a GUI / IDE user anyway. I briefly tried both Claude Code and OpenCode TUIs, and bounced off hard . It's not that I am against terminals or CLI tools, I use a lot of them! But I also like having multiple tabs, my choice of coding font, syntax highlighting, and even just straightforward copy/paste abilities. Maybe I gave up too quickly, but I really struggled to get any of the TUIs to do that. I know Claude Code is the market leader for coding agent. Maybe if I gave it another shot I'd find some use out of it. On the other hand, I've always been enough of a tinkerer that I do customize my tech and tool setups. Yeah, I'm a lifelong Windows user, but I've got a comprehensive suite of tools and techniques and customizations I've built up over the years. I use Android because I want to fiddle and customize and configure the system the way I want it. OpenCode fit that bill when I tried it. It works well for me, and I'm happy with it. So if I'm not using the TUI, what's the alternative? I found a great third-party OpenCode web UI called CodeNomad . Tried it, loved it, works great . My personal laptop is all Windows, but my day job is WSL within Windows. I can start CodeNomad's server from within the WSL environment, browse to the web UI from the Windows side, and not have to deal with any cross-platform filesystem limitations. I can have multiple sessions open in one browser tab (with a tabbed UI inside of the page), or have multiple browser tabs talking to the same server. I get full GUI copy and paste, good tool and edit/diff views, and a lot more. So, I now am actually doing my primary development there in CodeNomad. Not an IDE. Model: Opus 4.6 We primarily use Anthropic models at work. Honestly I've never even tried Gemini / Codex / GPT-whatever / Kimi / etc. I've really only used Opus and Sonnet. Opus 4.5 and 4.6 have both produced great results for me. Sonnet is decent. There's probably a lot I'm missing. I don't want to burn a lot of time trying out models and running evals every few days, or switching back and forth just to eke out another 1% gainzzz. That's fine. I just need something that works well enough for me and that I'm comfortable with, and Opus 4.5/4.6 have fit that bill perfectly. (As of writing, I haven't tried out 4.7, and I'm kinda scared to. Too many weird reports about its behavior.) Also worth noting that I'm using via API, not Max plans. IDE / VCS: VS Code and Fork I've been using VS Code as my editor and IDE of choice for many years. It's not perfect, but it works. Ironically, I now use it more as a file and diff viewer than as an editor :) I mean, I am writing this blog post itself in VS Code. But for daily dev work, I do the session driving in CodeNomad in the browser, and then I flip over to VS Code to review and commit the diff. Honestly I don't like VS Code's Git panels and UI! They feel very awkward. The diff hunk staging view in particular is bad , especially compared to other IDEs like WebStorm or purpose-built Git GUIs. (Think I saw they maybe made some improvements in the last couple VSC releases - I haven't updated lately.) Fork has been my Git GUI client of choice for the last few years. Excellent, absolutely worth it. The issue here is that all my work repos are inside the WSL environment. It's technically possible to point Fork at a cross-platform WSL share of the repo folder, but the file changes tend to not refresh well, so I've mostly fallen back to just doing Git diff operations in VS Code. I think there may be some Fork tweaks that make it work better in WSL - haven't dug into those. I do know there's some Linux-native Git GUIs out there, I just haven't spent time evaluating those lately either. Daily Development Workflow My workflow is: A long-running "Orchestrator"-mode parent session with the overall context for the major development work that I'm doing. This session's job is solely to spawn child subtasks where I do the real work interactively. Child subtasks dedicated to some subset of the actual work. This may be codebase research and exploration, feature planning, or actual code development. These are highly interactive - I spend all my time discussing, directing, and driving these subtasks. The core principles here are: I'm in control. I'm the one who knows what I'm working on and what I want to accomplish. I decide what the tasks are, and how to accomplish them. I decide when to move from research to implementation, when to keep digging further or pivot a session from the original goal to a side quest, and when a task is actually done. I need to be mentally engaged, understand what is happening and why, review the code, and actually commit it when I'm satisfied. Most of the time I have one active parent session, and 1-3 active subtask sessions. I do bounce between the active subtasks and context-switch. Normally these are all still part of the same actual workstream. I have tried running sessions for 2-3 different workstreams at the same time, and it's tough, so I mostly stick with one workstream at a time now. I'm sure a lot of folks will say "but that's so slow, you could be moving so much faster!". I know. That's the point :) I'm intentionally choosing to limit the workflow to what I can manage in my own head, so that I am still fully mentally engaged and building my own understanding of the system. I also specifically aim to keep as many of the moving pieces as deterministic and scripted as possible, especially for things that can be automated like file management tasks. Parent Orchestrator Session for Project Management I start every new parent session by running my /context command. This tells the agent to read current-focus.md and the last 2-3 days worth of progress file entries. That way it has baseline knowledge of the current repo, recent work, and what I'm actually working on. From there, I give specific instructions for whatever I'm working on. This is usually several paragraphs of "here's the overall goal I'm working towards today, here's what I'm specifically trying to accomplish, here's how I want to get there". Then I specifically instruct the orchestrator parent session to spawn one or more subtasks to do the actual work. It then sits and waits for those to complete. OpenCode subtasks are essentially async functions with a return value, where the subtask can return some message to the parent. However, the child often returns a response with the initial result, but I then keep driving the subtask much further and do a lot more work, so the initial response doesn't capture the actual work accomplished. Another problem is that if I don't like what a subtask is doing and hit the "Stop" button in that session, it cancels the response to the parent and returns an empty value. The orchestrator has a bad habit of seeing that empty response and saying "oh, the child didn't complete, let me spawn another subtask to pick up where it left off". I've had to specifically instruct it " never spawn more subtasks until explicitly told to do so !" My instructions for spawning a subtask are surprisingly lax in some ways. I've done a bunch of work to give the orchestrator context on what I'm doing, why, and what the next goal is. At that point, I often say "spawn a new subtask to....", and leave most of the details up to the orchestrator. Sometimes I'll give fairly specific bullet points: "have the child read files A, B, and C for context. Then, come up with an initial plan to build this feature, and pause. I'll review and confirm implementation." Other times, especially when the parent session has gone on for a while and the orchestrator has already spun up a half dozen child tasks for earlier steps, I might just say "yep, kick off phase 3", but by that point I have high confidence that we're on the right track and there's an established pattern for what we're doing. I've had some parent sessions last up to a couple weeks as I'm focused on an ongoing effort. Other times it might be a fresh parent session each day. Either way, it's about the overall goal that I'm working towards right now. Here's what a typical orchestrator session looks like - the tail end of the /context being loaded, and my initial instructions for what I want to do in this session. Subtasks for Development Subtasks are where I do all the actual work. I let the orchestrator write up the full prompt for child subtasks. This is normally enough to get the task started, read a bunch of files, orient itself, and "get the full picture" :) The entire subtask session from there is highly interactive. If it's a research or planning session, I review the results and provide feedback on the output. If it's a coding session, I look at the initial plan for the changes and provide specific guidance and direction. I want to be very sure both me and the agent understand what we're trying to do, why, and how. I'll provide guidance on specific techniques to use, ask questions about edge cases and ideas, have it expand my own thinking as much as possible. I only tell it "okay, go make these changes" once I'm very sure about the intent. I usually try to keep an eye on the agent as it's making edits. I don't want to have to explicitly approve operations as it's running (and we'll talk about permissions management more later), but I at least want a sense of what it's doing and if it looks like it's heading in the right direction. If not, I'll mash the "Stop" button and course-correct. Once the edits are done, I'll run / test / etc as needed. I also try to review the code as much as possible. I then do the actual Git commits myself - staging, messages, commits. In a lot of ways this is "one developer workflow, but with extra steps". Fair :) The speedup comes from the agent's ability to do the research for me, expand "here's what I want to do" into a plan for how to do it, and then turn the "what and how" plan into specific code edits faster than I can. My fingers are fast, but my brain always had to work through the intent first. Here, I get to focus more on the intent and the desired behavior, and let the AI define most of the code-level changes to accomplish that. I frequently drive subtasks for extended periods of time. I try to keep a given subtask on track, but sometimes I end up veering into side quests because it's easier to keep going here rather than start up a whole new subtask and load context for the freshly discovered problem all over again. Early on, this definitely led to hitting session context limits, which forced me to create commands to reload an entire session's transcript and run those after the entire session got auto-compacted. Now that I have the OpenCode Dynamic Context Plugin and better tools and instructions for reading files, it's rare for even an extended session to end up over 100K context. The agent is very proactive about compressing recent tool calls and discussions in order to keep context manageable, and this seems to produce much better results than a big-bang "summarize the entire session so far" compaction. (Granted, sometimes it over -compresses recent chunks of the discussion and gets a bit confused on what we were doing :) ) Once I am actually ready to wrap up a given subtask, I specifically manually trigger the two record keeping commands. /progress tells the subtask to append a new "what did we accomplish?" entry to today's progress log file. /subtask-complete writes a standalone version of that update with more details, suitable for the parent orchestrator session to read. I then switch back to the parent session and run /subtask-resume , which reads all outstanding subtask handoff files so it knows what the N most recent subtasks accomplished. There's some duplication here, but I view it as /progress is for the permanent record of what I did today, /subtask-complete is the function return call results for the subtask to ensure the parent session knows where things stand. Here's a typical child subtask, in this case for working on Replay MCP's ReactComponent MCP tool. First, the initial orchestrator-provided prompt: Then my responses to some of the agent's analysis and implementation suggestions: and finally nailing down some design decisions: OpenCode Config I have a very customized OpenCode config and setup that I've built to directly support that workflow. Permissions Management I don't YOLO or --dangerously-skip-permissions . I run my agents directly on my own machines, no sandboxing. That also means that I need some amount of safety checks on commands that get run. I do want to eliminate as many unnecessary permissions prompts as I can. Even if I'm watching and directly driving an agent session, it does get very annoying to see a bunch of permission prompts in the chat session blocking and waiting for my approval, when they're pretty clearly harmless. So, as I said in Part 1: determinism. I generated a custom OpenCode plugin to auto-approve as many Bash commands as reasonable based on the contents. It's decently sophisticated. There's a very long regex-based list of known safe commands and subcommands that get auto-approved, as well as a similar of known dangerous commands that will get blocked. It actually does Bash parsing and tries to deal with heredocs and command substitutions. The bigger question is how this actually works with OpenCode at all. OpenCode refactored their whole permissions and plugin system a few months ago. There was already a "permission.ask" event trigger that allowed plugins to actually return a result, but in the refactor that got disabled. I filed an issue, other people have filed PRs, those haven't been merged. So, I've been maintaining a small local fork of OpenCode that reimplements that functionality. That allows my plugin to actually manage permissions. I saw Claude Code now has a "not quite YOLO but let the agent self-approve commands" mode. That's nice, but why rely on more agent calls and more tokens when you can just parse and manage the commands deterministically? :) The big loophole here is dynamic scripts - bun -e , node -e , python3 -c . Agents love those. They're really useful! Don't even bother writing a script file to /tmp , just bun -e "someCodeHere()" and get the results. Really useful when introspecting some data files. Obviously this means the agent could trivially smuggle through code that starts nuking folders or uploading my secrets to the mothership. In practice: I'm not sure I've seen my agents actually try to run a command that would be truly destructive. I've got these guardrails in place, and to some extent I haven't seen evidence that they're necessary . The permissions plugin does try to do some additional scanning of inline eval scripts for blatantly obvious calls like unlink() and flags those entire commands for approval. It's a tradeoff I'm happy with at this point. File Reads OpenCode has a Read tool, same as every other harness. It works. But agents default to just reading massive amounts of file text, over and over, both to learn the codebase and to remind themselves of what they've seen already. I found a file read caching tool called cachebro that is available as an MCP. It checks file access times and hashes, and if the file hasn't changed since the last read, the tool returns a message saying "this hasn't changed". I've told my agent to default to using cachebro for file reads. Unfortunately, the cachebro MCP read tool doesn't interact with OpenCode's own "file last read" logic. That meant that if my agent tried to write to a file, OpenCode would return an error saying "you must use the Read tool first", and then it would have to actually call Read and it's all a waste of time and tool calls and tokens. So since I was already maintaining a small running fork of OpenCode to handle the "permission.ask" event, I just added another commit to the fork that exposed OpenCode's "file access time" calls into the Plugin interface. Then I built my own cachebro plugin that watches for cachebro MCP tool calls, and gets/sets the file read times so OpenCode knows that file's been read. Works great. Code Structure and Search Per above, agents default to just Read for everything. This is awful for codebase exploration. Read 10-15 files just to trace dependencies and imports. Lots of extra wasted code text bloating the context. Don't do this! I've tried out a half-dozen different MCP tools that do full codebase parsing and provide tools to query structure, dependencies, outlines, and relevant chunks of code. Currently, I use grepika and tilth via MCP, and get great results. Highly recommended. I again have my AGENTS.md with instructions to always use those as the primary file reading options, and I consistently see my agent using them and intelligently only loading relevant parts of files. I've also previously tried ckb (CodeKnowledgeBase). It's got a massive set of tools for querying structure and blast radius, and I've wanted to use it, but I've run into a few problems with indexing not working or tool calls timing out. Been playing with ariadne , and I'm constantly keeping an eye out for other codebase indexing tools. Context Management Per above, I do all my work exclusively in subagent sessions that I drive myself. This means my parent orchestrator session doesn't have any issues with maxing out the context window and needing to compact, but the child tasks do. I did pretty frequently hit 160-170K context and run into auto-compaction. I hated it. The auto-compact summaries were adequate , but inevitably there'd be a bunch of details I cared about that would get lost. At first I built some dev scripts commands that would read the OpenCode session JSON files, filter out tool calls, and export the meaningful message contents out as a complete Markdown file. I built a /session-reload command and skill that would force the agent to run the export command, read the entire exported transcript, and then pause. However, grepika really reduced the amount of code that was bloating context. That helped. Then I found the OpenCode Dynamic Context Pruning Plugin . Instead of waiting until your session is almost at full context and then doing a big summary of the entire session as a replacement, which would be really lossy, it gives your agent a compress tool that it can use at will to compress and summarize chunks of your session (like a bunch of exploration file reads, or earlier messages as you switch focus to a follow-up effort). This means there's more of the session messages that stay exactly as-is, there's less time spent compacting, and it's much rarer that one of my subtask sessions actually nears max context and has to compact everything just to reset. Ironically, I really found a great working combo of tools right before Anthropic shipped 1.0M context windows by default for everyone :) But seriously, in the last couple months since landing on this combo of tools and plugins, I find that even a very long-running technical subtask session rarely gets above 100K context, thanks to grepika and cachebro minimizing file reads and the agent happily compressing earlier chunks on the fly. I know this does mean you might have some cache invalidations that could bump cost because it's no longer just the one latest message at the end of the session that hasn't been seen by the server. But on the flip side, keeping the actual total context size smaller seems to pay off, and it's not like the agent is calling compress every other turn. I was using the rtk Rust CLI tool to automatically compress the output of tools like grep to save on tokens. Unfortunately I saw too many cases where the agent got stuck in a loop trying to call grep , rtk grep would change the output too much, the agent got confused and tried again, and it just wasted time and tokens. So, eventually disabled rtk . Might come back to it at some point. Session History and Search As mentioned, I initially built some custom scripts that would find the right session JSON files and export as separate Markdown transcripts with just the message text, no tool contents. OpenCode 1.2 switched to storing sessions internally in SQLite. I held off upgrading to 1.2 for a while because I had all my custom scripts and commands and didn't want to take the time to rewrite them. But, I finally did, and that actually simplified things quite a bit. My previous /session-reload command told the agent "run the export session -type command, look at the list of most recent sessions it gives you, find what you think is the right Markdown file based on your own context and instructions, and read that". Kind of awkward, left room for error. After rewriting my own session history plugin to read from OpenCode's own plugin/internal client.session object, that all went away. Instead, I have a reload_session tool that can just directly grab the list of messages from the plugin API using the session ID, filter, construct the Markdown contents, and directly return it as the tool call result. No file path or "match up the session" steps needed. It was also trivial to throw together search_sessions and read_session tools. They're currently pretty dumb and just do basic regex searches on session contents, no vector DBs or similarity scores or anything. But they're pretty useful even in that form. Dev Plans Repo and Management Scripts Plan Management Issues During my initial couple months of using KiloCode, I found myself with the same proliferation of Markdown plan files that we've all run into. So where do those go? The agent wants to default to writing them to the root of whatever repo you're working in. I made an effort to redirect it to write them to a ./docs folder, although in our main backend repo that already existed so I had to resort to ./docs/merikson . Some of these plan files were worth committing or preserving, even if just for my own reference later. Others weren't. So where do the plan files go if this is a shared repo? I really didn't want to pollute a shared repo and commit history with dozens of my own personal semi-ephemeral plan files, or even the maybe-more-widely-useful architectural writeups. Personal Dev Plans Repo I decided the best option was to set up an entirely separate personal development doc knowledge base repo, just for myself. I dubbed it dev-plans . That would give me a consistent place that I could store all my own Markdown artifacts and knowledge, commit it, save those for future reference, and not pollute the shared actual repo Git history. My dev-plans repo structure is: /dev-plans /personal /redux /$PROJECT1 /architecture /features /progress-updates /research /subtask-handoffs current-focus.md QUIRKS.md /replay current-focus.md is intermittently updated whenever I feel I'm significantly shifting gears or focus on a repo, or completed a major chunk of work and the "what I'm working on now" section should reflect that. QUIRKS.md is more of a project structure, known actual quirks or patterns, things to remember document. Every file other than the two fixed current-focus.md and QUIRKS.md files starts with a YYYY-MM-DD prefix, such as features/2026-05-06-some-feature.md . I've got some archival scripts set up to move older documents from the flat folder structure into a nested YYYY/MM structure to keep things a bit more readable, but haven't done much with that yet. I suspect I'll need some tools to help index the documents when I do that. Workflow Artifacts architecture is meant to be longer-lived explorations of the codebase structure and patterns. Full-blown "what do we know about this project", vertical "trace through this feature or data flow path", reference material features is WIP development plans. Here's the next thing we're going to build, we've turned this into a concrete plan, use this as the basis research is more of a grab bag. Sometimes it's scanning the codebase for concepts, other times it's research dives through Github and NPM for relevant concepts progress-updates is the daily dated appended progress entries, subtask-handoffs is the individual handoff files that get automatically archived as soon as they're read devplans.ts Automation Script I've settled on using Bun with TS scripts for a lot of my personal needs and utilities. I've tried to automate a lot of the common tasks I saw consistently pop up when interacting with the dev-plans repo. I created ~/.config/opencode/scripts/devplans.ts and have fleshed it out over time with a variety of commands the agent uses all the time. Currently, that provides: /** * devplans.ts - Unified dev-plans CLI helper * * Commands: * devplans info Get project mapping info (no side effects) * devplans progress Get/create today's progress file (with late-night date logic) * devplans progress list [n] List n most recent progress files (default 3) * devplans progress append [file] Append entry from JSON file (deleted after read) or stdin * devplans handoff create [slug] Get path for new handoff file * devplans handoff list List files in pending/ * devplans handoff move [file] Move from pending/ to completed/YYYY/MM/DD/ * devplans handoff consume List, read, and move all pending handoffs * devplans doc create Create dated doc (type: feature|arch|analysis|issue) * devplans doc list [n] List docs of type (default 10) * devplans session extract Extract recent sessions, list newest 10 * devplans archive Archive old files to folder/archive/YYYY/MM/DD/ * devplans archive --all Archive all doc folders */ These deterministic commands save a lot of steps that the agent would have had to run itself to figure out what dev-plans folder path matches the current repo, creating placeholder handoff files or documents, and updating progress docs. Most of my OpenCode slash commands start with some variation of "Run `bun dev-plans.ts some-command". I also have a JSON file with folder mappings for my usual repo checkout paths in my personal laptop Windows and work laptop WSL environments. That way the script can just read those mappings and use the known paths. Per the Workflow section, I have a /init command that helps me set up the scaffolding when adding a new project to dev-plans . Progress Updates and Subtask Handoffs The most used subcommands are for progress and handoff . My original /progress command told the agent to actually read today's progress file completely, then append a new section. This became an O(n^2)-type problem as the progress file kept growing over the course of a day. Just reading the file would bloat context, and this was especially bad when the subtask was already bordering on max session context. Now, devplans progress prints JSON output with today's progress file path, but also creates a placeholder temp file and provides that path as well. The agent is instructed to overwrite the placeholder with its actual update, and then runs devplans progress $TEMPFILE . The script then deterministically appends the new section to today's progress doc so the agent didn't have to read that file itself. Similarly, /subtask-complete in the child tells it to run devplans handoff create creates a target file path that the agent can write to, and then when I run /subtask-resume in the orchestrator parent it runs devplans handoff consume which auto-prints all pending handoff files immediately and then auto-archives them. This saves multiple steps of the agent fumbling around. The devplans commands also intelligently handle dates and timestamps - automatically generating file paths with timestamps, figuring out today's progress file, and even assuming that any updates between midnight and 6 AM really belong on "the previous day's progress file" because it's likely I was working late into the night on something. There's still a lot of manual trigger behavior in here, and again I'm good with that :) AGENTS.md My AGENTS.md file is currently about 250 lines (and writing this post forced me to review it and do some reorganizing and condensation - it had gotten rather crufty). It starts with a short personal overview: who I am, day job at Replay, OSS work on Redux. Major sections include: Interaction patterns: I specifically instruct the agent to be keep its responses short and direct, and avoid sycophancy. That includes both descriptions, and acknowledging my instructions. Thinking and problem solving: use critical thinking and be skeptical about assumptions and correctness; stop and rethink problems if stuck; do research, not trial-and-error; state plans and wait for confirmation to check assumptions and confirm user intent Git: never commit, always stop and wait for me to review changes Personal tool environment: personal vs work laptop setups, path management, use Bun for scripting not Python Coding standards: TS usage, running tests, minimizing comments Code navigation: minimize context loading at all times; use grepika and tilth for navigating code, cachebro for other file reads Tasks and behavior: manage todos and progress; be careful counting completion; manage current context Dev plans workflow: use devplans.ts for file management; use of QUIRKS.md and other rules files Subtask spawning and workflow rules: only spawn subtasks when told; verify completion; I make no claims that my AGENTS.md is optimized, correct, or a model to follow :) It's just what I've evolved through my own usage. Commands and Skills Project Setup I have some commands and skills for initial dev-plans setup for a new repo - the usual /init and /architecture -type commands that scan the codebase, do a writeup of the details, do some initial architecture description docs, etc. Don't do those often, nothing special there. Progress and Subtask Management As described above: /progress specifically instructs the current session to create a new entry in today's progress log. /subtask-complete tells a child subtask to record a separate handoff file that can be used as a "return value" to update the parent orchestrator session, /subtask-resume has the parent session read all outstanding handoff files to know what got done. Task Tracking For most of my day to day work development, I've gotten along fine without any explicit external task tracker. I'm the one who knows what I'm working on. For a couple projects, I've tried using dex as a lightweight external nested task tracking CLI. (Think beads , but with way less slop.) It's worked pretty well! I've got a skill that instructs the agent how to use dex efficiently. I'd have the orchestrator session run dex commands to see where we stand in terms of task status, then pass dex task IDs to a subtask and tell it to mark that task as in progress. Similar to avoiding having the agent do any Git commits, I told it not to mark any dex tasks as complete until I explicitly instructed it to do so, and have a /dex-complete command to help with that. Other Commands /session-reload extracts the entire message history of the current session and returns it. Per above, this used to be writing it all to disk as a Markdown file, now it just constructs the transcript in memory from the DB entries and returns it as the tool result. I use this much less frequently now thanks to the OC Dynamic Context plugin and use of better file search tools - now that I have those I rarely get close to 150K+ context even in a long running subtask session. I wrote my own AI-powered code review tool called diffloupe that tries to compare stated change intent vs inferred change intent, and reviews for both bugs and intent mismatches. I have a /code-review command that tells the agent to review the current changes by triggering diffloupe and then report on the results. Other Skills I do have a variety of skills available: several for frontend design and UI work advanced TS patterns Replay CLI and MCP usage Architecture design and feature planning File / codebase search tools Assorted skills explaining how to use diffloupe , dex , and gh Config Improvement Process After I did my initial config and workflow development efforts back in December, I've alternated between periods of leaving it exactly as-is and focusing on just doing work, and getting annoyed with parts of the workflow and making improvements. Generally it's noticing that some particular pain point is becoming an issue - that I keep having to repeat a particular set of instructions, or that part of the workflow could be automated via devplans.ts , or trying out a different codebase indexing plugin that I found. At that point I'll go spin up a new session inside my OpenCode config repo itself, talk through the problem space, and develop the changes accordingly. As a relevant example, just reading AGENTS.md to write this post showed me how the content had gotten somewhat bloated and disorganized. So, I just started up a new session to review it, described my pain points, and the agent suggested a slimmed-down version that retained the key points, moved some of the detailed file tool usage instructions out to a separate skill, and better organized the "how to communicate" and "daily workflow" sections. Done. Potential Future Workflow Improvements I'm pretty happy with the tooling and workflow that I've got right now. The one area where I feel I'm lacking right now is that longer-term memory and context. The system I've got is great for "what is the repo we're working in?" and "what's the current set of tasks?", but I'm finding I have to do a lot of work to dig up other recent sessions where some decision was made or a research document was generated, and feed those back into the current session. I need something that helps index or scan generated planning and progress files and dynamically feeds in relevant results to the current session, or MCP tools that the session can use to scan already-indexed files. I also don't have any kind of automatic "scan recent sessions for common patterns or corrections or learnings, and extract workflow improvements" system. I do instruct agents to include possible learnings in the progress and handoff artifacts, and sometimes those trickle over to updates to QUIRKS.md , but I feel there'd be value in the automatic review process. I am very happy with grepika and tilth for codebase exploration over just reading files manually. I can imagine it would be nice to somehow preload more of the codebase into a given session so it doesn't have to re-explore some of the same files each time Code review and ensuring intent are still hard. diffloupe has been useful for doing some review checks. I intended to add my own full code review UI to it, but got distracted and never got back to that. I've bookmarked a bunch of other code review tools and may still investigate some of those. Final Thoughts 6000+ words, and this was with me deliberately avoiding going into full amounts of technical detail :) So there you go. See the example config repo for the actual commands, scripts, and setup. No idea how many people will end up going through here, but as always, hope this info was useful! And more than anything else: whether you use AI to write all your code or write it by hand, I hope that you can find a workflow for yourself that is sustainable, maintainable, understandable, and safely productive.
Set StudioMore Front-end Bloggers2 min read
Astro is our preferred front-end platform
 We’re not usually ones for welding ourselves to a platform or technology, aside from web standards like HTML, CSS and JavaScript. Part of what makes us so…
Harry CresswellMore Front-end Bloggersread at source
Designing the Morpho album artwork
Matt and I have been creating artwork for his music for almost 12 years now. It’s a collaboration I’m immensely proud of, and one that offers a welcome change of scene from my day-to-day job of designing and building websites. Morpho , released on Sound Records in November last year, is our most recent project. Our 12th vinyl release and the 1st Matt is releasing using his last name, Benyayer, instead of his pseudonym, Dark Sky. Now, I must admit, I’m no print designer. And, to be clear, this is my one and only what I’d call “graphic design” gig. However, I now find myself in a position where I have a decent amount of experience creating music artwork. More specifically, artwork for records pressed onto 12" vinyl. With that in mind, I figured it might be interesting to share some of the process that went into making the artwork. Planning Projects always start life on WhatsApp, where Matt and I will discuss all sorts of ideas for concepts that somehow resonate with the music Matt has created. For this project, it was important to create something that felt connected to the artwork that we’d already designed for the singles making up the album. A similar vibe, but somehow different at the same time. It had to feel bigger, more impressive, like a season finale. At the start of a new project, Matt creates a shared Google doc, which tends to evolve as we sculpt our rough ideas into a cohesive direction. The document includes the project objective, themes to explore, information that needs to be present on the final product – think track listings, record label logo, catalog ID – and any technical notes that might be useful, such as colour options for the vinyl, who is printing it, and so on. Not a creative brief in the strictest sense, but something not far off. Once we land on a concept that feels right, all other ideas get scrapped. Any references to those ideas get moved to the bottom of the document, for future reference. But, this usually doesn’t happen before we‘ve explored a whole bunch of ideas first. So let’s get into that next. Research Once we have some rough ideas in mind, it’s time to explore them further to see if we can turn any into a solid concept. A large part of that involves going down the rabbit hole, usually online, to research subjects as much as we can. Early in the process we’ll set up a mood board to collect visual references. These might directly relate to a concept, or simply reference a design style or technique that we think could work well and want to try out. Much like the creative brief, we’ll refine the mood board as we start to make sense of our ideas and land on particular concept or direction to explore further. The goal is to get some inspiration for how a concept might translate into something visual. Our wild ideas are usually tamed by what the label is prepared to pay for. No surprises there. So, another important part of our research is to consider what’s possible within the budget, as well as to identify any creative constraints that may cause issues further down the line. We’ll consider print and vinyl pressing techniques, materials we could use, and so on. At this point, we’ll reach out to potential printing partners to discuss our ideas and figure out what’s possible. We’ll also request card stock samples to help us decide on packaging weight and finish. It’s important to get an idea of these things early on. That way we hopefully wont end up designing something that isn’t feasible to create in physical form. Lucky for us, Sound Records had a decent budget and were open to doing something a little different. This gave us a fair amount of creative freedom and presented a good opportunity to work with a laser cutter. We’d been keen on the idea ever since spotting the artwork for Cascade by Bambounouu a few years back. Concept development After pursued a few dead ends, I received the following message from Matt: ”…it could be interesting to look at symmetry in nature and take inspiration from it. Maybe deconstructing and repeating the body parts of a butterfly could be a something to look at. Could be super subtle. Utilise forms found in nature to enhance the function of the design 🤔. Butterflies symbolise transformation and rebirth, which connects to this new project well and the process I’ve gone through moving from Dark Sky to Benyayer.“ This one had promise. We’d worked with symmetry before on Cold Harbour EP . The artwork was based on a photo Matt had taken of Barrier Block , the brutalist style housing estate in Brixton, South London. Exploring symmetry in nature felt like a nice evolution, yet a fun little throwback to 2019, when we created that particular artwork. It also gave us a subtle way to link this new project back to Matt’s earlier work as Dark Sky. The concept felt like a good fit, so we researched it further. Somewhere along the way, this lead us to Belenois aurota , a medium-sized butterfly, also known as the Pioneer White. Two large migrating butterflies followed: Monarch , one of the largest and rarest butterflies seen in here the UK, and Menelaus Blue Morpho , one of the largest butterflies in the world. While the Pioneer and Monarch would steer the rest of the project visually, the Blue Morpho would eventually lead to the album title itself. The Pioneer White, photo by Jaya Shukla The Blue Morpho, photo by Mori M The Monarch, photo by Justin DoCanto Now we had some creative direction, it was time to explore the concept visually, to see what we could create. Design ideation During design ideation, the goal is to figure out how to turn our concept into a piece of artwork. It’s the point we jump into design software, draw on our inspiration, play around with various techniques and create basic mockups to see what we can come up with. For this part, we usually meet up in person to work on the project together. We wanted the artwork to feel alien, like nothing you’ve really seen before. That meant trying not taking the concept too literally. Whatever we ended up creating had to be a subtle abstraction, not immediately obvious. Something to make you pause for a moment, wondering what the hell it is. As with every project, it also had to be appealing to look at. That may sound fairly obvious – it’s a visual artwork after all – but it‘s easy to forget when you’re busy messing about with design software. For every project, we’ll also consider how the artwork will translate into visuals that can be animated. This is important for live shows, social media reels, and so on. Admittedly, this has been an afterthought in the past and a challenge to reverse engineer, so these days we try to account for this early on. With our concept in mind, Matt played around with openart.ai , using it to generating a bunch of new ideas from our visual references. Generated using openart.ai Generated using openart.ai Generated using openart.ai This helped us visualise some interesting, somewhat alien, jellyfish-like looking forms. However, using a butterfly as the source image would often produce results that felt much too literal. Generated using openart.ai Generated using openart.ai Perhaps we didn’t push things far enough with AI. However, ultimately we concluded that although it was an interesting way to brainstorm ideas, it wasn’t a tool we wanted to rely on to produce the final artwork. After some experimentation, we came back to Matt’s initial idea of deconstructing and repeating the body parts of a butterfly. Focusing on the organic shapes found in the wings of the Pioneer White, we created a rough trace in Affinity Designer. The Pioneer White, photo by Divam Suthar Vector trace of butterfly wings Now we had some vector shapes to work with, the next step was to deconstruct them further to create a symmetrical design that felt interesting and a little weird. The process was made much easier once we discovered the symbol tool trick used to create symmetry in Affinity Designer . Your browser does not support the video tag. Soon enough, we realised we were in the process of creating the artwork that would become the laser cut perforations featured on the outer sleeve of the vinyl packaging. We pictured these shapes revealing a graphic on the inner sleeve beneath. This meant we now had to consider an artwork for the inner sleeve itself. Early in the design stage, I’d played around with the idea of a gigantic bitmapped butterfly motif covering the full front and back of the sleeve. Being far from subtle, I’d abandonded the idea. We returned to the idea once we realised the motif would appear more abstract, when folded in half and viewed through the laser cuts, as it would be in its final form. By duplicating a couple of layers, adding a colour overlay, then applying a blend mode, we were able to come up with something that looked much more interesting. Both when seen through the laser cuts, and when the inner sleeve was removed from the outer sleeve altogether. Feeling like we might be on to something, we tried to piece each part together by creating a basic mockup of how the laser cuts might look with the artwork behind. Now it felt like we’re actually getting somewhere. Time to end another late night design session, get some sleep and look at it again another day. Finding the right direction is always a good feeling. You’re on the right track so you can finally let go of all the other ideas taking up mental bandwidth. In our next sessions we could focus on bringing it altogether. Development At this stage, we’ve visually distilled our concept into a clear direction. Now it’s all about developing the final artwork so is ready for production. The first step is to create final digital prototypes. That means creating mockups of the full product packaging. Outer sleeve, with laser cuts and printed elements like track listing and catalogue number on spine. Inner sleeve, on body vinyl labels and the vinyl itself. It’s not about getting it 100% accurate at this point. The goal is to visualise how the final artwork and physical product might eventually look. Then figure out if it works as we’d imagined. One of the harder decisions was whether to cut out the centre of the inner sleeve revealing the vinyl label beneath. This would create an extra challenge, as we then wanted to ensure that the design featured on the vinyl label would line up with the laser cuts on the outer cover. In reality it rarely would, that is unless you replaced the vinyl in its sleeve with perfect alignment and precision. But we wanted to ensure it was, at least, technically possible, to please those like us who obsess over the details. Ultimately we took the risk and decided to go for it. Seeing right the way through to the vinyl from the cover added some extra depth and dimension to the artwork. Given the intricacy of the design, Matt also made a physical prototype for the laser cut cover, using the sample card stock we’d received from the printers. It was important to figure out whether our laser cut design would affect the structural integrity of the outer sleeve. This lead us to remove some of the elements from the final graphic, then space the rest slightly further away from each other, and away from center and the edges. Your browser does not support the video tag. The next step was to turn our digital prototypes into actual deliverables. These are the print-ready files that the printer, and, in this case, laser cutter, can work with. This is the part where we spend way too much time fussing over the details, making sure everything is perfectly aligned and positioned where it should be on templates provided by the printer. To prevent any issues scaling artwork to fit, we always work in design files large enough to translate to 12" vinyl, even during the design ideation stage. Likewise, I’ll always set the colour format in Affinity to CMYK/8 and speak to the printer about what CMYK profile they want me to use. It’s most often Coated FOGRA39 , if that means anything to you. With this set up we shouldn’t have any surprises when the final product returns from the printer. As our design required both laser cutting and printing, we had to split the artwork into four separate files. One file for the laser cut outer. Another for the text and record label logo that would be printed onto the back of the outer sleeve. Then one for the printed inner sleeve. And lastly one more file for the vinyl labels. I like to export and deliver two versions of each file, one with printer guides and one without. That way there’s nothing to dispute later on. I tend to export and deliver all files in TIFF format to prevent any compression, but I know many printers prefer PDF. Production Now we’re at the business end of the project. Time to deliver our print-ready design files for printing and, in this case, laser cutting. The project is out of our hands and down to our chosen partners to turn digital designs into a physical product. My background is in web design. For those that aren’t familiar, it’s an iterative process. We’ll regularly make improvements to a website long after the project goes live. Print design is the complete opposite of that. There’s no room for mistakes and no going back once you’ve delivered artwork ready to be printed. Although there’s a sense of relief that our part is finally over, there’s still that lingering dread that we’ve messed something up and things won’t turn out exactly how we imagined. It’s an anxious wait between delivering the artwork and receiving it back. Fortunately, this time we got everything spot on. Much of that was down to a good amount of patience and two fantastic partners who were happy to answer our barrage of questions. Press on Vinyl did a stellar job on the printing, as did North London Laser on laser cutting the outer sleeve. Unfortunately, we weren’t organised enough to get shots of the print process. But we did manage to get some of the laser cutter in action. Wrapping up Although the progression from concept to artwork might seem fairly linear, I can tell you now, that couldn’t be further from the truth. In reality, designing music artwork is a messy process. At least, it is for us anyway. Until we hit the development and production phases, we tend to move back and forth between stages in no particular order. Often we’ll have an idea for a concept, do some research, mock up some visuals, then scrap the idea altogether and start the process from scratch. Over the years, I don’t think we’ve ever landed on the right concept before we’ve hit a bunch of dead ends first. Things only start coming together once we’ve done this dance at least a handful of times. Usually it’s a simple idea. Something we touched on early on, that needed time, experimentation and going through the motions to reveal itself and materialise. The final artwork is the result of many hours spent playing around with different ideas, parking the ones that aren’t working, then deliberating over where to go next. It takes time and effort to find the right direction. Along with countless emails, WhatsApps, a bunch of late nights, and arguably too much pizza and whisky. The whole project took around 8 months in total. From the moment Matt first briefed me on the project in February 2025, right through to when Matt received the finished physical product in October 2025. It’s hard to say how many hours we actually spent on it. We had the initial concept down within 3 months, but it wasn’t like we were working on it everyday. Often we’ll give it days, sometimes weeks, between design sessions. Giving ideas time and space to evolve seems to be the key. Anyway, we’re both super stoked with how the artwork turned out. A massive thanks to Tom at Sound Records , Antonio at Heartfelt Management , and the folks at both Press on Vinyl and North London Laser , for helping us to bring the project to life and making it happen. I’ve spent this whole time banging on about the Morpho artwork. However, I’d be doing a massive disservice to Matt if I didn’t mention his fantastic music that’s pressed on the vinyl itself. Ultimately, that’s what this project is all about. You can find Morpho on Spotify if you want to give the album a listen. If you’d like to own your own copy and support the project financially, it’s also available to buy directly from Matt’s Bandcamp page , in both digital and physical form.
30 seconds of codeMulti Author Blogsread at source
Cherry-pick an unreachable GitHub commit
Have you ever needed to cherry pick a GitHub commit that does not belong to any branch on this repository? Here's an easy way to do it.
Chromium BlogBrowsers, engines, etc.6 min read
JetStream 3: A modern benchmark for high-performance, compute-intensive Web applications
We’re incredibly excited to announce the release of JetStream 3, built in close collaboration with Apple, Mozilla, and other partners in the web ecosystem! While we’ve covered the high-level details of this release in our shared announcement blog post , we wanted to take a…
Perishable PressMore Front-end Bloggers2 min read
Launching My Latest WordPress Plugin: REST Pro Tools
Very excited to launch my latest WordPress plugin, REST Pro Tools. This is the premium/pro version of the free plugin hosted at WordPress.org, Disable WP REST API. The free version is very basic and does exactly what it says: disables the WP REST API, no options just activate and done. But some users wanted more features, like denying access to specific routes while allowing others. So I packed the pro version with all of the REST API tools most requested […]
Robin OsborneMore Front-end Bloggers4 min read
Your AI Robo-Buddy Is Legally Required to Grass You Up
Since it has an interesting overlap in the Venn diagram of “AI” and “data sovereignty”, here’s a brief follow up to my “Kubernetes, I Guess” article… Cloud Act The Cloud Act allows “federal law enforcement to compel U.S.-based technology companies via warrant or subpoena to provide requested data stored on servers regardless of whether the […]
Krasimir TsonevMore Front-end Bloggersread at source
The naked truth about AI-assisted coding
In this article, I argue that AI-assisted coding is useful but overhyped. I see real value in speeding up boilerplate and first drafts, but I also see serious risks: weaker developer fundamentals, more technical debt, shallow productivity metrics, security and licensing concerns, and growing pressure on open source maintainers. My core point is simple: AI can help me write code faster, but it still doesn’t solve the hardest part of software engineering - building the right systems that stay reliable, secure, and maintainable over time.
Rob DodsonMore Front-end Bloggers10 min read
How I Built My Mobile Second Brain
In my last post, My Second Brain Never Worked. Then I Gave It a Gardener , I mentioned that putting my Obsidian vault on a VPS with Claude Code permanently running on it, and being able to access it from my phone, was the real “ah ha” moment for me. A few people asked how I set…
Eric PortisMore Front-end Bloggersread at source
Monochrome Summer
Web Performance CalendarMulti Author Blogs8 min read
The Curious Case of the Shallow Session SPAs
Buried at the end of this year’s installment of my semi-annual series on network and device reality is a mystery: multiple, independent data sets from the Web Performance community indicate sites built as Single-Page Applications (“SPAs”) receive, on average, only one (1) “soft navigation” for every “hard” page load. The RUM Archive and Michal Mocny’s […]
Samuel KraftMore Front-end Bloggersread at source
Using SF Pro Rounded with React Native
How to use San Francisco Pro Rounded with React Native
The CSS PodcastPodcastsAudioListen
100: Season 6 wrap up
Una and Bramus recap the season! They share some new updates and re-visit some of their favorite tips and tricks.Season 6 covered inline if() statements and custom functions, scroll state queries, carousel APIs, view transitions updates, anchor positioning, command invokers and…
David Walsh BlogTop Front-end Bloggers1 min read
JavaScript SpeechSynthesis API
As the web continues to be the medium for all users, standards bodies need to continue to provide new APIs to enrich user experience and accessibility. One underused API for unsighted users is speechSynthesis, an API to programmatically direct the browser to audibly speak any arbitrary string. The Code You can direct the browser to […] The post JavaScript SpeechSynthesis API appeared first on David Walsh Blog .
Jim Fisher’s blogMore Front-end Bloggers1 min read
The migration SQL should go in the table
So you run migrate in your dev environment, but it fails: some unknown migration add-foobar has already been applied from some other experimental branch, and the migration tool doesn’t know how to down-migrate it. To fix it, you have to hunt for the branch that created that…
Fun Fun FunctionYouTube ChannelsVideoWatch on YouTube
saturday night lazyvim fauxrora chill
JSConfYouTube ChannelsVideoWatch on YouTube
🚀 JSConf México 2025: Live Stream Day 2 - Stage B
Mike TaylorMore Front-end Bloggersread at source
A new, new logo for the W3C
In an effort to pivot this site into a full on graphic design side business after 2 blog posts about logos in a row (hit me up exclusivly on FB to request a consultation), I thought I would reveal my new, new logo for the W3C. It turns out they recently launched a new one, but some folks don’t love it . As an artist, it’s not my job to critique other art, but instead to offer my own compelling vision for the web. I shouldn’t have to explain why I went with the classic dark blue and asparagus colors—that much is obvious. And of course, turning c into a file extension as a reminder that NCSA Mosaic was written in C (I didn’t go with WorldWideWeb because that was written in Objective C and .m kinda messes it all up).