DevIdiot!
Show DEV: I built an AI/SaaS template with vanilla HTML, CSS and JavaScript
APEXVYRA is a front-end template for AI/SaaS products: a marketing site plus a full app dashboard, built with plain HTML, CSS and vanilla JavaScript. No framework, no build step, no backend.I wanted something you can open in an editor and change directly, without first installing a toolchain or learning someone else's component abstractions. Why vanilla?A few practical reasons:Files you can edit directly. Every page is an HTML file. Change the markup, refresh the browser.No build tooling. N
My quote feed returns two premium numbers. I only show one when they agree.
Over a week-long holiday I built a small dashboard for a narrow problem: investors in mainland China who want US index exposure.The context: many onshore Nasdaq-100 funds now cap purchases at ¥5–100 a day, or have paused them entirely. Demand moved to exchange-traded ETFs, and on Sep 30 those were trading 10–11% above their indicative NAV (IOPV). Put ¥10,000 in and you pay roughly ¥900–1,000 more than the underlying assets are worth.The page itself is simple: a list of ETFs sorted by that premiu
Your video breaks when you serve it from your own server, and 416 is usually the reason
If you moved private files off presigned URLs and started serving them throughyour own route, you have probably hit this: images are fine, PDFs are mostlyfine, and video is broken. The player loads, the timeline is dead, andscrubbing does nothing. There is no error in your logs because as far as yourserver is concerned every request was a 200.The cause is almost always Range, and specifically what you do with a rangeyou cannot serve. I got this wrong, then I read RFC 9110 properly and measuredwh
Step Caps, Timeouts and Retries for LLM Tool Loops in Node.js
To make an LLM tool loop safe for production in Node.js, you need five things. Cap the number of steps. Give every tool its own timeout. Retry only the failures that are worth retrying, with backoff. Make every tool that changes something idempotent. Log each step as one structured line. Without these, one bad answer from the model can turn into an endless loop, a stuck request or a refund that gets issued twice.This post walks through each guard in turn, with short snippets you can copy into an
Copy, Customize, Ship: Why useLayouts Isn't a Locked npm UI Kit
There's a specific kind of frustration I think every frontend dev has felt at least once.You install a UI library. It's great for the first week. Everything looks consistent, the docs are nice, you're moving fast. Then your designer, or your own brain, asks for one small change. The dropdown should open a little slower. The tab indicator should be rounder. The button shouldn't scale on hover, it should do this other thing.And you go looking for the prop. There's no prop. You look for a theme ove
Realistic API Performance Testing for Laravel/Next.js with k6 and Playwright
Why “Pass” Is Not Enough: The Agent’s Blind SpotImagine you just asked your AI‑driven test agent, “Did the checkout API survive the spike?” The agent replies, “All tests passed.” You celebrate, push the code, and the next minute a customer reports a 5‑second checkout latency. The agent’s answer was technically correct – every assertion in the test script succeeded – but it never warned you that the API would crumble under realistic traffic.Transferable rule: Never rely on a single “pass/fail” si
I Forked shadcn/ui to Build a Better RTL Experience
When I started using shadcn/ui for Persian projects, I quickly ran into a problem: the components are great, but building a truly comfortable RTL-first experience required a lot of extra work.So instead of building another UI library from scratch, I decided to fork shadcn/ui and adapt it for Persian and RTL interfaces.That project became FarsiUI. Why FarsiUI?RTL support is more than simply adding dir="rtl".Persian interfaces have their own requirements: typography, numbers, calendars, forms
Your blocklist is 2.2 MB of strings. It only needs 550 KB.
110,162 blocked domains. 550,810 bytes. Zero collisions.Those are the numbers my own Node script printed on Monday night, after it hashed a popular ad blocklist down to five bytes per domain. Then I diffed the file against the one a $2 chip downloads every week. Same bytes. A Pi-hole on a $2 chipThe chip runs esp32-c3-adblock, a DNS sinkhole for the ESP32-C3. Ad and tracker domains get 0.0.0.0 back; everything else is forwarded upstream. It hit #12 on GitHub trending this Monday with 196 st
How to Preserve Key Insertion Order in JavaScript
TL;DR: JavaScript objects do not guarantee insertion order when using integer keys. The ES6 specification forces integer-like keys (array indices) to the front of the object, sorted numerically. To maintain exact insertion order across all key types, you should use a JavaScript Map or restructure your data payload as an array.We have all been there. You write some JavaScript code, build an object, populate it with some keys, and expect them to come back in the exact order you put them in. For th
I asked an LLM which listings to skip. It kept getting the numbers wrong.
I waste a stupid amount of time reading pages just to find the one line that rules them out.A job post where the budget is hidden at the very bottom. "Brand new" headphones where the seller note, three scrolls down, says refurbished. ASo I thought, easy, I'll paste the page into an LLM with my own rules and ask "should I bother with this?" Attempt 1: just ask the modelSomething like:My rules: budget at least $500, max 3 revisions.Here's the job post: ...Should I apply? Answer yes or no and
What Is a Frontend Engineer?
⚡ TL;DR: Frontend engineering is far more than styling: it owns the browser runtime, interaction, and the human-facing layer. The takeaway is a clear map of what the role actually owns versus the backend, and the modern skills it really demands. ContentsYou can see the work, and that is the hard partA one-line definition (and a kitchen)The browser is the runtimeFrontend vs backend: who owns whatThe modern skill set (beyond "just styling")Common misconceptionsTakeawaysWhere to go next Y
Robust Error Handling and Async Route Wrappers in Express.js
title: "Robust Error Handling and Async Route Wrappers in Express.js"published: truepublished_at: "2026-11-11T09:00:00+05:30"description: "Learn how to build production-grade error handling in Express.js. Compare manual try-catch blocks, express-async-handler, and native Express 5 error propagation, while implementing custom ApiError classes and secure response formatting."tags: [express, nodejs, javascript, backend]ai_disclosure_level: some_aiHandling errors correctly in an asynchronous Node.js
JavaScript Notes:
1.Spread Operator (...):​Used to expand elements of an array or add new elements easily.Example:let arr2 = [4, 5, 6];arr2 = [...arr2, 7]; // Adding 7 to the existing arrayconsole.log(arr2); // Output: [4, 5, 6, 7]2. Array Destructuring & Rest Operator (...):​Extracting specific elements from an array into variables, and packing the remaining elements using the Rest operator.Example:const arr1 = [1, 2, 3, 4, 5, 6, 7, 8];// 'a' gets 1st value, 'b' gets 2nd value, '...c' collects the rest!const
JSON design tokens are a massive frontend anti-pattern
A Slack message popped up at 4 PM last Thursday. A junior developer was completely stuck on a simple button component. He was trying to map a dark mode background colour. I looked at his screen share. He had imported a massive nested JSON file from our design system package.He was writing a complex JavaScript helper function. Its only job was to extract a hex code based on a React theme context provider. He had spent two hours trying to figure out why the nested object paths kept returning undef
The Hidden Performance Ceiling of React Native Skia in Production
I was three weeks out from a major release for a clinical HealthTech platform when we hit a wall that didn't exist in our staging environment. We were using react-native-skia to render real-time physiological waveforms—ECG and SpO2 data—streaming from wearable devices. On an iPhone 15 Pro, the 60 FPS animations were fluid. On the mid-range Android tablets used in the clinics, the UI thread stayed responsive, but the Skia drawing layer began to lag three seconds behind the actual data stream.The
How to create a virtual machines in azure : A Step-by-Step Guide
What Is a Virtual Machine?A Virtual Machine (VM) is a software-based computer that runs inside a physical computer or a cloud environment. It behaves like a real computer and can have its own operating system, storage, memory, applications, and network settings. However, instead of being a separate physical machine, its resources are provided by the underlying physical computer or cloud infrastructure. in this article I will guide you on various steps on required to write a virtual machine in az
Build a Live Odds Comparison Dashboard with React and WebSockets in One Evening
<p>Liquid syntax error: Variable '{{% raw %}' was not properly terminated with regexp: /\}\}/</p>
React.js for Beginners: My First Step into React ⚛️
After learning HTML, CSS, and JavaScript, I started learning React.js.At first, React looked confusing because of components, props, state, and JSX. But after understanding the basics, I realized that React is a powerful way to build user interfaces.What is React?React is a JavaScript library used to build user interfaces, especially for web applications.React was created by Meta (Facebook).Instead of creating one large webpage, React allows us to divide the UI into smaller reusable components.W
Designing Human-in-the-Loop AI: Why an AI-Generated Reply Should Be a Draft, Not an Action
1. The Dangerous Shortcut Is Treating Generation as ActionAn LLM returning plausible text is a different event from an application committing that text to a customer conversation. The first produces a candidate. The second changes application state under an authenticated user's authority. Connecting the two is an architectural decision, not an inevitable next step after generation.It is tempting to connect a successful generation response directly to a message-creation request. The integra
I Built a Serverless, Offline-First Exam Simulator for the Google Cloud Architect Cert (Beta)
🧪 ArchiCloud PCA is currently in BETA. Everything below is live and working, but expect rough edges, new questions every week, and the occasional breaking change in how progress is stored. Feedback is very welcome. Studying on a train with zero barsI'm preparing for the Google Professional Cloud Architect (PCA) exam. Most of my study time happens in places with bad or no connectivity: trains, cafés, the 20 minutes before a meeting.Every tool I tried failed at least one of these:It needed a