Changelog

New tool: AI Chat Screenshot Generator

2026-10-07

  • Added the AI Chat Screenshot Generator: create realistic ChatGPT, Claude, or Copilot chat screenshots (with markdown and code-block rendering), or Copilot CLI / Claude Code terminal-session screenshots (with tool-call and diff-line coloring) — editable turn-by-turn, exported as a PNG entirely in your browser. A mockup/parody generator for docs, tutorials, and social posts; not affiliated with OpenAI, Anthropic, or Microsoft/GitHub.
New reference: Lua Cheat Sheet

2026-10-06

  • Added the Lua Cheat Sheet: variables and types, control flow, tables (arrays, maps, nesting), the string library, functions/closures/varargs, metatables (the standard Lua OOP pattern with setmetatable/__index), coroutines, and pcall/assert error handling. Cross-linked with the Lua Playground.
New tool: Lua Playground

2026-10-06

  • Added the Lua Playground: write and run Lua code directly in your browser via Fengari (a pure-JS Lua 5.3 VM — no WASM, no server). Ships with 4 examples (hello world, tables, strings, recursion/coroutines), print()-based console output, share-by-URL, and a 2-second execution-time guard so a runaway loop can't freeze the page. Fills the last gap in the interview-judge language set's <lang>/online pattern (go/java/rust/c++/ruby all run remotely via toyapi; python/javascript/lua now run client-side).
New tool: Live-code Audio Playground

2026-10-05

  • Added the Live-code Audio Playground: write JavaScript against the real Tone.js API (synths, sequences, the Transport) and hear it play live in your browser via the Web Audio API — pure JS, no WASM, no server. Ships with 5 examples (single note, arpeggio sequence, drum pattern, chord progression, generative random melody), a log() status-output panel (no visible console otherwise), share-by-URL, and inline runtime-error reporting. Every Run swaps in a fresh Tone.js audio context so re-running or switching examples never stacks overlapping sounds (src/util/liveCodeAudio.ts).
Improved: workspace-save added to Graphviz, Mermaid, JQ, and XPath

2026-10-05

  • The Graphviz editor, Mermaid playground, JQ playground, and XPath playground now have a "Saved sessions" menu (same save/restore pattern as OpenSCAD and SQL Playground): save your current source under a name, reopen it later, and sign in to sync across devices instead of only sharing via URL.
  • Also fixed the Graphviz page's "About this editor" section, which was rendering centered instead of left-aligned like every other playground's intro text.
Improved: Box-Drawing Characters now has a contextual AI assistant

2026-10-05

  • The Box-Drawing Characters page's "Ask AI" button now opens an embedded, page-aware assistant (instead of linking out to the generic chat) that already knows the full character list and your current search/selection, so you can ask things like "which character makes a rounded corner?" without re-explaining the page.
New tool: L-system Generator

2026-10-05

  • Added the L-system Generator: type an axiom + rewrite rules (a Lindenmayer system) and watch the fractal turtle-graphics drawing update live. Ships with 5 classic examples (Koch snowflake, Sierpinski triangle, dragon curve, fractal plant, Levy C curve), adjustable iteration count/angle/step length, share-by-URL, and runaway-expansion/line-count guards so a heavy rule set can't hang the browser (src/util/lsystem.ts).
New tool: Blockly Playground

2026-10-04

  • Added the Blockly Playground: drag blocks together (Logic, Loops, Math, Text, Lists, Variables, Functions) using Google's Blockly library, see the generated JavaScript update live, and click Run to execute it with a custom print block feeding an output panel. 3 starter examples (Hello World loop, simple math, if/else), share-by-URL (encodes the serialized block workspace), and inline runtime-error reporting (src/util/blocklyPlayground.ts).
New tool: p5.js Sketch Playground

2026-10-04

  • Added the p5.js Sketch Playground: write a p5.js sketch (p.setup/p.draw instance-mode API) and see it render live in your browser, same engine as the official p5.js web editor. Pure JavaScript, no server. Ships with 4 examples (bouncing ball, particle system, Perlin noise flow field, mouse-reactive grid), share-by-URL, and inline runtime-error reporting that keeps the canvas area from silently breaking (src/util/p5Playground.ts).
New tool: GLSL Shader Playground

2026-10-03

  • Added the GLSL Shader Playground: write a ShaderToy-style mainImage(out vec4 fragColor, in vec2 fragCoord) GLSL fragment shader and see it render live and animated via real WebGL, right in your browser. Pure WebGL, no WASM, no server round-trip. Ships with 4 examples (UV gradient, animated plasma, soft circle, mouse-reactive glow), iResolution/iTime/iMouse uniforms, share-by-URL, and inline compile-error reporting remapped back to your own source line numbers (src/util/glslPlayground.ts).
New tool: Mind Map Maker

2026-10-03

  • Added Mind Map Maker: build a mind map by adding branches off any selected node, drag nodes anywhere to rearrange, double-click to rename, and color-code branches. Fully client-side (SVG canvas + pointer-event dragging, no new dependency), auto-saved to localStorage — no account, no backend. Mirrors the existing Kanban Board's local-storage-only approach. Node-tree data model + tests in src/util/mindMap.ts.
New tool: JSCAD Playground

2026-10-02

  • Added the JSCAD Playground: write JavaScript against the @jscad/modeling CSG API (cubes, spheres, unions, subtractions, extrusions) and see the resulting 3D model rendered live in an interactive three.js viewer. Pure JS, no WASM, runs entirely in your browser — the direct JavaScript sibling to the OpenSCAD Playground. Ships with cube/union/subtract/extrude examples, share-by-URL, and unit-tested geometry conversion (src/util/jscadConvert.ts).
New tool: Logo Turtle Graphics Playground

2026-10-02

  • Added the Logo Turtle Graphics Playground: type classic Logo turtle commands (forward, right, repeat N [ ... ], penup/pendown, color, and more) and watch the turtle draw on an HTML5 canvas, live. Ships with square/star/flower/spiral examples, share-by-URL, and a truncation guard against runaway repeat counts. Hand-rolled parser/interpreter (no eval, no new dependencies) with unit tests in src/util/logoTurtle.ts.
New tool: Messaging Screenshot Generator

2026-10-01

  • Added the Messaging Screenshot Generator: build a fake text-message conversation and export it as an image styled like iMessage, WhatsApp, or Telegram. Add messages from either side, set optional timestamps, a contact name, and status text, then download a PNG or copy it to your clipboard — fully client-side, nothing is uploaded. Sibling to the existing Social Post Screenshot Generator, but for multi-message conversations instead of single posts.
New tool: Ruby Online Playground

2026-10-01

  • Added the Ruby Playground: write and run Ruby code in the browser against a real Ruby interpreter, with the same editor, example dropdown, share-by-URL, and embedded AI chat as the existing Go/Rust/Java/C++ playgrounds. Ships with hello world + recursion, collections (Hash/Array/Enumerable), and classes/inheritance examples. Reuses the existing /playground/execute backend (already supported ruby) and the existing Ruby CodeMirror editor — no new dependencies.
New tool: C++ Online Playground

2026-10-01

  • Added the C++ Playground: write, compile, and run C++ code in the browser against a real C++ toolchain, with the same editor, example dropdown, share-by-URL, and embedded AI chat as the existing Go/Rust/Java playgrounds. Ships with hello world + recursion, STL containers (std::map/std::vector/std::sort), and classes/polymorphism examples. Reuses the existing /playground/execute backend (already supported c++) and the existing C++ CodeMirror editor — no new dependencies.
New tool: Kanban Board

2026-10-01

  • Added the Kanban Board: a lightweight scrum/task board with draggable cards and columns (To Do / In Progress / Done by default, add/rename/delete your own). Drag cards within or between columns via @hello-pangea/dnd (the same drag library already used by the TODO List). Fully client-side with no backend — state is saved to localStorage via @mantine/hooks' useLocalStorage, so it persists across reloads but stays private to this browser/device.
New tool: Social Preview Inspector

2026-09-17

  • Added the Social Preview Inspector: fetch a URL or paste HTML to preview how a page renders as a share card on Twitter/X, Facebook, LinkedIn, and Slack. Resolves each platform's real fallback chain (Twitter's own twitter:* tags first, falling back to og:*; Facebook/LinkedIn/Slack read Open Graph directly, falling back to <title>/meta description), and flags missing title/description/image plus title/description truncation per platform's display limits. Reuses the existing SEO Inspector's URL-fetch proxy; dependency-free regex-based meta-tag parsing in src/util/ogSocialPreview.ts, with unit tests.
New tool: Keyboard Event Viewer

2026-09-17

  • Added the Keyboard Event Viewer: press any key and see its live JavaScript event.key, event.code, and legacy event.keyCode values, plus modifier state (Ctrl/Alt/Shift/Meta), repeat, and physical location (standard/left/right/numpad) — useful when wiring up keybindings, shortcut handlers, or game controls. Includes a common key/code/keyCode reference table and a copy-as-JSON button for the last event. Pure client-side keydown listener, no dependencies. Helper logic + reference table in src/util/keyboardEventCodes.ts, with unit tests.
New tool: Gzip / Brotli Inspector

2026-09-16

  • Added the Gzip / Brotli Inspector: compress text or decompress and inspect an existing gzip, zlib/deflate, raw deflate, or Brotli payload — the kind of base64/hex blob you'd find in a Kubernetes secret or a Lambda response body. Shows a before/after size comparison for compression, and auto-detects the format from magic bytes for decompression (falling back to letting you pick). Gzip/zlib/deflate run via the existing fflate dependency; Brotli uses the browser-native Compression Streams API (feature-detected, with a clear message when unsupported) so no new dependency was added. Dependency-free hex/base64 codecs and format sniffing in src/util/gzipBrotliInspector.ts, with unit tests.
New tool: HTML to JSX Converter

2026-09-16

  • Added the HTML to JSX Converter: paste raw HTML markup and get a React component back. It applies the fixes JSX requires — class → className, for → htmlFor, attributes like tabindex, colspan, readonly, srcset, and contenteditable mapped to their React spelling, inline style strings → a style object, void elements (img, br, input, ...) self-closed, and HTML comments removed — while preserving data-*/aria-*, and auto-wraps multiple top-level elements in a fragment. Dependency-free string transform in src/util/htmlToJsx.ts, with unit tests.
New tool: SVG to JSX Converter

2026-09-15

  • Added the SVG to JSX Converter: paste raw SVG markup and get a typed React component back. It applies the fixes JSX requires — class → className, hyphenated/namespaced attributes (stroke-width, xlink:href) → camelCase, inline style strings → a style object, and HTML comments → JSX comments — while preserving data-*/aria-*, and spreads props onto the root <svg>. Dependency-free string transform in src/util/svgToJsx.ts, with unit tests.
New tool: JSON to Zod Schema Converter

2026-09-15

  • Added the JSON to Zod Schema Converter: paste JSON and get back z.object(...) declarations, inferring .optional() for fields missing from some samples, .nullable() for fields sometimes null, and z.union([...]) for fields whose type varies. Repeated nested shapes are deduplicated into shared schema constants — mirrors the existing JSON to TypeScript converter's structural-merge approach. Dependency-free inference in src/util/jsonToZod.ts (no zod runtime dependency added), with unit tests.
Improved: UUID / GUID Generator now supports v1, v3, and v5

2026-09-14

  • Extended the UUID / GUID Generator beyond v4/v7 with version 1 (timestamp + node), version 3 (namespace + MD5), and version 5 (namespace + SHA-1). v3/v5 add a namespace picker (DNS/URL/OID/X.500 presets or a custom namespace UUID) and a name field, so entering the same namespace + name always reproduces the same deterministic UUID. Namespace validation logic lives in src/util/uuidNamespaces.ts with unit tests.
New tool: CSS Box Shadow Generator

2026-09-14

  • Added the CSS Box Shadow Generator: a visual box-shadow builder with per-layer controls for offset-x/offset-y, blur, spread, color (with alpha), and inset, support for stacking multiple layers, one-click Material elevation / neumorphism / long-shadow / glow presets, a live preview against a light or dark background, and copyable generated CSS. All shadow math runs client-side in src/util/boxShadow.ts.
New Excalidraw example: Hash table with chaining

2026-09-13

  • Added Hash table with chaining: a new curated Excalidraw template (Interview: Coding category) showing a 5-slot hash table with a worked key collision resolved via chaining, alongside the existing array/linked-list/tree/graph interview-prep templates. New preview image and OG image rendered via Playwright.
New page: How to create a Use Case diagram in PlantUML

2026-09-13

  • Added How to create a Use Case diagram in PlantUML: a per-type landing page covering actor/use-case declaration syntax, a worked customer/support-agent example, a reference table for association/include/extend/generalization relationships, system boundaries via rectangle, and a live PlantUML Playground link — mirrors the existing create_sequence_diagram / create_class_diagram / create_activity_diagram pages. Renders 2 new PNGs via the live PlantUML playground + Playwright, committed under public/static/plantuml_pics/.
New page: How to create an Activity diagram in PlantUML

2026-09-12

  • Added How to create an Activity diagram in PlantUML: a per-type landing page covering start/:Action;/stop syntax, a worked order-fulfillment if/else example, a reference table for conditions, loops (repeat/repeat while), parallel forks (fork/fork again/end fork), and swimlanes, plus a swimlane example and a live PlantUML Playground link — mirrors the existing create_sequence_diagram / create_class_diagram pages. Renders 2 new PNGs via the live PlantUML playground + Playwright, committed under public/static/plantuml_pics/.
New page: How to create a Class diagram in PlantUML

2026-09-12

  • Added How to create a Class diagram in PlantUML: a per-type landing page covering class/attribute/method syntax, a worked inheritance + composition example (Animal/Dog/Owner), a relationship reference table covering all 5 UML arrows (inheritance, composition, aggregation, association, dependency), visibility modifiers, abstract classes/interfaces, and a live PlantUML Playground link — mirrors the existing create_sequence_diagram page and MermaidJS class-diagram page. Renders 2 new PNGs via the live PlantUML playground + Playwright, committed under public/static/plantuml_pics/.
New page: How to create a Sequence diagram in PlantUML

2026-09-11

  • Added How to create a Sequence diagram in PlantUML: a per-type landing page covering @startuml/@enduml sequence syntax, a worked login-flow example (Client/API Gateway/Auth Service/User DB with an alt/else valid/invalid-credentials branch), a message-type reference table (sync call, async call, sync return, colored arrow, activation bar + self call) with a rendered legend, and a live PlantUML Playground link — mirrors the existing MermaidJS per-type diagram pages and links to the built-in /plantuml/ editor.
New page: How to create a Git graph diagram in MermaidJS

2026-09-11

  • Added How to create a Git graph diagram in MermaidJS: a per-type landing page covering gitGraph syntax, a worked main/develop example with branching, a hotfix merged from main, a feature merge back with a v1.0 tag, a syntax reference table (commit, branch, checkout, cherry-pick, highlighted commit) with a rendered legend, and merge/tag notes, with a live MermaidJS Playground link — mirrors the existing sequence/flowchart/class/ER/state/Gantt-diagram pages.
New page: How to create Gantt chart in MermaidJS

2026-09-10

  • Added How to create Gantt chart in MermaidJS: a per-type landing page covering gantt syntax, a worked Website Redesign example with sections and after-chained task dependencies, a task-status reference table (done, active, default, critical) with a rendered legend, and section/date-format notes, with a live MermaidJS Playground link — mirrors the existing sequence/flowchart/class/ER/state-diagram pages.
New tool: Du Command Generator

2026-09-10

  • Added Du Command Generator: build du commands interactively with human-readable sizes, summarize/grand-total flags, max-depth, apparent-size, exclude patterns, and an option to pipe to sort -hr for largest-first output — mirrors the existing curl/tar/mysql command generators.
New page: How to create State diagram in MermaidJS

2026-09-09

  • Added How to create State diagram in MermaidJS: a per-type landing page covering stateDiagram-v2 syntax, a worked Idle/Running/Paused state-machine example, a transitions/pseudostates reference table (transition, start, end, choice) with rendered previews, and a composite/nested-state example, with a live MermaidJS Playground link — mirrors the existing sequence/flowchart/class/ER-diagram pages.
New page: How to create ER diagram in MermaidJS

2026-09-09

  • Added How to create ER diagram in MermaidJS: a per-type landing page covering erDiagram syntax, a worked CUSTOMER/ORDER/LINE_ITEM example with attributes, and a crow's-foot cardinality reference table (exactly-one, zero-or-one, zero-or-more, one-or-more) with rendered previews, with a live MermaidJS Playground link — mirrors the existing sequence/flowchart/class-diagram pages.
New page: How to create Class diagram in MermaidJS

2026-09-08

  • Added How to create Class diagram in MermaidJS: a per-type landing page covering class syntax (attributes/methods, visibility modifiers), the 5 UML relationship arrows (inheritance, composition, aggregation, association, dependency) with rendered previews, and multiplicity labels, with a live MermaidJS Playground link — mirrors the existing sequence/flowchart pages.
New page: How to create Flowchart diagram in MermaidJS

2026-09-08

  • Added How to create Flowchart diagram in MermaidJS: a per-type landing page covering node shapes (rectangle, rounded, diamond, cylinder) and TD/LR direction, with a live MermaidJS Playground link to explore the example — mirrors the existing sequence-diagram page.
New tool: Code Screenshot Generator

2026-09-07

  • Added Code Screenshot Generator: turn a code snippet into a beautiful, shareable image with syntax highlighting, gradient backgrounds, and optional window chrome, rendered and exported entirely in your browser.
New tool: JSON to TypeScript

2026-09-07

  • Added JSON to TypeScript: paste JSON and get TypeScript interface declarations, inferred entirely in your browser with optional fields and union types when array samples differ.
New tool: DBML Editor

2026-09-06

  • Added DBML Editor: write DBML and see a live entity-relationship diagram, then export SQL DDL for PostgreSQL, MySQL, SQL Server, or Oracle — the inverse of our existing SQL DDL to ERD diagram tool.
New tool: ULID Generator & Decoder

2026-09-06

  • Added ULID Generator & Decoder: generate time-sortable ULIDs (batch of up to 50) and decode existing ones back into their embedded timestamp, computed entirely in your browser.
New tool: JSON Graph Visualizer

2026-09-05

  • Added JSON Graph Visualizer: paste JSON and see it rendered as a force-directed node graph — every object, array, and value becomes a node linked to its parent, computed entirely in your browser.
New tool: CSS Unit Converter

2026-09-05

  • Added CSS Unit Converter: convert between px, rem, em, pt, pc, in, cm, mm, vw, and vh, with adjustable root/parent font size and viewport width/height — built entirely in your browser.
Regex Tester: pattern library + named test cases

2026-09-04

  • Added a searchable pattern library to Regex Tester (Email, IPv4, IPv6, URL, semver, JWT). Picking a pattern fills the Expression field, and named test cases below it re-evaluate live against your current expression with PASS/FAIL badges — so you can tweak a pattern and immediately see which sample strings still match.
Color Palette Generator: sample UI preview

2026-09-04

  • Added a "Preview sample UI" split pane to Color Palette Generator: see the generated palette applied to a form, hero section, page frame (header/footer), and app-like screen — each collapsible, updating live as you change the base color.
New tool: UTM Builder

2026-09-04

  • Added UTM Builder: enter a destination URL and campaign parameters (utm_source, utm_medium, utm_campaign, term, content, id) to generate a ready-to-share, percent-encoded campaign tracking URL — built entirely in your browser.
New tool: Color Palette Generator

2026-09-03

  • Added Color Palette Generator: enter a HEX/RGB/HSL color and get a 50–950 tonal scale, tints, shades, and complementary/analogous/triadic harmonies, each copyable as hex.
New tool: CIDR / Subnet Calculator

2026-09-03

  • Added CIDR / Subnet Calculator: enter an IPv4 CIDR block and get the network/broadcast address, subnet mask, wildcard mask, usable host range, and address count.
JSON Formatter: Open in JQ Editor

2026-02-13

  • Added "Open in JQ editor" action on JSON Formatter for quick handoff to JQ Playground.
File diff and markdown preview improvements

2026-02-10

New tool: File Diff

2026-02-07

  • Added File Diff tool for side-by-side text comparison.
Interview page layout improvements

2026-02-07

Excalidraw tabs UX improvements

2026-01-31

New tool: Stack Trace Formatter

2025-05-19

Added kubectl cheatsheet

2025-05-16

Added Excalidraw diagram editor

2025-02-22

Added CSV upload to SQL playground

2024-12-10

Fixed base64 tools & added list of cities with timezones

2024-12-09

Added timezone comparer & many CSV tools

2024-12-07

Added JSON interactive viewer & csv table viewer
Docker how to mysql and postgres

2024-11-26

Improve git cheatsheet

2024-11-25

Inline SQL variables

2024-11-22

Mysql command line builder more options and share

2024-11-19

Base64 image encoder

2024-11-09

Mysql command line builder

2024-11-08

Tar command like builder

2024-10-26

Solutions for interview questions

2024-10-15

Interview questions are back

2024-09-21

Blog posts about emailing from Azure

2024-08-14

  • Added multiple blog posts about emailing from Azure
JSON diff viewer

2024-06-25

  • Added new JSON diff viewer based on codemirror merge plugin
  • see it here JSON diff viewer
Draft of Canvas playground

2024-06-22

Graphviz & ASCII playground improvements

2024-06-20

Added several new ASCII pages

2024-06-19

Added Pan/Zoom controls for MermaidJS/Graphviz diagrams

2024-06-18

Added pricing page

2024-06-16

Added premium packages for the site and pricing page, see at Pricing page

Download as PNG and copy as RichText for google doc/word export of diagrams

2024-06-14

Added download as PNG and copy as RichText options for google doc/word export of diagrams:

Blog post & mermaidJS cheetsheet update

2024-06-13

Update SQL playground page

2024-06-12

Error display in MermiadJS editor

2024-06-10

Show errors in XML formatter editor

2024-06-09

Many improvements on SQL playground page

2024-06-02

  • show inline errors in the editor
  • more examples of sqlite imports
  • updated layout see SQL playground page
Added AI to more pages

2024-05-24

V2 of the website is released

2024-05-13

  • website is rewritten from scratch from GatsbyJS to NextJS (still static site rendering)
  • from JS to TS