DevIdiot!
Offline by Design: Why the OnePassApps Studios Still Work With the Network Cut
I work on OnePassApps, so this is our own product and everything below is a measurement of our own build, taken in the live tab on 4 November 2026.There is a claim that runs through all seven of our browser studios: the file never leaves the tab. That claim is easy to make and easy to fake. The stronger question is what happens when the network is gone entirely. If the tool only works because a server is answering, then the file stays local but the tool is not really local.So I cut the network a
100,000 Rows. 200 Columns. Can Your JavaScript Data Grid Handle It?
Why real-world data grid performance depends on more than dataset size — and what developers should test before choosing a component.A JavaScript data grid can look impressive in a demo. Scrolling is smooth, sorting is instant, and thousands of rows appear without hesitation.But what happens when that same grid becomes part of a production application?Imagine an enterprise reporting interface with 100,000 records and 200 columns. Users need to navigate large datasets, resize and reorder columns,
A Jeeves for Every Coding Agent, a Pit Crew for Your Mac, and Simulators That Outlive Their App
You’re reading The React Native Rewind #64. Right Ho, AgentBertie Wooster never once worked out what to do next, which was fine, because Jeeves always had.Coding agents poking at Expo apps have been Bertie for a while: booting the wrong simulator, rebuilding when a reload would do, then asking us what went wrong.Kudo Chien (@kudochien) and Vojtech Novak (@vonovak) just introduced @expo/agent-cli, an experimental CLI "built by agents and designed for agents".What does it do that npx expo doe
How I made crypto payments work with a username instead of a 42-character address
I'm a solo developer from Tajikistan. Every time I watched someone send USDT, the ritual was the same: copy a 42-character address, paste it, compare the first four and last four characters, hesitate, compare again. One wrong character and the money is gone.So I built NoN Wallet, a self-custody wallet where you send money to a name. Here's how it works under the hood, and what I learned building it. 1. Creating a wallet: a name and a passwordMost wallets open with "write down these 12 words
Why Your Image Previews Should Never Inherit the Original File's Metadata
Why Your Image Previews Should Never Inherit the Original File's MetadataA user uploads a photograph, your application generates a smaller preview, and everything appears to work perfectly.The image loads quickly. The dimensions are correct. The thumbnail looks sharp.But there's a problem: the preview may still contain metadata from the original photograph, including GPS coordinates, camera details, timestamps, and information about the software used to edit it.For applications that handle
The water remembers your finger: a heightfield, a current field, and fish that acclimate
AQUIFER is a single-file underwater toy. No start screen, no instructions. You touch the water, and the water is the controller.Three systems do almost all of the work:1. A heightfield for the surface disturbance. A stroke adds energy to a grid; the grid relaxes and propagates. Fish and light read the same field, so a hard swipe and a slow drag genuinely feel different downstream, not just visually.2. A direction-aware current field. Strokes write vectors, not just bumps. Drag is anisotropic: a
The aria-live Message That Didn't Announce Itself
This is the contact form on my own portfolio site, the first project where I used JavaScript. I built it with an AI design partner, which reviewed my code, explained concepts, and helped me debug. The code is in the repo and the site is live. This post is about one part of the form: the message that appears after you press "Send message", and why it took two attempts to get a screen reader to announce it.The form validates in JavaScript, then sends the data to Formspree with fetch(). After that,
Compositing gave me a ground-truth alpha, but the truth came from a model
For a course project I wanted numbers for video background removal, not just squinting at frames. SAD, MSE and the rest all need a ground-truth alpha for every frame, and nobody hand-paints that for real footage. The usual trick is to build the clip backwards: take a foreground whose alpha you already know and composite it onto a background yourself. It worked, with one catch in what that "truth" actually is. Everything below comes from one synthetic clip, 90 frames at 540Ă—960, one machine, one
My matting pick won all 90 frames and still flickered more in 89 of 89
If a small client job asks for talking-head clips with the background cut out, I'd want to know before quoting whether a free FFmpeg chroma key is enough or whether I need an AI matting model. So on 2026-11-03 I built a small test, scored both, and got a result that changed how I read my own numbers: the AI matte had a lower error than the chroma key on every one of 90 frames, and it also flickered more on 89 of the 89 frame-to-frame steps. The test I could affordI don't have hand-pulled gr
Zero-Upload Image Processing: Compressing, Cropping, and Removing Backgrounds in Browser RAM (Architecture Deep Dive 2026)
Why are we sending confidential family photos, passport scans, and client assets across oceans just to delete white pixels?Most "online image converters" are subscription traps:"Upload your image to our AI engine..."You wait 30 seconds for a fake loading bar."You have used 1 of 1 free monthly credits! Upgrade to Pro for $19.99/mo to download high-res."Basic image manipulation—segmentation, canvas cropping, compression, and WebP encoding—can execute in sandboxed browser memory at 60 frames per se
If You Think React Is Free to Use, You Are Wrong.
React Is Not Free. Let’s Clarify This. When you use an abstraction over a complex task, it gives you convenience by moving complexity into a framework, which you learn through another mental model present in your mind. This adds more concepts, like React mental model complexity, component/state complexity, and reconciliation/runtime complexity. That’s why I say it: you move complexity into the mental model that is present in the mind. Another trade-off is control. You get maximum control wh
A college notice board in React: a first project for web design students
If you're a student learning web design and you've just finished HTML, CSS and some JavaScript, React can feel like a big jump. The best way across is a small project that you'd actually use. Here's one we give students: a college notice board. What it doesShows a list of notices (title, department, date).Lets you filter by department.Lets you add a notice through a form.Saves notices in localStorage so they survive a refresh.That's enough to touch components, props, state, events, forms, l
React: useEffect()
1. What is useEffect?useEffect() is used to perform side effects in a React component.A side effect is an operation that happens outside the normal rendering process.Examples:Fetching API dataSetting a timerAdding an event listenerUpdating the browser tab titleSubscribing to an eventBasic syntaxuseEffect(() => { // Your code}, [dependencies]);There are two important parts:() => {} -Effect function[] -Dependency arrayLet's learn what the dependency array does.2. Three types o
Introducing Still — A Commitment System, Not Another Productivity App
Most productivity tools help you manage your time.But what happens when you have enough time and still don't do what you said you would?That's the question behind Still, a commitment system I've been building to explore the gap between intention and action.Instead of simply tracking your tasks, Still helps you face your commitments.Here's what you can do with it:⏱️ Focused Sessions: Set a task, choose a duration, and enter full-screen focus mode.📊 Integrity Score: Track how consistently you comp
Does useActionState preserve input? Nine comparisons with manual form state
useActionState manages an Action's result and pending status. It does not automatically preserve input values. In this fixture, returning a validation-error result still cleared the uncontrolled input.The Action version was compared with ordinary onSubmit handling and useState, then a change to retain invalid input was tested. The state holding an Action result and the input that should remain after a failure each need a design decision. Call the same operation through an Action and onSubmi
Your PDF Converter Should Not Need Your Files
Here is a question most people never ask when they use an online file converter: where does my file actually go?With most big converter sites, the answer is: onto a stranger's server. You upload a bank statement, a signed contract, a passport scan. It is processed somewhere, stored for some amount of time (the privacy policies use words like "temporarily" and "up to 24 hours"), and you download the result and hope the deletion promise is true.We built our converters at MakeHumanAI the other way
Why I Chose App Blocks Over Custom Pages for Shopify Tracking
When I first started helping a friend manage their Shopify store, I assumed the hardest part was driving initial traffic and getting that first sale. I was completely wrong. The real headache started after the checkout was complete. My inbox was suddenly flooded with "Where is my order?" (WISMO) emails. We were spending hours manually checking tracking numbers across different carrier websites and replying to anxious customers. It was exhausting, unscalable, and felt incredibly unprofessional. I
Taming Shopify Post-Purchase: Building a Custom Tracking Widget
When I first started helping merchants optimize their Shopify stores, I noticed a glaring gap in the customer journey. The checkout experience was polished, the product pages were beautiful, but the moment a customer clicked "Pay," they were thrown into a post-purchase black hole. I was struggling with the exact same issue in my own projects: a relentless flood of "Where is my order?" (WISMO) emails. It felt like all the hard work of converting a customer was being undone by a clunky, anxiety-in
Finding your Saturn return in JavaScript (and why retrograde makes it messy)
Astrologers talk about the "Saturn return": the moment Saturn comes back to the same position it had in the sky when you were born. Whatever you think of astrology, the question underneath it is a clean astronomy problem: on which dates does Saturn return to a given ecliptic longitude?I built a small browser calculator for it, and this post covers the part that surprised me: the obvious shortcut is wrong, and the correct answer sometimes has three dates instead of one. The shortcut that doe
From Spreadsheets to Code: Calculating True Etsy Margins
When I first started selling handcrafted goods on Etsy, I did what almost every new seller does: I opened a spreadsheet. I built a massive, 14-column monstrosity to track my costs, pricing, and expected profits. For the first few months, it felt fine. But as my catalog grew from 10 items to over 150, the spreadsheet became a fragile house of cards. One accidental keystroke in a formula, or a simple copy-paste error when duplicating a row, and my projected margins were completely wrong. The break