Changelog

New features and fixes in each release of Secure Online Tools.

v1.10.0

New features

  • New STL Printability Checker, and a 3D Printing section to hold it. Slicers tell you a model has thousands of non-manifold edges without telling you where a single one of them is, which is why so many failed prints end with someone installing desktop mesh software to hunt for one missing triangle. This groups the failing edges into the few places they actually occupy, gives each one a size and a position, and swings the 3D view onto it when you click. Boundary edges are chained into rings, so three missing triangles read as one hole rather than nine problems, and the number your slicer shouted at you is shown too β€” it is a count, not an error code. It reads binary and ASCII STL, OBJ and 3MF, detects the format from the file rather than the extension, and catches the failure nothing else explains: a model that is closed, manifold and wound entirely inside-out. It does not repair anything, on purpose. Nothing is uploaded.
  • New Color Palette Generator from Image: drop in a photo, a screenshot or a logo and get its palette β€” the same perceptual colour engine the paint-by-numbers and pixel-art tools use, clustering the pixels in CIELAB so the swatches match what your eye groups together rather than what a histogram counts. Each colour comes with HEX, RGB, HSL, its share of the picture, the nearest CSS colour name and black-or-white text picked by WCAG contrast; click the image to add the exact colour under the pointer. Copy or download the palette as CSS variables, SCSS, a Tailwind colours block, JSON, plain text or a GIMP .gpl file, or save a PNG palette card to share. Nothing is uploaded.
  • New Image to SVG Converter: turn a PNG or JPG logo, icon, flat illustration or scanned line drawing into a real vector file without sending it anywhere. The image is reduced to a chosen number of colours, specks are merged into their neighbours, and every region boundary is traced into a smooth path β€” shared borders are simplified once, so neighbouring fills never leave a hairline gap. Choose colour, greyscale or black-and-white mode, set the smoothing and the minimum region size, drop the background to get a transparent SVG for cutting machines, and compare original and result with a slider. Download the SVG, or a PNG at an exact width or paper size. It tells you plainly that a photograph comes out as posterised art, not a photo.
  • New ASCII & Unicode Converter: paste text and get the numeric code of every character β€” decimal, hex, octal, binary, the UTF-8 bytes, the block, and the Unicode name where we carry one (ASCII, the C0/C1 controls, Latin-1 Supplement, Latin Extended-A, plus selected punctuation and symbols; an em dash elsewhere) β€” and paste codes back to get the text. It counts by code point, so an emoji is one character instead of two surrogate halves, and an accented letter is one row with two bytes beside it rather than a mystery. Control characters are shown by name instead of as an empty cell, which is how you find the no-break space that broke a lookup. Decoding is forgiving: mixed separators, 0x, U+ and A all work, and a token it cannot read is reported by position instead of silently swallowing the rest of the line.

Fixes

  • Four parsing fixes and one memory fix in the developer and image tools. The JSON formatter rejected valid JSON5 numbers written with a leading plus, a leading decimal point or a trailing one (+.5, .5, 5.) β€” they are now read and normalized. The JSONPath query tool silently ignored the step in a slice, so [::2] returned every element instead of every other one, and a union like [0,2] returned nothing at all; both are implemented now, and an unclosed bracket reports a syntax error instead of an empty result. The Base64 decoder accepted a padded string whose length was not a multiple of four, decoding something your browser would refuse β€” it now rejects exactly what the browser rejects. The slug converter dropped the German ß and typographic ligatures instead of transliterating them, turning "Straße" into "stra-e"; it now produces "strasse". And the image compressor was holding on to the before/after preview of every compression you ran, so dragging the quality slider on a large photo kept growing the tab's memory until a phone gave up on it.
  • Three fixes in the SEO and encoding tools. The hreflang checker accepted en-UK β€” the most common hreflang mistake there is β€” along with en-AN, eng and every other deprecated code, because the underlying locale data quietly resolves them to their modern equivalent. They are now reported as invalid, and the finding names the code you meant (did you mean "en-GB"?). The CSV exports of the hreflang checker and the robots.txt tester now neutralize cells that start with =, +, - or @, so a formula planted in someone else's page or robots.txt cannot run when you open the file in Excel β€” the same guard the DICOM, HL7 and sitemap exports already had. And the Base64 encoder was keeping the preview of every image you dropped in memory for the life of the tab; the previews are now released as soon as they are drawn.
  • Two fixes in the JSON and 3D tools. In the JSONPath query tool, a member name with an escaped quote in it β€” `$['it\'s']`, `$["say \"hi\""]` β€” matched nothing and said nothing: the backslash stayed in the key the tool went looking for. Every escape the JSONPath standard defines now resolves, and a backslash that is not part of one is kept as written instead of being swallowed. In the STL printability checker, a model with more triangles than a browser tab can hold was reported as "not an STL, OBJ or 3MF file", sending you to look for an export problem that was not there; it now says the model is too large, which is the actual answer.

v1.9.0

New features

  • New Photo Mosaic Generator: rebuild one big picture out of hundreds of your own smaller photos. Drop in a target image, add a whole folder of photos at once, and the tool matches a picture to every square of the grid β€” comparing how light and dark fall across each photo, not just its average colour, so the result reads both from across the room and up close. Tint, variety and smooth blending let a small photo set still cover a large grid, and you can download by exact pixel size or by paper size and DPI, ready to print. Every photo stays on your device.
  • Draw over a background in the full-screen board: put an image, or your own screen shared live through the browser, behind the canvas and annotate on top of it. The background pans and zooms with your drawing, so your marks stay on what they point at. An image background is saved with the board and appears in the PNG, SVG and PDF exports; a live screen is a stream, so nothing is uploaded, nothing is saved, and reopening asks you to share again.
  • Clean mode on the full-screen board hides every control β€” toolbar, panels, palette, minimap and exit links β€” for a bare drawing surface. Hold Alt (Option on a Mac) to bring them back while the key is down, or tap the small pill at the top centre of the screen on a touchscreen.
  • Optional screen recording: when a live screen is behind the canvas, a checkbox next to the record button also captures the screen and your annotations together, so the exported video shows the screen exactly as it was while recording even if the share has since ended. Leave it unticked and the video replays your drawing only, as before.
  • Paint by Numbers: every region on the sheet now carries a number. When a region is too small to hold its digit inside, the number is placed outside on a thin leader line pointing back at it, so no area is left unlabelled. A notice above the sheet tells you how many regions ended up that way at the print size you chose β€” and that count really does change between A5 and A3, because a printed digit has a millimetre height, not a pixel height. From the same notice you can merge those regions away in one click (you lose some detail), or undo the merge and get the detail back.
  • Paint by Numbers: see exactly which regions those are. Next to the leader-line notice there is now a β€œShow these regions” toggle that outlines precisely those regions on the sheet, in a highlight colour you pick (red unless you change it), so you can tell at a glance whether they fall on a face or scatter across the background before you commit to a print size. The highlight is a screen aid only β€” it never appears in the SVG or PNG you download.
  • Paint by Numbers: the editors now sit in a column beside the sheet instead of stacked above it, and the sheet stays in view while you scroll through the controls, so you can see what changing colours, detail or smoothing does. The viewer zooms in and out, a β€œFit” button returns to the whole sheet, and while zoomed you can drag the sheet to move around it. Loading a photo scrolls straight to the image. On a phone the two columns stack with the sheet first.
  • Paint by Numbers draws cleaner sheets. Region outlines are now fitted as curves instead of following the pixel grid, so a shoulder or a cheek reads as a drawn line rather than a staircase, and a perceptual colour-merge pass joins neighbouring areas the eye reads as the same colour β€” which stops a face from breaking up into a mosaic of slivers and leaves fewer, larger, genuinely paintable regions.
  • Paint by Numbers: β€œMerge similar colors” now shapes the palette as well as the regions. When your photo holds a distinct colour the palette was leaving out, two palette colours closer together than this value are combined and the freed slot goes to the colour that was missing β€” so a portrait stops spending three of its slots on near-identical browns. This is a trade, not a free win: on photos dominated by a single hue you gain a feature that was absent and give up some overall colour fidelity in exchange. If you would rather keep every shade exactly as measured, set the control to Off.
  • Paint by Numbers can offer you the Faces focus. When it is confident your photo contains a face, a one-click β€œApply Faces focus” appears beside the Focus control, which concentrates detail on the face instead of spreading it evenly over the picture. It is an offer, never automatic β€” nothing changes unless you click it. It is also deliberately cautious and stays quiet on many photos that do contain a face, so the Focus control remains there to set by hand whenever you want it.
  • Paint by Numbers numbers now vary in size like a real painting kit: the size you choose is the smallest one, and every area prints the largest number that fits inside it, up to five times that. Numbers with two or three digits are measured by their full width, so a "127" no longer overflows the area it labels. The default smallest size is 2 mm.

Fixes

  • Paint by Numbers now finishes on high-detail photographs that used to hang. One very detailed photo took 60.3 seconds in Firefox β€” past the tool's own 60-second ceiling, so it gave up and left an empty panel behind β€” and now takes 3.96 seconds; Firefox was the worst case and is no longer the odd one out. The ceiling still exists, because some photograph will always be too much work: when a run does hit it, the tool now says so and names the two settings that measurably reduce the work β€” fewer colours, and a higher β€œMerge similar colors” value β€” instead of leaving you with a blank panel and a wedged tool.
  • Coloring Page and Pixel Art: the preview no longer grows taller than the window on tall photos, so the controls underneath stay where you expect them. The Coloring Page also shows your photo while the first sheet is still being traced, instead of collapsing to an empty box until the outlines are ready.
  • Paint by Numbers keeps small facial features when "merge thin regions" is on. Areas too narrow to hold a number used to be handed whole to one neighbouring colour, which erased eyes, teeth and nostrils β€” on one test photo the teeth were repainted in the colour of the wall behind the subject. Such an area is now dissolved gradually from its edge inwards, so each part of it takes the colour it actually touches, and neighbouring small areas that together form one feature are kept as a single shape rather than being erased separately. Faces are also judged more leniently than flat backgrounds, matching how the detail setting already works. Measured across ten photos, between 13% and 316% more detail survives, and up to 97% fewer pixels are repainted.
  • Paint by Numbers outlines print at a real, chosen thickness in millimetres (0.15 mm by default) instead of a fraction of the page. Before, the same artwork drew a visibly heavier line on bigger paper, and the extra ink covered the smallest areas on the sheet.
  • Zooming into the Paint by Numbers preview now redraws it sharply instead of magnifying a blurry copy, so you can inspect fine detail before printing.
  • The animation shown while Paint by Numbers is working now follows the photo's own edges as smooth silver curves, instead of zig-zagging across them.

v1.8.0

New features

  • Whiteboard hand tool and minimap: grab the canvas to pan without drawing, and keep a small overview of the whole board in the corner so you always know where you are on an infinite canvas.
  • Save and reopen whiteboard recordings: a narrated session now exports as a project file with its audio included, so you can load it back later and keep replaying, scrubbing or exporting it. Nothing is uploaded β€” the file stays on your device.
  • New Base64 guides in Spanish and English: the alphabet and padding explained, Base64 for files and data URIs (and the size overhead it adds), and why Base64 is encoding rather than encryption.
  • Blog tags now follow the language you are reading in, and the tag you filtered by is shown on the page so it is clear what the list is filtered to.
  • Article images now carry descriptive alternative text, so screen readers describe what each illustration shows instead of repeating the article title.

Fixes

  • Whiteboard replay now draws each stroke progressively, as it was originally drawn, instead of making finished strokes appear all at once. The camera movements you made while recording are replayed too, and the timeline marks line up with what you hear.
  • Fixed 11 internal links that pointed to the wrong category or to a non-localized address and led to a Not Found page.
  • Spanish blog tag pages kept their old addresses working: the previous links now redirect to the translated address instead of breaking.
  • Article publication dates are spread across distinct days, so the blog reads as a steady stream of articles instead of large batches all dated the same day.

v1.7.0

New features

  • Whiteboard voice-over: in the full-screen board, record your microphone while you draw, replay the drawing in sync with the audio on a scrubbable timeline, and export it as a video. Audio never leaves your browser.
  • New PDF Organizer: combine several PDFs and control the exact page order β€” concatenate or interleave documents, rotate, reverse, set page ranges, and rearrange or delete individual pages with a live thumbnail preview. Everything runs in your browser.
  • New TOTP Generator: turn a secret into a scannable QR code, or read a QR from an image or your camera to recover the secret β€” with the six-digit code refreshing live. Everything stays in your browser.
  • New Hash Generator: compute MD5, SHA-1, SHA-256 and SHA-512 digests of text or a file, entirely in your browser.
  • New Full-Screen Whiteboard: an immersive, distraction-free version of the whiteboard built for presenting, teaching and touchscreens β€” launch it edge-to-edge and your board is saved in your browser.
  • New guides for the full-screen whiteboard: using it for online teaching, presenting on a second monitor, touchscreens and interactive displays, and distraction-free focus.
  • New Online Whiteboard: an infinite canvas you can draw on the moment it loads. Freehand pen and highlighter with smart shape recognition (a rough sketch snaps to a clean shape), editable shapes, arrows, text and images, drag-to-resize handles, alignment snapping, rulers and a context color palette. Export to PNG, SVG, PDF or a reusable JSON scene, entirely in your browser.
  • New full-screen whiteboard app at /board: a distraction-free, bookmarkable workspace that starts on the pen and saves your board in your browser, so it is still there when you come back.
  • Whiteboard: align and evenly distribute several selected shapes with one click, and resize a whole selection at once β€” hold Shift to keep proportions.
  • Whiteboard: choose a line style (solid, dashed or dotted) for any shape, and pick the arrowhead at each end of an arrow (none, arrow or dot) β€” set them before drawing or change them on a selected shape.
  • Whiteboard: reorder overlapping shapes with bring-to-front / forward / backward / send-to-back buttons (or Ctrl+] and Ctrl+[), and nudge the selection precisely with the arrow keys β€” hold Shift for a bigger step.
  • Whiteboard: group shapes so they move and select together (Ctrl+G / Ctrl+Shift+G), lock a shape to protect it from edits (Ctrl+Shift+L), and copy the whole board to your clipboard as a PNG to paste straight into another app.
  • Whiteboard: rotate shapes, text, sticky notes and images with a rotation handle above the selection β€” hold Shift to snap to 15Β° steps. The shape still selects, resizes and exports correctly at any angle.
  • Whiteboard: new sticky notes, elbow (right-angle) connectors and block arrows.
  • Added a feedback button (report a bug or suggestion) and a contact form. Both are optional β€” they only appear when configured.

Fixes

  • Whiteboard: dashed and dotted line styles now show live on the canvas, not only in the exported image.
  • Blog article headers are now a shorter, full-width hero image instead of an oversized banner.

v1.6.0

New features

  • Blog, tag and category pages are now paginated (12 per page) for faster browsing.
  • Each site now has a public changelog β€” click the version in the footer to see what's new.
  • Refreshed page headers: the title and description now sit on a larger hero image, and category pages show each tool as an image card you can browse at a glance.
  • The privacy notice is now a compact dismissible bar at the bottom of the screen instead of a large block, leaving more room for the tool.

Fixes

  • Fixed the blog card image so it fits the card edge-to-edge instead of floating with extra padding.
  • Fixed offline mode: the offline cache failed to install because of missing icon files, so pages weren't reliably available offline.
  • Keyword tags now show as individual tags instead of a single comma-separated line.