20 Questions: Engineering a 16,000+ Entity Bayesian Mind Oracle, Shannon Entropy Questioning, and a Living Cybernetic Eyeball in Pure Vanilla JS
How we built an in-browser 20 Questions Mind Oracle capable of reading thoughts across 16,000+ entities with zero server round-trips: information-theoretic Shannon entropy question selection, soft Bayesian likelihood updates, popularity prior weighting, a living SVG vector eyeball with real-time mouse tracking and autonomous blinking, full turn rollback, and procedural Web Audio orchestration.
Read the post
Minnich Screen Recorder PRO: Engineering a 60+ FPS Multi-Monitor Video Capture Engine and Audio VU Studio in Python
How we engineered a lightweight, hardware-accelerated 60+ FPS screen and audio recording suite in Python: zero-copy mss framebuffer rasterization, multi-monitor topology resolution, non-blocking PyAudio level metering, multi-threaded OpenCV video encoding, click ripple highlights, and single-file .exe bundling.
Read the post
Timed Screen Capture PRO: Solving the Hover State Dilemma with Hands-Free Delayed Screenshots
The engineering behind a dedicated delayed screenshot tool: solving the ephemeral UI problem (menus, hover tooltips, and flyouts that disappear on click), animated digital countdown timers, automatic window exclusion, synthesized acoustic shutter audio, and instant Windows OS clipboard synchronization.
Read the post
PortMaster PRO: Building a Localhost Dev Orchestrator and Process Tree Killer in Python
How we engineered a tournament-grade localhost dev orchestrator and Windows process tree killer in Python: solving EADDRINUSE zombies, recursive taskkill process tree annihilation, live QProcess stdout streaming, mobile Wi-Fi QR pairing, and single-file .exe bundling.
Read the post
Minnich Crosshair PRO: Engineering a Zero-Lag Transparent Desktop Overlay and Esports Reticle Suite in Python
How we built a tournament-grade, click-through Crosshair X alternative in Python: native Win32 WS_EX_TRANSPARENT window styles, dual-pass sub-pixel QPainter vector geometry, dynamic recoil spread physics, 25+ pro esports presets, and a standalone single-file .exe distribution.
Read the post
8-Bit SFX Lab: Building an In-Browser Arcade Synthesizer and Tracker DAW with Zero Audio Libraries
How we built a complete retro arcade sound synthesizer and multi-row beat board in pure Web Audio API: procedural waveforms, custom pitch envelopes, Euclidean rhythm generators, musical scale quantizers, and seamless WAV/project export.
Read the post
Apex Ascent: Re-engineering the Vertical Platformer with Sci-Fi Momentum, Dynamic Audio, and Clean Contrast
How we rebuilt the classic infinite vertical jumper formula into a high-octane sci-fi climb: tuned apex bounce physics, one-bounce crumbling hazards, continuous rocket thruster audio synthesis, and high-contrast cosmic playfields.
Read the post
Top Admiral: Bringing WWII Aerial Dogfight DNA to an Endless Living Ocean
How we took Top Ace's arcade dogfight rhythm onto a procedural ocean: hydrodynamic drift physics, high-speed wave breaches, active CRT sonar, multi-turret dreadnoughts, and real-time Web Audio naval synthesis.
Read the post
The Daily Report: Getting a Morning Snapshot of Minnich.Awesome Without Opening Firestore
I got tired of opening the Firestore console every morning just to see how the site did the day before. Here's the automated email report I built instead — and the three things it needed that didn't exist yet: web tool usage tracking, daily article read counts, and a way to count unique players.
Read the post
Be Awesome: Turning the Other Half of the Name Into Something the Site Actually Says
Minnich.Awesome has always had "Awesome" sitting right there in the name. Here's why I finally pulled "Be Awesome" out of the domain and put it on the homepage, the footer, the loading screens, and the About page.
Read the post
The Great Performance Overhaul: Cutting 300+ Megabytes and Fixing a Hidden Concurrency Ceiling
288MB of images, 160MB of audio, a 6.9MB autoplaying video, and a Cloud Run instance that could only handle one request at a time. Here's the full breakdown of what got fixed, what got found along the way, and what got deliberately left alone.
Read the post
Revamping Seasonal Themes: From Laggy JavaScript to Handcrafted PNGs
How we rebuilt Minnich.Awesome's seasonal themes from the ground up—swapping laggy JavaScript particles for high-detail transparent PNGs, webbing up buttons for Halloween, theming loading screens, and adding a quick On/Off toggle.
Read the post
Why I Added Ko-fi (And Threw Away the Embed Widget)
Running an indie arcade ad-free means real server bills. Here's why I added Ko-fi, why the official widget script had to go, and how I built a native, adblock-resilient button instead.
Read the post
Moving to MinnichAwesome.com: Goodbye Hyphens, Hello Permanence
Why we retired minnich-awesome.uk for minnichawesome.com, how edge-level 301 redirects preserve every bookmark and search link, and why a real .com changes how a project feels.
Read the post
Welcome to the Devlog
Why this devlog exists, what you'll actually find here, and what's coming next for Minnich.Awesome.
Read the post
The Player Hub, From Clubhouse to Rewards Hub
I built a whole room-decorating, avatar, and clubhouse economy over three weeks, then tore most of it out in one afternoon. Here's why, and what's left of it in the code.
Read the postDay Rider: Keep the Wheels Moving
An endless highway dodge with two controls and no combat, and why that was the whole point.
Read the postWordMix Started Its Life as a Boggle Clone
A weekend word-search prototype, and why it needed a customizable grid before it felt like its own game instead of someone else's.
Read the post
Geometric Drafters, Formerly Perfect Shape
Scoring a freehand drawing against an ideal shape, and the rename that's still visible in the asset folder if you know where to look.
Read the postBlink Started as a One-Trick Reflex Test
Dots appear, you click them, you get a time. The whole game, before it became anything more than that.
Read the post
Tracer: Memorizing a Path You Can't Look Back At
A glowing line you have to memorize before it disappears, and balancing a scoring formula that rewards both speed and accuracy.
Read the post
Perfect Color Was Never Supposed to Have Modes
One RGB slider puzzle, one target swatch, no menu — the very first version of a game that would later split into three.
Read the post
QR Code Generator: Just a URL, at First
The original version only did one thing: turn a URL into a scannable code. That constraint is most of why it was easy to get right.
Read the post
Perfect Time: Designing a Game With No Feedback Loop
A timer that runs and vanishes, and why removing the one thing every other reflex game relies on was the actual design.
Read the post
Image Editor: Everyday Photo Edits, Zero Uploads
Brightness, contrast, crop, rotate — the edits people actually reach for, computed live on the browser's own canvas instead of a server.
Read the post
Color Palette Generator: Harmony, Not Random Hues
Seven color-theory harmony modes, a lock icon that took the idea seriously, and why random hex codes next to each other rarely work.
Read the post
File Converter: Two Unrelated Jobs, One Tool
Image formats and structured data formats share nothing technically — except that both are things people need converted right now.
Read the post
PDF Editor: The One Where No-Uploads Mattered Most
Merging, annotating, and stamping PDFs entirely client-side, and why undo had to work before this tool could be trusted with anything real.
Read the postPixel Editor: Built for a Grid, Not a Canvas
Every stroke snaps to a pixel grid on purpose, and the frame timeline underneath it is where the real complexity actually lives.
Read the post
Chess: Where 'Close Enough' Isn't an Option
Castling, en passant, and promotion all depend on history, not just the current board — and check detection means simulating every candidate move.
Read the post
Chess's Chaos Mode Was Built Alongside the Rules, Not After
Explosions, mines, and poison squares layered onto standard chess, with one unbreakable rule: never let it corrupt check detection.
Read the postAsteroid Dodge: No Shooting, On Purpose
Removing the weapon meant the asteroid field itself had to carry the entire difficulty curve, fairly, without a gun to bail anyone out.
Read the post
Stack Tower, Before It Had a Theme
No arctic setting, no Aurora Freeze — just a sliding block, an overlap check, and a speed curve I rewrote more than once.
Read the post
Memory Pulse: Tuning Four Numbers Instead of a Rulebook
A Simon-says format everyone already knows, and why getting the execution exactly right mattered more than any new idea would have.
Read the postAbyss Delve: The First Game Where Losing Actually Costs You
Turn-based combat, procedural floors, and permanent stakes — the first roguelike on the site, and the first game where death actually means it.
Read the postGoose Life: Care Mechanics Need Real Consequences
Feeding and training a goose only matters if skipping it actually loses you races — and one shared rhythm mechanic drives two different events.
Read the post
8-Ball Pool: Real Physics, Not a Convincing Fake
Spin transfer, rail bounces, and ghost-ball AI targeting — why this one runs on an actual simulation instead of scripted shot animations.
Read the postSolitaire: Implementing the Most-Cloned Card Game Correctly
No room to reinvent Klondike — just to implement it correctly and get out of the way, including an honest admission about unwinnable deals.
Read the post
Calculator: The Least Interesting Devlog Post That Wasn't
Floating-point rounding, an ambiguous percent button, and why a four-function calculator hides more small decisions than it looks like.
Read the post
Unit Converter: Temperature Breaks the Pattern Every Other Category Follows
Five categories, one live two-way conversion engine, and the one category (temperature) that can't just be a simple multiplier.
Read the post
Password Generator: Where 'Looks Random' Isn't Good Enough
Cryptographic randomness, an honest entropy readout, and a passphrase mode that's a real security trade-off, not a lesser option.
Read the post
Random Generator: Three Tabs, One Shared Core
Numbers, words, and coin-and-dice built on one tested random source instead of three separate implementations that could each drift wrong.
Read the post
Subnet Calculator: The Niche One I Built for Myself Too
Bit manipulation behind a friendly interface, and why usable hosts is never the same number as total addresses.
Read the post
Timezone Calculator: Fixed Offsets, Stated Plainly
Eight zones, instant comparison, and an honest trade-off about daylight saving that the tool states outright instead of hiding.
Read the post
Duplicate Finder: Automating a Tedious Eyeball Check
A small tool with a small job — spot every repeated line in a pasted list — and why blank lines and scale needed real thought anyway.
Read the post
List Comparator: Three Buckets, Not One Confusing Diff
Only in A, only in B, or in both — and how building this right after Duplicate Finder made the performance lesson land twice as fast.
Read the post
Text Tools: Four Utilities, Isolated Under One Roof
Case conversion, a counter, lorem ipsum, and a diff tool sharing one page but none of their actual state with each other.
Read the post
ASCII Art Generator: Two Modes, One Plain-Text Promise
Block-letter banners and image-to-ASCII density mapping, kept to plain text on purpose so the output works absolutely anywhere.
Read the post
Color Picker: One Color, Three Formats, Zero Drift
Hex, RGB, and HSL kept perfectly in sync from one canonical value, plus an eyedropper that only works because of a fairly new browser API.
Read the post
Timer & Stopwatch: Why setInterval Alone Isn't Trustworthy
Real timestamp math instead of tick-counting, so a stopwatch left running in a backgrounded tab still reports genuinely accurate time.
Read the post
Whiteboard: The Biggest Tool in the Batch
Layers, live shape previews, and layer-aware undo — the most architecture-heavy tool shipped today, built to feel like none of that exists.
Read the post
Building One Visual Language Instead of a Dozen Accidents
Why today's redesign waited until there was enough real content to find a pattern in, and how per-game accent colors survived the unification.
Read the post
Snake, Before It Needed a Reason to Exist
The plain, honest version of the oldest arcade format there is — input queuing, collision timing, and pellet placement, no theme attached.
Read the post
Raft Wars: The Most Systems I've Packed Into One Game
Real trajectory physics, a mid-air deflect mechanic, and a Quartermaster Shop with three upgrade paths that all had to stay genuinely viable.
Read the postCyber Runner 2000: Momentum Was the Entire Design
Chaining run into jump into dash into a shot, and building endless generation that can keep up with how fast that chain lets a player actually move.
Read the post
Automatic Seasonal Themes: No Toggle, No Maintenance
A date-driven reskin that reaches the whole site, not just the homepage, and requires zero babysitting once the date ranges exist.
Read the post
Critical Pressure: Puzzle Solving Under a Real Clock
Vent valves and a Spacebar brace turn a countdown gauge into a resource you manage, not just a clock you race against.
Read the postTurbo Grand Prix: Faking 3D and Meaning It
Eight hand-built tracks, a drift-boost curve tuned to reward commitment, and keeping keyboard, buttons, and touch equally precise.
Read the post
My Room Needed Friends to Actually Matter
Why friend requests go by email instead of a searchable directory, and drawing the line on what a friend actually gets to see.
Read the post
What 'Top Score' Even Means Across a Dozen Different Games
Per-game leaderboard configuration instead of one rigid schema, because a lower number is the better score in at least one game on the site.
Read the postCommando Assault: Designed Around Restraint, Not Reflexes
A match-3-style track shooter where firing the instant something's in range is the losing play, and killstreaks reset hard on purpose.
Read the post
Skywire Snake: The Reskin the Plain Version Earned
Same growth mechanic from three weeks ago, now a passenger-collecting sky-train — and the anti-frustration tools the plain version never needed.
Read the post
Frost Stack: Aurora Freeze on Top of a Foundation I Trusted
The May tower-stacker gets an arctic theme and a combo system, built carefully on top of overlap-check logic I didn't want to break.
Read the postOperation: Iron Atoll: Six Turrets, Six Real Reasons to Exist
Making sure no single turret dominates, and why invisible submarines needed to be a fair, telegraphed lesson rather than a cheap ambush.
Read the post
Light Heroes: Five Kits, One Shared Economy
Grazing rewards the riskiest play, the Dojo tree has to close real doors, and I'm least confident about balance on this one out of today's three.
Read the postRed Code: Quarantine — Three Weak Points, Three Different Fights
Legs, acid sacs, and carapace each teach a different lesson, and the flashlight and shield share one battery pool on purpose.
Read the postDrift Arena: The Guns Are Bolted On, So Sideways Is How You Aim
One constraint picked first and everything derived from it, a heat gauge inverted on purpose, and why walls stopped costing you health.
Read the postTop Ace: An Endless Dogfighter With Zero Bosses, So Far
Gun heat instead of ammo, a barrel roll built to beat the instinct to just fly away, and a CRT radar that's dressing solving a real problem.
Read the post
One Shell for 27+ Games, Proven Small Before Going Everywhere
The shared architecture started quietly on one or two games back in August — today it becomes the foundation for the entire catalog.
Read the postAlchemy Drop: Aim Determines the Neighborhood, Physics Does the Rest
Four genuinely different elemental chain reactions, a nudge that can't fully rescue a bad shot, and the first game built entirely on the new shell.
Read the postBlink Stopped Being Small
A 5-sector gauntlet, Endless Survival, and decoys tempting enough to actually fool you — built on the March version's timing precision, unchanged.
Read the post
Perfect Color Finally Got the Modes I Promised in March
Memory Challenge, Precision Match, and Speed Rush, sharing one RGB-matching core — and per-mode leaderboards so 'top score' stays honest.
Read the post
Achievements, Built to Reward the Whole Site, Not One Game
Per-game achievements tied to real skill, cross-game ones that nudge you toward games you'd never have tried, and retroactive unlocking done right.
Read the post
Wiring AdSense Into the Boot Loader Without Breaking It
Why the ad slot lives inside the shadow root, not slotted content — and the specific DOM-collapse bug that distinction exists to prevent.
Read the post
Restyling 12+ Web Tools Without 12+ One-Off Stylesheets
Nineteen tools built independently over months, unified under one orange theme that still has to feel right on a calculator and a whiteboard alike.
Read the postPaper Flight: One Button, Two Genuinely Different Feels
A tap-to-flap and a held glide from the same input, a hard failure state instead of a soft fade, and a deliberately cheerful tone under real difficulty.
Read the post
Why Light Heroes Went Back Under Construction
The balance uncertainty I flagged at launch turned out to be real, and patching it live, piecemeal, wasn't the honest way to fix it.
Read the post
The QR Code Generator's March Predictions All Came True
One URL encoder becomes eight QR types plus logo overlay, and the error-correction levels I said I was holding off on finally get exposed.
Read the post
The Cache-Busting Bug That Cost Every Visitor Bandwidth for Months
Random query strings were busting the cache on every single request instead of only when a deploy actually shipped something new.
Read the postGo Fish: Three Bots, Three Genuinely Different Ways to Think
Easy guesses honestly, Medium plays the odds under uncertainty, and Hard remembers everything public — never anything it shouldn't see.
Read the postPerilous Stacks: Real Physics, On Purpose, Even Though It's Harder
Frost Stack's overlap-check made a deliberate, different trade-off — this one commits to genuine rigid-body physics and the unpredictability that comes with it.
Read the post
Daily Crates: The First Gambling-Adjacent Mechanic on This Site
Why the drop odds are shown openly rather than hidden, and how duplicate protection got built in before it ever became a real complaint.
Read the post
Daily Bounties: Making a Task List Feel Like an Invitation
Real quests pointing at real games, sized to each game's own skill curve, and nudging toward whatever you haven't played in a while.
Read the postSolitaire Finally Gets a Guarantee I Said I'd Revisit
Generating deals backward from a known solution, keeping them from feeling suspiciously easy, and a hint system that actually knows the way out.
Read the postTop Ace Finally Gets the Boss Fight I Predicted It Would Need
A boss encounter built through the same gun-heat and barrel-roll systems every regular dogfight already uses, plus a real Aircraft Roster.
Read the post
Public Profiles: The Outward Half of the Player Hub
Rebuilt from scratch after the room concept's retirement — every section earns its place by representing something a player actually did.
Read the post
The Profanity Filter, and the Scunthorpe Problem It Had to Solve
Leetspeak normalization before matching, and stripping known-safe words so 'class' and 'cockpit' don't get flagged for what they contain.
Read the post
The AdSense Rejection, and the Content Rewrite It Actually Caused
"Low value content" stung, and it was fair — here's what every game's description and its new Tips section were actually built to fix.
Read the post
Retiring the One Lifetime Visit Counter for Real Per-Day Data
A single ever-climbing number can't answer whether traffic is growing — and the hot-fix bug that shipped alongside the rebuild that replaced it.
Read the post
Presence Tracking, Kept Deliberately Coarse
A stateless heartbeat model instead of per-instance memory — the same multi-instance lesson that already retired three multiplayer games.
Read the post
60 Sec Survival: Building the Site's Second Game
The site's second-ever game, four escalating phases, and why the route is still literally called /game-two.
Read the postNo posts match your filter.
About the Devlog
Notes on what's being built and why — new games and tools, the reasoning behind bigger reworks, and general site news. For the plain list of what shipped and when, see the Update Log.