Back to ToolKnit
Blog Tool Tales
Changelog

Every update, documented.

A running journal of every new tool, refinement and late-night fix that has shaped ToolKnit since launch day.

The Botanical Garden Edition

NEW BLOG POSTS IMPROVEMENTS
  • Blog index updated — Calculator Tools category now lists 5 articles (up from 3). Every one of the 60 shipping tools now has a corresponding blog post. Coverage: complete.
  • Site-wide consistency pass — Verified all 60 tool pages, repaired remaining stray <section> attribute artifacts, and confirmed the Pro Tips bullets render correctly across the entire catalog.
A note from the developer

I didn’t write this entry yesterday. I couldn’t. Yesterday was the day after she said no, the day after I deleted her contact, the day after I went to bed without dinner. I needed to put a buffer between that night and a keyboard.

So on the morning of the 12th, I drove to the botanical garden alone.

It was the wrong season. I’d been picturing color — tulips, peonies, anything — but the beds were mostly green, the paths half-empty, the camellias already past their bloom. I walked the loop once and felt the silence start to weigh more than the trees. So I did the only thing I knew how to do: I texted a friend and asked if he could come keep me company. He showed up an hour later without a single question. That’s the kind of friend you keep for life.

We wandered for hours. Talked about nothing important. Took a turn we shouldn’t have taken. At some point we looked up and realized we’d walked clean out of the garden, past a gate neither of us remembered passing through, and were standing on a suburban road with nothing but fields on one side and warehouses on the other. No shared bikes. No bus stop in sight. Just two guys, very lost, very tired, laughing because what else are you supposed to do.

We called a taxi. The driver took twenty minutes to find us. My phone said 18,427 steps. My legs agreed.

Then we made one final mistake: we tried to recover with food. Found a barbecue place that looked promising. It was, without exaggeration, the worst skewers I’ve eaten in my adult life. Burnt outside, raw inside, salted like someone had a vendetta. We ate it anyway because we’d earned the right to a complete bad day.

I got home that night, dropped onto the bed, and realized something quiet: the day had been a mess, the season had been wrong, the food had been terrible — and I felt okay. Not happy. Not healed. Just… lighter than the night before. Sometimes that’s all a day is supposed to do.

And then this morning, the 13th, my phone lit up with her name.

She wants to see me. Tomorrow.

I don’t know what to make of it yet. I don’t know what she’ll say, what I’ll say, whether we’re fixing something or just giving it a proper ending. But I know this: I’m not going to let pride or fear or the memory of one bad night make me miss the chance to look her in the eye one more time.

I don’t want to lose her again. If there’s any version of us that can work, I owe both of us the honesty of finding out face-to-face — not over a screen, not through silence.

So today’s update is short. Two blog posts. A coverage milestone — every one of the 60 tools on ToolKnit now has a written guide behind it. A clean, quiet shipping day. The kind that doesn’t make headlines, but matters for the people who actually use the site.

Tomorrow is for her. Tonight is for finishing this entry, closing the laptop a little earlier than usual, and trying to sleep without rehearsing every possible sentence in my head.

If you’re reading this — thank you for sticking around through these long, very personal changelogs. I started writing them this way because shipping software in silence felt dishonest, and because some part of me needed someone, somewhere, to know there was a real human on the other side of the deploys. Turns out that human cries, gets lost in botanical gardens, eats bad barbecue, and still shows up the next morning to push code.

Wish me luck.

Zihang Dong May 13, 2026 — 11:30 PM, the night before

The Rest Day Edition

NEW TOOLS
  • Tip Calculator — Calculate tip amount, total bill, and per-person split. Custom tip percentage slider, preset quick-select buttons, and instant breakdown for group dining.
  • Mortgage Calculator — Monthly payment estimator with principal & interest breakdown, full amortization schedule, and interactive chart. Supports custom down payment, interest rate, and loan term.
NEW FEATURES
  • Homepage Chinese translation — Added i18n support for the homepage. A “中文” toggle button in the top-right corner switches all visible text to Simplified Chinese. Default is English; user preference is saved to localStorage.
  • Language toggle button — Appears next to Blog / Tool Tales links. One click to switch, persists across sessions. Does not affect SEO-critical elements (title, meta, JSON-LD).
DESIGN
  • Hero kinetic typography — The homepage hero section now features a dynamic background of scrolling keyword rows. Seven rows of tool names, file formats, action verbs, and brand values scroll in alternating directions at different speeds. Pure CSS animation, zero JavaScript overhead, 60fps.
  • M-layout masking — The scrolling text is masked with a CSS mask-image gradient so it only appears on the left and right sides of the content area, fading naturally at the boundaries. The central content zone stays clean and unobstructed.
CLEANUP
  • Removed experimental WebGL fluid gradient, caustic light, and particle effect scripts. The kinetic typography approach won out — lighter, cleaner, more on-brand.
  • Cleaned up hero-fx.js and hero-particles.js from both local and server.
A note from the developer

Today was a day off. No design studio, no mockups, no overtime. I took it because I needed it — not for my body, but for something heavier.

Around the time I started building ToolKnit in March, I met a girl. She was a client — her apartment was 80% through renovation when she reached out one night past 11 PM. I thought she wanted floor plan changes. She wanted to talk.

We talked for two weeks straight. She was from Zhengzhou, four years older, back in Zhoukou visiting. I’m the kind of person who freezes at the thought of meeting someone in real life, but I pushed through the anxiety and went to see her. And it was — effortless. We had dinner. The next day we watched a movie together. Everything felt right in a way I’d never experienced before. I had never liked anyone this much. Never missed anyone this much.

She left in late April. We kept in touch every day. She told me she was looking for something serious — not casual. I respected that completely. All I asked was one simple thing: on May 1st, when she came back, could we just spend a quiet day together? Just lying around, doing nothing, recharging. She said yes.

Yesterday she came back. And she told me she couldn’t do it. Her phone has location tracking; her family would see. I understand that — I do. But it wasn’t the refusal that broke me. It was the timing. She had agreed weeks ago. I had been counting down the days, carrying that small promise like a lantern through every exhausting shift. If she had just said no back then, I would have been fine. I would have understood.

Instead, I spent yesterday evening crying alone in my room. She didn’t comfort me. She said I shouldn’t have asked in the first place. And then came the line that cut deepest: “I don’t think I count as your girlfriend yet.”

I asked her what we were, then. She said: “Someone I’m getting to know.”

I made the decision through tears, typing on my phone with shaking hands. I told her it was over. She didn’t agree. She didn’t disagree. She just — went silent. Cold. She once told me that after a breakup, there should be no contact. So I deleted everything.

I skipped lunch and dinner yesterday. Went to bed at 9 PM. Woke up this morning to zero messages. I think that’s the answer I was afraid of.

The thing is — I really, truly liked her. Her personality, the way she talked, the way she made an anxious 21-year-old feel calm for the first time in years. I had never felt that before. Two meetings and I was in deep. But she never shared her meals with me. Never sent photos unless I asked. In three weeks, she sent me exactly three videos. Do you know what it’s like to miss someone and have almost nothing to look back at?

She never understood how I loved. And maybe that’s okay. Maybe some people just show it differently, or not at all. But I can’t keep pouring into something that echoes back silence.

So today I rested, and I coded. Shipped two new calculators. Built a kinetic typography background that I’m actually proud of. Added Chinese to the homepage because — well, because this is where I’m from, and today felt like a day to honor that.

I’m writing this here because almost nobody reads changelogs. It’s the quietest corner of the internet. If you’re reading this, you’re either very thorough or very bored — either way, thank you. Sometimes you just need to put the words somewhere, and a changelog felt more honest than a diary.

To the girl from Zhengzhou: I hope you find what you’re looking for. I genuinely do. And I hope one day you realize that the boy who cried himself to sleep wasn’t asking for much — just a quiet day, and a little bit of your heart.

Zihang Dong May 12, 2026 — 2:10 PM, a rest day

The Overtime & Power Outage Edition

NEW TOOLS
  • Daily Planner — Beautiful weekly planner with customizable time slots, drag-and-drop tasks, and pixel-perfect PNG/PDF export powered by Canvas 2D API. Includes FAQ section.
  • BMI Calculator — Body Mass Index with metric/imperial toggle, visual WHO category scale, color-coded results, and healthy weight range display.
  • Timestamp Converter — Unix epoch ↔ human-readable date. Auto-detects seconds vs milliseconds, live ticking clock, bidirectional conversion.
  • Text Diff — Compare two texts side by side with line-level and character-level diff highlighting. Summary bar for additions, deletions, and unchanged lines.
  • Flip & Rotate Image — Mirror horizontally/vertically, rotate 90°/180°/270°. Canvas API powered, supports JPG, PNG, WebP, and more.
  • Gradient Generator — Visual CSS gradient builder with linear/radial modes, multi-stop color picker, angle control, preset gallery, and one-click CSS copy.
IMPROVEMENTS
  • Daily Planner export rewrite — Replaced html2canvas with direct Canvas 2D API rendering. Pixel-perfect alignment, zero offset, no more CSS rendering discrepancies. Lesson learned: when a simple solution exists, use it.
  • Daily Planner FAQ — Added structured FAQ section with JSON-LD for SEO rich results.
  • Dynamic counting everywhere — Blog article count, category count, stories count, homepage tool count, and status page tool/category count are now all calculated dynamically from the DOM. No more hardcoded numbers to forget updating.
  • Status page DR badge — Domain Rating 29 by Ahrefs, displayed alongside uptime stats in the hero card.
  • Partnership link — Added to all 132 page footers for business and collaboration inquiries.
NEW BLOG POSTS FIXES
  • Fixed Daily Planner export rendering — badges, date numbers, and dividers now align perfectly in PNG and PDF output.
  • Fixed blog index showing 51 articles when actual count was 52 — root cause: hardcoded number. Now impossible to get wrong.
  • Fixed status page hardcoded “58 tools” and “8 categories” — now fetched dynamically from search.js.
A note from the developer

My boss made me stay late today. Five straight hours in the design studio, hunched over mockups that weren’t even mine, while the clock crawled past 6 PM — the time I was supposed to leave. I finally walked out at 7. An hour doesn’t sound like much until it’s the hour between you and the thing you actually want to be doing.

Got home. Dropped my bag. Opened the laptop. Fingers on the keyboard, terminal ready, brain already compiling the night’s todo list…

And then the power went out.

I sat there in the dark for about four seconds, already composing a dramatic complaint tweet in my head. Then — click — the lights snapped back on. The screen glowed. The cursor blinked. I took it as a sign: tonight’s update was going to be a good one.

Six new tools shipped. Seven new blog posts. A complete export engine rewrite for Daily Planner — ripped out html2canvas entirely because I finally admitted that a library that re-implements CSS will never match the browser that actually implements CSS. Replaced it with raw Canvas 2D API calls. Pixel-perfect. Zero offset. Sometimes the simplest solution is the one you should have picked first.

Then I went on a counting spree. Every hardcoded number on the site — “51 articles,” “58 tools,” “8 categories” — all of them replaced with JavaScript that counts the actual DOM elements. Add a new tool card? The homepage says 59+. Publish a blog post? The counter says 59. No more forgetting to update a number in three different files.

132 pages got a new Partnership link in their footer tonight. The status page got a DR 29 badge — verified by Ahrefs. I check our backlink profile about thirty times a day. It’s not healthy. But every new referring domain feels like someone out there noticed what we’re building, and that dopamine hit is better than coffee.

Speaking of which — if ToolKnit has ever saved you five minutes, or helped you avoid installing yet another sketchy desktop app, tell someone about it. Share it on your blog. Drop it in a Reddit thread. Mention it to a friend who still emails PDFs to themselves. Every recommendation means the world to someone writing code alone at midnight.

It’s past midnight now. Tomorrow the alarm goes off at 7:30 and I’ll be back in that design studio pretending I didn’t stay up until 1 AM pushing CSS to a server. But look at what got done tonight. Five tools, seven blogs, a full rewrite, a site-wide dynamic counting overhaul, and a power outage that lasted exactly long enough to make a good story.

Worth it.

Zihang Dong May 11, 2026 — 00:45 AM

50+ Tools — A Midnight Milestone

NEW TOOLS
  • Unit Converter — 8 categories: length, weight, temperature, area, volume, speed, data & time. Bidirectional, real-time, with conversion formulas.
  • Percentage Calculator — Three modes: “X% of Y”, percentage change, and “X is what % of Y”. Color-coded results.
  • Markdown Editor — Side-by-side live preview powered by marked.js. Export .md, copy HTML, word/char/line stats.
NEW CATEGORY
  • Introduced Calculator Tools — a brand-new category housing Age Calculator, Unit Converter, and Percentage Calculator. Dedicated filter tab on homepage and blog.
UPDATES
  • Tool count updated to 52 across all pages. Service-worker cache bumped to v18.
  • Blog posts published for all 3 new tools. Blog article count now 51.
  • Full-site encoding fix — repaired garbled em-dash characters (&#xFFFD;) across 46 tool pages.
  • Homepage stat pills corrected to match actual category counts.

It’s 12:30 AM again. The apartment is quiet, the screen is the only light, and the terminal cursor blinks like a heartbeat.

Fifty tools. I remember the first one — a nervous Compress PDF page pushed to a server I could barely configure. That was March. Now there are fifty-two of them, each one built in the strange hours when the world sleeps and the code feels like it writes itself.

Nobody tells you that building something alone is less about the code and more about the silence you fill with it. Every late-night deploy, every 3 AM bug that makes you question your life choices, every sunrise you accidentally witness — they all become part of the thing you’re making.

ToolKnit crossed 50 tools tonight. Not with a launch party or a press release, but with me, a mass SCP upload, and a mass of garbled em-dashes that made me rethink my encoding decisions. Fitting, really.

Here’s to the next fifty. Same chair, same dark room, same quiet conviction that free tools should just work — no sign-ups, no tracking, no nonsense. If you’re reading this changelog at midnight too, I see you.

— Zihang Dong, May 9 2026, 00:30 AM

7 New Tools — Biggest Single-Day Drop Yet

NEW TOOLS
  • Fancy Text Generator — 20+ Unicode font styles. One-click copy for Instagram, TikTok, Twitter/X, Discord.
  • Age Calculator — Exact age in years/months/days/hours, zodiac signs, birthday countdown.
  • Typing Speed Test — WPM, accuracy & keystroke tracking with 15/30/60s timed tests.
  • HEIC to JPG Converter — Batch convert iPhone HEIC photos to JPG. Adjustable quality, WebAssembly-based.
  • JSON Formatter & Validator — Beautify, validate, and minify JSON. 2/4 space indent, file loading, clipboard paste.
  • Invoice Generator — Create invoices & download PDF. 10 currencies, auto tax calc, unlimited line items.
  • Pomodoro Timer — Focus/break intervals with session tracking, auto-start, and audio alerts.
UPDATES
  • Tool count updated to 49 across all pages, service-worker cache bumped to v17.
  • Blog posts published for all 7 new tools.
  • Full-site encoding fix — repaired corrupted Unicode characters across 29 files.

Background Remover — AI-Powered Image Background Removal

NEW TOOL
  • Background Remover — Remove image backgrounds instantly using an AI model that runs entirely in your browser. Auto-remove with one click or manually refine with brush & eraser tools. Supports JPG, PNG, WebP. Downloads as transparent PNG.
  • AI model (~40 MB) downloads once and is cached by the browser for instant future use.
  • Manual refinement mode with adjustable brush size, edge softness, undo, and keyboard shortcuts.
  • Full-screen loading overlay prevents interaction until the model is ready.
  • Tool count updated to 42 across all pages.

Coin Flip, Dice Roller & Legal Pages Refresh

New Improvement
  • Coin Flip — Flip a coin online with a 3D CSS animation. Fair 50/50 random result, flip history, heads-vs-tails probability bar, current & best streak tracking, and spacebar shortcut for rapid flips.
  • Dice Roller — Roll 1 to 6 standard dice with animated tumble. Live value distribution chart, roll history, grand total & average stats. Number keys 1–6 to switch dice count, spacebar to roll.
  • Coin Flip & Dice Roller Blog Post — Guide covering when to use each tool, the math behind virtual randomness vs physical coins/dice, and 5 creative use cases.
  • Terms of Service & Privacy Policy updated — Rewrote both pages to accurately reflect current site state: no accounts, no personal data collection, 500 free uses/day via localStorage, third-party analytics & CDN disclosures, and offline access via service worker.
  • Replaced RewriteEmail.com footer link site-wide with B64Encode.com reciprocal link across all pages.
  • Homepage updates — Coin Flip and Dice Roller added to the Creative Tools card grid, both marquee tracks, search index, and roadmap modal.
  • Updated sitemap.xml, service-worker.js (bumped to toolknit-v5), and indexnow-submit.py with all new URLs.

CPS Test & SEO Refresh

New Improvement
  • CPS Test — New click speed test with 1 / 5 / 10 / 30 / 60 second modes, live CPS, best 1-second burst, consistency score, per-second bar chart, and locally saved personal bests. 100% browser-based, works on desktop and mobile.
  • CPS Test Blog Post — Long-form guide covering what CPS means, what counts as a good score, how each duration mode is used, common clicking techniques, and how to improve click speed safely.
  • Tightened CPS Test interaction state — active runs can no longer be re-armed, and clicks after the timer ends are ignored to keep results clean.
  • SEO refresh on high-impression tool pages — Rewrote titles, meta descriptions, social metadata, JSON-LD, and hero copy on Keyboard Tester, Character Counter, Whiteboard, and Reaction Time Test to better match real search intent.
  • Added internal links from Reaction Time Test and Aim Trainer to the new CPS Test, and added CPS Test to their related-tools pools.
  • Site search and roadmap updated — CPS Test indexed in search.js with full keyword coverage. Service worker bumped to toolknit-v4.

Aim Trainer & Login System Removal

New Improvement
  • Aim Trainer — New FPS aim practice tool. Click targets as fast as you can with adjustable speed (Fast / Medium / Slow), custom target count (10 / 20 / 30 / 50), 3-2-1 countdown, and detailed results including average click time, best/worst, total time, per-target bar chart, and performance rating.
  • Aim Trainer Blog Post — Comprehensive guide on how to use an aim trainer, practice routines, pro tips, and benchmark scores.
  • Removed login & registration system — The entire login/signup system (modals, API endpoints, JWT auth) has been removed. All users now get 500 free uses per day with no account required. Simpler, faster, no barriers.
  • Deleted backend API files (login.php, register.php, verify.php, usage.php). Usage tracking is now 100% client-side via localStorage.
  • Streamlined auth.js from 789 lines to 165 lines — now only handles toast notifications and local usage tracking.

Image Resizer & Lorem Ipsum Generator

New
  • Image Resizer — Resize any image to exact dimensions, by percentage, or with one-click social media presets. Supports JPG, PNG, and WebP output with quality control. Lock aspect ratio to prevent distortion.
  • Lorem Ipsum Generator — Generate placeholder text for designs, mockups, and prototypes. Choose paragraphs, sentences, or words. Toggle classic opening, optional HTML <p> tag wrapping.
  • Redesigned "You May Also Like" section across all tool pages.
  • Fixed homepage search missing 9 tools — all 35 tools now searchable.

Pixel Art Converter & Video to Audio

New
  • Pixel Art Converter — Turn any image into pixel art. Adjustable pixel resolution (8–256), color palette control (2–128 colors), Floyd-Steinberg dithering, Sobel edge detection outlines, saturation boost, and retro console presets (Game Boy, NES, SNES, CGA).
  • Video to Audio — Extract audio from any video file (MP4, WebM, MOV) and download as lossless WAV. Uses the Web Audio API for fast, high-quality extraction.
  • New blog post explaining the algorithms behind the converter.
  • New blog post on browser-based audio extraction.

Keystroke Counter & Changelog Page

New Improvement
  • Changelog page — You're reading it. A full history of every ToolKnit update, organized by date with internal links to each tool.
  • Keyboard Tester now tracks keystroke counts per key. See exactly how many times each key was pressed, helping you detect stuck or double-firing keys.
  • Follow our build journey on Creem.

QR Code Generator & SEO Improvements

New Improvement Fix

Reaction Time Test

New
  • Reaction Time Test — Test your reflexes with 4 game modes: click, spacebar, visual choice, and speed round. Results shown in milliseconds with performance ratings.

Keyboard Tester & Random Spinner

New
  • Keyboard Tester — Visual keyboard map that lights up on every key press. Instantly identify broken, stuck, or unresponsive keys. Supports full-size and compact layouts.
  • Random Spinner Wheel — Customizable spinning wheel with up to 15 options. Add your choices, spin the wheel, and get a random result.

Creative Tools: Drawing Board, What to Eat & Ask Fate

New
  • Online Drawing Board — Free whiteboard with pen, pencil, calligraphy brush, and sketch coloring modes. Add shapes, text, and images. Export your work as PNG or PDF.
  • What to Eat? — Can't decide on a meal? Pick breakfast, lunch, or dinner and get a random food suggestion.
  • Ask Fate — Type a yes-or-no question and receive a mystical answer. One question per day — let the universe decide.

Image Crop & Grid Splitter

New
  • Image Crop — Crop images with custom aspect ratios. Supports freeform, square, 16:9, 4:3, and more.
  • Image Grid Splitter — Split any image into a grid (3×3, 2×2, etc.) for Instagram carousel posts.

Time Tools: Stopwatch, Timer & World Clock

New
  • Online Stopwatch — Millisecond-precision stopwatch with lap tracking.
  • Countdown Timer — Set custom countdown timers with optional alarm sounds.
  • World Clock — View the current time across every timezone. Search and pin your favorite cities.

Text Tools & Audio Converters

New
  • Character Counter — Count characters, words, sentences, and paragraphs in real-time as you type.
  • Text Extractor — Extract text content from PDF, DOCX, XLSX, and 12+ file formats.
  • MP3 to WAV and WAV to MP3 — Convert between MP3 and WAV audio formats with adjustable bitrate.

Video Tools & Image Format Converters

New