DevIdiot!
Authentic Victorian & Georgian Doors: Traditional Character Meets Modern Performance
Restoring a period property is all about getting the details right. From fireplaces and flooring to windows and ironmongery, the right architectural features can completely transform an old home.One of the most important—and often overlooked—details is the door.Original Victorian townhouse doors are highly sought after because of their distinctive proportions, craftsmanship, and character. Unfortunately, finding an original door in excellent condition, at the right size, and suitable for modern
Architectural Breakdown: Who watches the watchdog? The boring work behind a monitoring SaaS
Who watches the watchdog? The 3 AM reality check for monitoring SaaSAt 3:17 AM, the pager screamed. PulseWatch, our monitoring SaaS, glowed green while our primary database burned. The culprit: the watchdog itself had silently choked. No fanfare, no alerts, just a slow, unnoticed death. Here is the unvarnished postmortem, stripped of corporate fluff, detailing how we fixed it under 8GB RAM constraints, with zero new dependencies, and race condition proof code. The Incident: A Watchdog
Launch HN: RonanRX (YC S26) – Personalized Peptides and GLP-1s
<a href="https://news.ycombinator.com/item?id=49543530">Comments</a>
How I Built In-Game Hot Reloading with an LLM Chat (Zero Build Steps, Pure ESM)
Imagine playing a 3D WebGL game in your browser, hitting an EDIT button, typing "make the camera lower and double the player's thrust", and watching the running game smoothly update in real time — without a page refresh, without a bundler, and without writing a single line to disk until you're ready to commit.Here is a look under the hood at how we built an in-browser AI game development loop using Native ES Modules, Blob URL graph rewriting, IndexedDB virtual overlays, and client-side LLM tool
Making three years of a Telegram group chat queryable
A three-year group chat is a knowledge base nobody can read. Somewhere in it ishow long the tax office actually took, which form replaced the old one, whichaccountant people quietly stopped recommending. Telegram's search finds a wordyou already know. It cannot answer a question.The fix is boring in outline: get the history out, turn it into documents, handthem to something that reads — NotebookLM, in my case. I built that pipeline forreal chats. The parsing has traps, and I list them below, but
12 Open Source Gems To Become The Ultimate Developer 🔥
TL;DRIt's been a while since I've done a collection (maybe month ago), but today let's look at 12 new and not-so-new projects that can really help you in development.They touch on different areas of development, but we will mainly talk about web development.If there's a project worth adding to the next collection, feel free to write about it in the comments, and maybe it will be included. 1. 🤖 OpenWork - The open source Claude Cowork alternative.And we will continue, of course, with A
Freeze the Repo Seam Before You Cut a Single File
A messy repo fails at the seam, not the function. Freeze that observable seam before any file move. Then apply exactly one mechanical cut this session.Rewrites collapse because they change many files at once. Callers outside your editor never appear in diffs. The freeze is the oracle those callers needed.This workflow does not pin a single function. Function pinning belongs to a different tutorial. This one pins the process boundary of a whole tree.Use it when mess spans files, folders, and re-e
TypeScript Tips: Unlocking the Jedi Mind Trick for Safer Code
The Quest Begins (The "Why")I still remember the day I spent three hours staring at a console error that read Cannot read property 'map' of undefined. The culprit? A simple string that came from an API, concatenated with a hard‑coded prefix, and then passed down as a prop. I’d written something like:function getUserBadge(id: string) { return `user-${id}`; // looks harmless, right?}Later, somewhere deep in a component, I assumed that id would always be a numeric string like "12" and used i
I wanted comments on my static site without another SaaS, so I built StaticLayer
I like static websites for the same reasons most people do: they're simple, fast, easy to deploy, and there is very little infrastructure to maintain.Then you want comments.Suddenly, the simple static site needs a third-party comment platform, a separate backend, or a server/database that you now have to maintain.I didn't really like any of those tradeoffs, so I built StaticLayer.StaticLayer adds moderated comments, anonymous reactions and polls to static websites, with the dynamic part deployed
Why We Need an "Architectural Floor" for Vibe-Coding (An Audit of 3 Apps Built by Claude)
If you have ever tried "vibe-coding" an entire app using an AI assistant, you already know the pain. You ask for a simple modal or form, and the AI hand-rolls a new one from scratch. It guesses prop names, ruins your z-index stacking, builds terrible focus traps, and completely ignores accessibility guidelines.Enter Toolcrib, a React component library that pitches itself as an "architectural floor" for AI developers—a baseline of correctness that an AI-generated app cannot fall below. A recent c
Accessible and Functional Quantity Spinbutton Pattern
Hey! This is Mica writing, a human not an AI agent (nothing against them, not discrimination of any kind is allowed here). Just a brief disclaimer before starting: this post was non AI-generated (I am not going to lie, I tried to use it for some research but since the errors I found were not properly documented the AI invented answers, lol) because I felt the urgent need to start using my brain and hands to craft something from scratch. If you are a human, let's connect, at the end you will find
React Email Checks Need Decision States
Most signup forms still treat email validation like a yes-or-no light. Green means good, red means bad, and everything in between gets squeezed into a vague spinner or a jumpy helper message. In practice, that model breaks pretty fast once you add async checks, domain rules, or risk review.I have had better results when the UI models an email check as a small set of decision states instead of one boolean. That tiny shift makes React code easier to reason about, gives support teams clearer signal
Query Every Token on the XRP Ledger With One Endpoint
The XRP Ledger currently has 20,351 issued tokens, and 1,661 of them traded in the last 24 hours. Getting at that data usually means running your own rippled node or stitching together several exchange APIs.There is a simpler path. Here is the whole thing in one fetch. The endpointconst res = await fetch( 'https://api.xrpl.to/v1/tokens?limit=5&sortBy=vol24hxrp&sortType=desc');const { tokens, total } = await res.json();console.log(total); // 20,351for (const t of
Why TypeScript Developers are Ditching Relational Databases for Knowledge Graphs
The modern web is built on a lie. For decades, we have forced deeply interconnected, fluid, real-world data into rigid rectangular cages. We take rich conceptual domains—such as enterprise organizations, multi-tenant SaaS workspaces, dynamic user permissions, and complex AI dependencies—and slice them up into normalized SQL tables or nested JSON document trees. When you need to know how Alice is connected to Project X through three degrees of separation, your database engine grinds to a halt und
Fable 5.1 World Modeling
<a href="https://news.ycombinator.com/item?id=49541458">Comments</a>
Learning React - Ep.1
This is the 1st post in my attempt to document my journey of learning React in depth. These posts will focus less on syntax and code snippets and more on conceptual understanding and intuition.I’ve used React before, but this time I want to go beyond “I know how to use React.” I want to understand why React works the way it does.So I’m starting with the fundamentals.At its core, React is about building a tree of components whose output describes what the UI should look like.A component is simply
Muse Spark 1.3
<a href="https://news.ycombinator.com/item?id=49541256">Comments</a>
Structured designs produce better apps, so I built a workspace for making them
A structured design produces a better app than a prompt or a pile of notes. That's the whole premise. When the screens, data models, routes, and roles are pinned down before any code exists, three things happen:The agent, or the developer, already knows what to implement. There's no guessing at what a page needs or what shape the store should have.The client sees what's in the product before it's built. A design they can walk through is a better review surface than a repo.The generated code inhe
Stop Fighting Portfolio Builders — Own Your Export
<p>Most "portfolio builders" lock you in. DevCard exports anywhere:<br>• self-contained HTML (host on GitHub Pages, anywhere)<br>• GitHub README<br>• React component (Pro)<br>You own the file.</p><p>Free = 3 generations. Paid = 15 (Premium) or 40 (Pro) runs/week. Stuck? A $5 / 10-run pack, no subscription. Subdomain hosting on paid, custom domains on Pro.</p><p>Try it free: <a href="https://www.omega-dev.uk" rel="noopener noreferrer">https://www.omega-dev.uk</a></p>
I Don't Think I Can Stay in Tech
<a href="https://news.ycombinator.com/item?id=49540138">Comments</a>