Changelog
What changed, why it changed, and what broke because of it.
v1.39
More Example Pages
- new20 pre-filled example pages for the thinnest clusters — gitignore for node, python, nextjs; timezone pairs utc-to-est, utc-to-pst, pst-to-est; css units px-to-em, px-to-vw, pt-to-px; uuid v4 and v7 generators; sha512 and sha1 digests; 32-character api secret; wifi and vcard qr codes; markdown cheat sheet; js code diff; current timestamp; special-character url encoding. Each in EN plus TR, ES, PT-BR, DE.
- changedCopy/download output on 8 more tools now includes a DevBento attribution comment. Plain outputs untouched.
- fixBroken /tools links site-wide in header, footer, and breadcrumb schema.
v1.38
Base64 Batch & URL Fetch
- newBase64 file converter now accepts multiple files at once. Drop several files, get per-file output with copy/download, and download all results as a .zip.
- new"From URL" mode — paste a URL to fetch and encode directly without downloading first. Handles CORS errors gracefully.
- newEncoding variants for Plain Base64 output — Standard, URL-safe (for JWTs and URL params), and No padding.
- changedBase64 tools now lazy-load when scrolled into view instead of hydrating on page load.
- changedFAQ on file-to-base64 page updated to reflect batch support.
v1.37
Base64 Output Formats
- newBase64 encoder now supports 8 output formats — Plain Base64, Data URI, HTML Embed, HTML Object, HTML Link, JSON envelope, CSS Background, and CSS Background (minified). Previously only 4 were available.
- newLine wrapping toggle for Plain Base64 output — Off, 64 characters (PEM), or 76 characters (MIME).
- newDownload as .txt button when encoding files to Base64.
- newLive preview for HTML Embed, HTML Object, and CSS Background (images only) output formats. See the generated code rendered in an iframe before copying.
- fixSize warning for non-image files (PDF, audio) no longer says "This image is..." — it now shows the correct file type.
- changedFormatted copy output (HTML Embed, HTML Object, HTML Link, JSON, CSS Background) now includes a DevBento attribution comment. Plain Base64 and Data URI are untouched.
- changedBase64 example pages updated with all 8 output formats in the How to Use section.
v1.36
Typed Tool Chaining
- changedSendToBar suggestions are now dynamically computed from a central registry instead of being hardcoded per tool. When a tool produces JSON, you'll see JSON-compatible targets. When it produces an image data URI, you'll see image tools. Buttons appear disabled when no output exists yet.
- changedCommandPalette "More tools" now filters by payload type compatibility. Only tools that can accept the current data type are shown, instead of every receivable tool.
- fixCodeScreenshotTool hydration mismatch caused by light/dark mode detection differing between server and client render.
v1.35
HAR Viewer Performance Audit & Demo
- newHAR Viewer "Try Demo" button loads sample network data with 6 realistic requests covering all 4 audit types (slow TTFB, uncompressed assets, large payloads, duplicate requests). Users can explore the tool without uploading a private HAR file.
- changedHAR Viewer performance insights now analyze all loaded entries regardless of active filters. Filtering by category, duration, or size no longer hides audit findings.
v1.34
HAR Viewer Sensitive-Data Detection
- changedHAR Viewer sanitization now redacts sensitive query parameters (token, key, code, session, state, secret, password, etc.) from both the queryString array and the URL string itself.
- changedHAR Viewer sanitization now redacts sensitive fields in JSON request bodies (passwords, tokens, secrets, API keys, credit card data) and recursively in nested objects.
- changedHAR Viewer sanitization now redacts sensitive fields in JSON response bodies (access tokens, refresh tokens, credentials).
- changedHAR Viewer header detection expanded to cover proxy-authorization, x-secret, x-csrf, x-access-token, secret, auth, credential, and bearer patterns.
- changedHAR Viewer sanitization banner now shows a breakdown of what was redacted (headers, cookies, query params, URLs, request/response bodies, total count).
- changedHAR Viewer expanded domain entries now use 60% viewport height instead of fixed 300px for easier scrolling.
v1.33
JavaScript & TypeScript Formatting
- newJavaScript and TypeScript formatting powered by Prettier in a web worker. Supports ES2024+ syntax, TypeScript types, interfaces, generics, and JSX/TSX. The worker runs off the main thread so the UI stays responsive.
- newExample pages for JavaScript and TypeScript formatting at `/tools/code-formatter/format/javascript` and `/tools/code-formatter/format/typescript`.
- changedCode Formatter moved from Data to Code category on homepage.
v1.32
Base64 Reference Pages
- newBase64 vs Base64URL reference page at `/tools/base64/base64-vs-base64url` explaining the character set differences, URL safety, padding rules, and conversion between formats. Pre-filled with a URL string to show the encoding difference.
- newBase64 size overhead reference page at `/tools/base64/base64-size-overhead` covering the 33% expansion math, practical size table, when it matters vs when it doesn't, and alternatives like Base85 and compression.
v1.31
Developer Reference Pages
- newJWT Claims example page at `/tools/jwt-decoder/jwt-claims-explained` with a pre-filled decoder demo showing exp, iat, nbf, iss, sub, aud claims. Covers time claim lifecycle, clock skew, and token refresh patterns.
- newHAR Sensitive Fields reference page at `/tools/har-viewer/har-sensitive-fields` covering what HAR files leak (cookies, auth headers, tokens) and how to sanitize before sharing.
v1.30
Base64 Hub
- newBase64 Hub page at `/tools/base64-hub` linking to all 14 Base64 tools and examples in one place. Includes reference content on what Base64 is, how encoding works, the size overhead formula, URL-safe variants, and a section explaining why Base64 is not encryption.
v1.29
Base64 CSS background-image improvements
- changedBase64 CSS Background output is now a ready-to-copy CSS rule block (.example { background-image: url("data:..."); }) instead of a bare declaration.
- newMinified CSS Background output variant (.example{background-image:url("...")}) for compact stylesheets.
- changedBase64 file converter shows a performance warning when encoded output exceeds 10 KB, recommending a separate image file instead.
v1.28
Base64 tool refinements
- changedBase64 file converter info bar now shows overhead percentage and selected output mode alongside file metadata.
- newAudio playback preview in Base64 file converter. Drop an MP3, WAV, OGG, FLAC, or M4A file and play it directly in the result panel. Decode panel also shows an audio player when the Base64 string decodes to audio.
- changedBase64-to-file decode panel now shows audio player for audio MIME types instead of an empty preview area.
v1.27
Visual pass: HAR Viewer, Base64, JSON & Cron
- changedHAR Viewer: domain-based request grouping with collapsible headers. Each domain shows request count, total size, and error count. Entries scroll independently per domain.
- changedHAR Viewer: widened waterfall timeline from 50% to 58% of row width for better timing resolution.
- changedHAR Viewer: redesigned performance insights as a flat list with SVG severity icons and per-line affected URLs.
- fixHAR Viewer: fixed hardcoded HTTP/2 protocol — now reads from HAR data.
- fixHAR Viewer: fixed status color always showing green — now green/amber/red by status code.
- fixHAR Viewer: fixed dark mode for status badge and sanitization banner (replaced hardcoded colors with CSS variable tokens).
- changedHAR Viewer: replaced emoji lock icon with SVG, quick filters use segmented control pattern matching other tools.
- changedBase64 tool: added transformation context panel showing input type, detected MIME, input/encoded sizes, and overhead percentage.
- newBase64 tool: Raw Base64 vs Data URI toggle and next-action suggestions (copy, download, send to other tools).
- changedJSON Formatter: explicit mode actions in the toolbar.
- changedCron Builder: expression and human-readable explanation now remain visible together.
v1.26
New UI design
- newWe have a new UI design.
v1.25
Example page navigation and internal linking
- newVisible breadcrumb navigation on all example pages (Tools / Parent Tool / Example), replacing the single back-arrow link. Breadcrumbs include schema.org JSON-LD with a Tools root item.
- new"Related Conversions" strip on unit-converter example pages showing 1-3 sibling conversion links in the same category (e.g., cm-to-inches links to inches-to-centimeters, feet-to-meters, meters-to-feet).
- changedUpdated related-tools cards on 14 unit-converter example pages. Replaced irrelevant `unix-timestamp` with complementary tools (`css-units-converter`, `color-converter`).
v1.24
SEO index-coverage fixes
- fixFixed broken 301 redirect targets for localized regex-cheat-sheet pages (de, tr, es, pt-BR were 404ing).
- fixAdded missing redirect for legacy `/es/tools/diff-compare-json` slug.
- fixFixed 90 doubled `json-to-typescript` URLs (`/json-to-typescript/json-to-typescript/X` → `/json-to-typescript/X`).
- fixFixed pt-BR locale accent corruption across 100+ content files (Turkish dotless-ı, misplaced circumflexes, missing cedillas).
- fixFixed broken internal links in DE regex-tester, DE base64-encoder, and pt-BR base64-encoder.
- fixUpdated stale external links (lint-staged repo moved, sqlfluff www prefix).
- fixAdded internal cross-links between parent tool pages and example pages.
v1.23
Unit Converter Example Pages
- newExpanded all 14 unit-converter example pages with conversion formulas, extended reference tables (15-25 rows with real-world objects), real-world use cases, gotchas, and expanded FAQs.
- i18nTranslated expanded content to Spanish, Turkish, Brazilian Portuguese, and German with locale-specific keywords and localized internal links.
v1.22
String Manipulation Tool
- newString Manipulation mega-tool with 39 operations across 6 categories: Transform, Search & Replace, Clean & Sort, Generate & Encode, Number Base, and Analyze. Case conversion, find & replace with regex, slugify, ROT13, zalgo text, Levenshtein distance, n-grams, and more.
- new12 example pages for String Tools with pre-filled samples and educational content (case converter, find & replace, Levenshtein distance, remove duplicates, remove whitespace, reverse string, ROT13, slugify, sort lines, truncate text, word frequency, zalgo text).
v1.21
SEO Quick Wins
- new3 new example pages: HTTP Status Code Generator, Gitignore for macOS, Placeholder Text Generator.
- changedUpdated keywords on 5 tool pages (Code Formatter, Markdown Preview, WCAG Contrast, Diff Checker, HTTP Status Codes).
- changedImproved content on HTTP Status Codes, UUID Generator, and Mermaid Editor pages with better CTAs and related tool suggestions.
v1.20
JSON → Code Generator: 5 New Languages
- newJSON → Code Generator now supports 11 output modes: TypeScript (interface/type), JSON Schema, Go, Python, Zod, Rust, C#, Swift, Kotlin, Java. Each language generates idiomatic code with proper type mappings, naming conventions, and serialization attributes.
- new10 new example pages for Rust, C#, Swift, Kotlin, Java (API response + config per language), translated to all 5 locales.
v1.19
Data Converter Format Expansion
- newData Converter now supports XML, HTML, and Markdown formats (8 formats total: JSON, YAML, TOML, CSV, XML, HTML, Markdown, .env). Converts between all combinations except CSV→TOML and CSV→ENV (arrays can't represent as top-level objects).
- newHTML and Markdown input now extract structured data instead of raw text. Tables become arrays of objects, lists with bold key:value patterns become objects, and headings with content become nested structures.
- new"What is X?" educational sections added to all 19 tool pages across 5 locales — direct answers to search queries above each tool.
- new4 new Data Converter example pages (json-to-xml, json-to-csv, html-to-json, markdown-to-json) with pre-filled samples.
- fixInvalid format combinations (CSV→TOML, CSV→ENV) now show grayed-out buttons with tooltip instead of throwing errors at runtime.
- fixNested objects in CSV, HTML, and Markdown output now serialize as JSON strings instead of [object Object].
- fixBroken hreflang links for changelog page.
v1.18
Graph View for JSON Formatter
- newGraph view on JSON Formatter — visualize JSON as an interactive hierarchical diagram. Zoom, pan, click nodes to expand/collapse subtrees. Nodes are color-coded by value type. Export as PNG or SVG.
- newSmart truncation for large structures — arrays with more than 8 items and objects with more than 12 keys start collapsed with a "+N more" badge. Click to expand all children.
v1.17
Python, Zod & More Output Modes
- newPython dataclass output mode — generates `@dataclass` classes with type annotations, `Optional[T]` for missing fields, snake_case names, and proper typing imports. Download as `.py`.
- newZod schema output mode — generates `z.object()` schemas with `z.optional()` for missing fields, `z.infer` type exports, and nested schema references. Download as `.ts`.
- newUnion types for mixed arrays — `[1, "two", true]` now generates `(boolean | number | string)[]` instead of `unknown[]` in TypeScript modes.
- newCustom root type name — rename the default `Root` interface/type to any name via the advanced options row.
- newImport path option — add an `import type { ... } from '...'` header to TypeScript output.
- new6 example pages — Go API response, Go config, Python API response, Zod API response, pre-filled with sample data and localized for all 5 languages.
v1.16
JSON Schema Generation
- newJSON Schema output mode on JSON to TypeScript — switch to Schema mode to generate draft-07 JSON Schema from any JSON input. Distinguishes integers from floats, detects optional fields in arrays of objects, and handles nested structures recursively. Download as `.json`.
- newOptional field detection across all output modes — when an array of objects has varying shapes, fields missing from some items are marked optional. Works in Interface (`field?: type`), Type alias, and Schema (`required` array) modes.
- new2 example pages — JSON Schema from API response and JSON Schema from config object, pre-filled with sample data in Schema mode. Localized for all 5 languages.
v1.15
JSON to TypeScript
- newJSON to TypeScript converter — paste JSON, get typed TypeScript interfaces or type aliases. Handles nested objects with path-based names, arrays, reserved word quoting, drag-and-drop file upload, copy, and download as `.ts`. Includes 2 example pages (API response, config object).
- fixLocale cleanup — removed 650+ dead keys across all 5 locales, fixed broken JSON in locale files, and completed missing translations.
v1.14
Hydration & Permalink Fixes
- fixLive clocks on Unix Timestamp and Timezone Converter no longer flicker on page load. Clock starts ticking after React mounts instead of rendering a server-side timestamp that gets replaced immediately.
- fixPermalink state restores correctly on direct URL navigation for Base64 Encoder, Cron Builder, and Diff Checker. The async permalink load now triggers state updates instead of being silently dropped.
v1.13
JWT Generator
- newJWT Generator — sign HS256 and RS256 tokens entirely in the browser using Web Crypto API. RSA key pair generation (auto or pasted PEM), full claim builder (sub, name, email, iss, aud, jti with auto-UUID), expiration presets (1h/6h/24h/7d/custom), custom claims, shareable permalinks.
- new2 example pages — HS256 JWT for API auth testing (pre-filled secret, sub, name, email, 1h expiry) and RS256 JWT for OAuth2/OIDC testing (pre-filled iss/aud/sub, 24h expiry, auto-generated RSA key pair).
v1.12
Color Palette from Image
- newColor Palette from Image — upload, paste, or load from URL any photo and extract dominant colors using median cut quantization. Adjustable color count (2-16), click-to-copy on any swatch, per-color pixel coverage percentage, and CSS variable / JSON export.
- new2 example pages — sunset color palette extraction (loads a sample sunset photo) and brand colors from a Google logo (loads the Google logo SVG to demonstrate four-brand-color extraction).
v1.11
SVG Toolkit & Image-to-SVG
- newSVG Viewer & Optimizer with 3 tabs — View (live preview, DOM tree explorer, code view, stats panel, PNG export), Optimize (SVGO with Conservative/Moderate/Aggressive/Custom presets, before/after comparison), and Format (prettify, minify, inline CSS, absolute paths, remove metadata). Paste SVG code, upload a file, or load from a URL. Shareable permalinks.
- newImage Converter now outputs SVG — select SVG as the output format to trace any raster image (PNG, JPG, WebP) to vector paths using Potrace. Threshold, detail, color mode, and posterize controls appear when SVG is selected.
- new5 example pages — SVG Optimizer, SVG Prettifier, SVG Minifier (for SVG Toolkit), PNG to SVG Converter and Image to SVG Converter (for Image Converter). All localized for 5 locales.
v1.10
.env Support
- new.env ↔ JSON converter added to Data Converter. Parses KEY=VALUE pairs to/from JSON with auto-typing (booleans, numbers), nested object flattening via `__` separator, comment stripping, and multi-line value support.
v1.9
Lorem Ipsum Generator
- newLorem Ipsum Generator with 20 languages, fixed literary passages per language (Cicero for Latin, Don Quixote for Spanish, Dante for Italian, etc.), deterministic sequential output, and CJK/Hindi sentence splitting.
- newHTML output mode generates realistic page structure with h1/h2/h3 headings, blockquotes, tables, code blocks, and lists — not just `
` tags.
- new2 example pages — HTML for web prototypes (pre-filled with HTML format) and multilingual placeholder text (pre-filled with language comparison content).
v1.8
CSS Units Converter
- newCSS Units Converter with 14 CSS units (px, pt, pc, cm, mm, in, rem, em, vw, vh, vmin, vmax, ex, ch), configurable base font size and viewport dimensions, shareable permalinks, and per-row copy on results.
- new2 example pages — px to rem and rem to px — with conversion reference tables and educational content on when to use each unit.
v1.7
Password Strength Analyzer
- newPassword Strength Analyzer with zxcvbn-powered strength scoring, crack time estimates for offline/online attack scenarios, pattern detection, entropy breakdown, and Have I Been Pwned breach check via k-anonymity.
- new2 example pages — weak password and strong password — with educational content explaining password vulnerabilities.
v1.6
WCAG Color Contrast Checker
- newWCAG Color Contrast Checker with foreground/background pair pickers, WCAG 2.x ratings (AA/AAA normal and large text), APCA Lc ratings with grade, live text preview at multiple sizes, accessible color suggestions targeting both WCAG AA and APCA >= 60, CSS variable output, and shareable permalinks.
- new3 example pages — dark mode accessibility, placeholder text contrast ratio, button color contrast — each with educational content and pre-filled tool state.
v1.5
Random String / API Key Generator
- newRandom String / API Key Generator with charset presets (hex, alphanumeric, base64url, custom), API key presets (OpenAI sk-, GitHub ghp_, Stripe sk_live_), configurable grouping, prefix/suffix, batch generation. All client side via Web Crypto API.
- new4 example pages with full localization — OpenAI key format, UUID-like hex IDs, bulk session tokens, readable coupon codes with ambiguous-character exclusion.
- fixPermalink state hydration on tools with initial props. Async hash from usePermalinkState now restores via useEffect instead of useState initializer.
- fixExample page breadcrumbs show localized parent tool titles instead of always English.
- i18nFull localization (27 UI strings, tool content, 4 example pages) across tr, es, pt-BR, de.
v1.4
Text Statistics
- newText Statistics tool with word count, character count, sentence count, paragraph count, reading time, Flesch Reading Ease, word frequency analysis, longest sentence detection, and multi-script reading speed estimates for CJK, Arabic, and Cyrillic text.
- i18nFull localization for Text Statistics across all 5 locales. Reading speed calibrated per script family.
- new3 example pages with localized content — essay word count, blog post readability check, social media character counter.
- fixCJK sentence counting now recognizes 。?! as sentence endings. Previously returned "1 sentence" for all Chinese text.
- fixPermalink URL hash state now hydrates reliably on tools with initial props. Switched from useState initializer to useEffect to avoid render-before-hydration mismatches.
v1.3
Image Rotate, Flip, and Example Pages
- newRotate and flip images directly in the Image Converter. 0, 90, 180, 270 degree rotation with live preview. Horizontal and vertical flip toggles. Apply transforms and download as PNG.
v1.2
Timezone Converter & Example Pages
- newTimezone converter with DST-aware IANA timezone conversion. Add and remove target timezones, live "Now" mode, source timezone search, swap, shareable permalinks.
- i18nFull i18n for timezone converter across all 5 locales. Locale-aware date formatting and localized timezone name display using Intl API.
- newExample pages with localized content: EST to PST and UTC to IST conversions.
- fixUnit converter locale fallback on non-English pages. Related tool card now shows translated content for all locales.
v1.1
Unit Converter & Analytics
- newUnit converter with length, weight, temperature, speed conversions. Uses a single conversion graph. Add a new unit by adding one edge, not writing a switch case.
- newGoogle Analytics 4 with event tracking per tool. Off by default, no data collected until you consent.
- i18nFull i18n for unit converter across all 5 locales. Added unit-converter card to homepage.
v1.0
German Locale & Better Navigation
- i18nGerman locale (de). 27 tools, examples, homepage, and error pages fully translated.
- i18nCanonicalized locale list. Locale validation script catches missing translations before build.
- fixpt-BR case sensitivity redirects. Old tool slug redirects. Mixed content warnings on image export.
- changedHomepage now groups tools by category with card descriptions. Less scrolling, more scanning.
- changed301 redirects on trailing-slash tool URLs for SEO canonical consistency.
v0.9
Terminal 404 & Portuguese Locale
- newTerminal-style 404 page with tool suggestions. Style: pretend it was intentional.
- fixContent-blocker taint error on canvas export. Switched from blob-URL canvas to html-to-image capture.
- fixContent collection locale merging, hydration mismatch on first render, Radix a11y warning suppression.
- i18nPortuguese (Brazil) locale with full translation parity across all tools.
v0.8
Spanish, Turkish, i18n Infrastructure
- i18nSpanish locale (es). First non-English locale, built the translation pipeline from scratch.
- i18nTurkish locale (tr). Full UI localization, SSR i18n, content translations, and a CSV data converter.
- i18nhreflang annotations in sitemap for correct locale targeting in search results.
v0.7
HAR Viewer
- newHAR Viewer. Upload, inspect, and sanitize HAR files. Waterfall timeline, request size calculation, time axis.
- newSanitization flow to strip sensitive headers before sharing HAR exports.
- newQuick filters: filter by status code, MIME type, domain. Sort by size, duration, or timestamp.
- fixSize calculation for compressed responses. Timeline rendering for sub-millisecond requests.
v0.6
The 26 Tool Release
- new26 tools covering generators, converters, encoders, formatters, calculators, and viewers.
- newJSON Formatter, Base64 Encoder, UUID Generator, Unix Timestamp, Token Counter, Diff Checker, JWT Decoder, URL Encoder, Hash Generator, Cron Builder, Regex Tester, Color Converter, Image Converter, Background Remover, Passport Photo, Code Formatter, CSS Gradient, Data Converter, Gitignore Generator, HTTP Status Codes, Markdown Preview, Mermaid Editor, Password Generator, QR Code Generator, Currency Converter.
- newAstro + React + Tailwind v4 stack. WASM modules load on page load, no server calls during tool usage.
- newDark/light theme with system preference detection. CSS variable tokens throughout.
- newCommand palette search with keyboard shortcut ⌘K.
- newShareable permalinks via URL hash for text-based tools.
v0.5
First Tools and Patterns
- newJSON Formatter, Base64 Encoder, UUID Generator as the first three tools. Proved out the component pattern and WASM loading.
- newCSS variable token system for theming. Dark mode works before light mode does.
- newPermalink support via URL hash. Text in the URL, no server needed.
v0.4
Astro and Tailwind v4
- newAstro project with React islands and Tailwind v4. Static site generation, zero client JS for the shell.
- newi18n infrastructure with locale JSON files and SSR hydration. Five locales planned from day one.
- newHomepage bento grid layout for tool cards. Category based grouping.
v0.3
Scaffolding
- newProject scaffold with Astro, React, Tailwind, and Vitest. Build pipeline configured for Cloudflare Pages.
- newFavicon and OG image placeholders. Domain pointed at devbento.dev.
- newTool list drafted: 27 tools across 6 categories. Some would not survive the first cut.
v0.2
The Master List
- newResearch phase. Looked at every developer tools site, noted what they do well, decided to build the ones that matter.
- newRejected: hex editor, ASCII table, Lorem ipsum generator, barcode generator, stopwatch.
- newKept: JSON tools, crypto tools, converters, formatters, generators, calculators.
v0.1
It Compiles
- newnpm create astro@latest. Default template with nothing in it.
- newDecided on the name DevBento over DevBox, Toolbox, and CodeKitchen.