Early Bird - the Full Version is $19 right now, before it goes to $39. See pricing →

Changelog

Every shipping release of Needlework Studio, what was added, what changed, what was fixed. This page is generated automatically from the project's CHANGELOG.md when a new version is tagged. Want the latest build? Head to Downloads. Curious who's making this? See About.

1.1.9

September 9, 2026

Added

  • The color that dims finished stitches has its own button in the toolbar and in the zen bar, next to Mark Complete. It shows the color in use; pressing it opens the six presets and the color picker. It used to live only in Settings, where most people never found it.
  • The color legend scrolls to the color you pick, whether you chose it with the dropper, the Pick tool, a click on the row, or the arrow keys. Before, the row you had just chosen could be off screen with its thread number out of sight.

Fixed

  • Shortcuts, Theme, Settings and Logout stay on screen at larger text sizes. The row of viewing tools used to push them past the right edge of the window with no way to reach them. The tools now wrap instead. At the default size nothing moves; the Chart, Thread, Symbols and Color buttons are slightly narrower so a 1280 pixel wide window still fits on one line.
  • The zen mode bar on an iPad now sits below the status strip instead of under it, where nothing could tap it. Nothing moves on a computer.
  • The editor toolbar no longer wraps onto several rows over your chart. When the tools would not fit, the ones you use least move behind a More button and the rest stay in view. Widen the window and they come back. On a wide screen nothing changes.
  • A highlighted color stays highlighted while you pan and zoom. Stitches that scrolled into view used to arrive grayed out until the next full redraw.
  • Turning a highlight off clears all of it. A band of dimming used to linger down the right side and along the bottom when zoomed in.
  • Stitching progress follows the pattern when you edit it. Resizing, cropping, adding or removing rows or columns, or moving a selection used to leave your marks behind, so finished squares came back unmarked and some were lost for good. A copied selection starts unstitched.
  • On Windows, the app opens again when a windowless copy is still running, instead of doing nothing. A launch that fails partway now says so and closes rather than sitting unseen and blocking the next attempt, the close button no longer waits forever on a page that has stopped answering, and the app keeps a short log of its own starts and stops so a repeat can be diagnosed.

1.1.8

August 31, 2026

Added

  • The other computer is already in the list when you go to join one. Joining used to mean walking over to the other machine, reading its address off the screen and typing it back in by hand. Any computer on your network that is sharing now appears in the join form, and clicking it fills the address in. You still type the six digits yourself. That is the part that proves you are joining the computer you think you are, so it stays in your hands.
  • A chart you imported on a tablet brings its pages with it. If you imported a chart on the tablet and then went to your computer to do the real work, the reference layer arrived but the pages behind it did not, so you opened an empty layer. The pages now cross with it, and a layer that came over empty before fills itself in the next time the two sync.

Fixed

  • The stitch count in the color legend no longer sits on top of the thread name. Once a color had a count in two parts, like 19,999 / 20,000, the wider count took its space out of the name beside it, and on a narrow panel it started partway inside the name. The count keeps to its own column now and the name keeps its room.
  • A color you have started stitching no longer loses its thread code. Marking any progress against a color switched its count to the "done / total" form, and the wider count pushed the code out, so DMC 3801 read as "DM..." on exactly the colors you were working on. The code is what you need to buy a thread, match it, or find it in a drawer, so it is the last thing to give way now instead of the first.
  • The fabric stash no longer looks like the thread page. If you switched to the Fabric tab, the heading still read "Thread Inventory", the DMC number rail was still painted down the side of a list that has no thread numbers, and the search box cut its own placeholder off mid-word at larger text sizes. All three follow the tab you are on now.
  • A pattern card no longer shows tomorrow's date. If you saved a pattern in the evening, the card read the next day, every night, on every card, for anyone west of Greenwich. The saved time was being read as though it carried no timezone. Cards show the date where you are now.
  • Help no longer opens with a banner trying to sell you the app. Tapping Help took you to the documentation on the website, which carries a bar across the top offering the full version, the same as it does for anyone reading it on the open web. Opened from inside the app, the documentation now comes without it.
  • Joining another computer no longer tells you that you are hosting one when you are not. If this computer's saved sync settings were damaged, every attempt to join a server or another computer was turned away with "This computer is hosting another computer, so it cannot also join one," and turning sharing off did nothing, because it was never hosting anything. The sync window also showed the pairing form instead of the Unpair button, so there was no way to clear the bad settings from inside the app. It now says that it cannot read its own sync settings and offers Reset sync settings, which clears them on this computer only and leaves your server and your patterns alone. Unpair also tells you when it did not work, instead of saying it succeeded and changing nothing.
  • The key that signs this computer in to your server no longer stays on disk after a crash. When the app is killed partway through saving its sync settings, it leaves a half-written copy of the file behind, and that copy holds the sign-in key for your server. Cleaning up used to wait a minute before touching anything, in case another save was still running, so a crash followed by unpairing in that first minute left the file sitting there for good. The app now clears anything left over as it starts up, once it has confirmed nothing else is running that could be part-way through a save of its own.

1.1.7

August 22, 2026

Added

  • Two computers can sync to each other directly, with no server in between. Until now, keeping a desktop and a laptop in step meant running a server for your patterns to live on. Now one of them can do that job itself. On the computer holding your patterns, turn on Sharing, and it shows three things: an address, a pairing code and a join code. On the other computer open the sync window, choose Another computer running Needlework Studio, and type those in. The first computer then asks whether to allow it and shows six digits to match, so nothing can join without you watching it happen, and you choose whether the other machine may only read and record progress or may change patterns too. After that the two keep each other up to date whenever both are running: patterns, stitching progress, thread and fabric inventory, tags and reference images, in both directions. Both computers have to be awake and on the same network, so this is for two machines in the same home rather than syncing to somewhere you can reach from anywhere. This is part of Full Version + Server, the same one that unlocks syncing to your own server.
  • The editor toolbar can be moved anywhere you like. It sits against the top edge as before, but there is now a grip on its left side you can drag to put it wherever suits the chart you are working on, up, down or across, and it stays there the next time you open the editor. Move it off the top and it rounds its corners again, because it is no longer attached to anything. Drag it back up to where it started and it snaps home, square and centered. Double-clicking the grip does the same. It cannot be dragged off the screen, and on a phone it stays put at the bottom where it belongs.
  • The sharing banner can be put away. While you are sharing your library to a phone or tablet, a gold bar sits across the top of every page. It says something worth knowing once and then repeats it for the rest of the session, so it now has an X on the right. Closing it hides it everywhere for as long as sharing stays on, and the devices icon in the toolbar keeps a small dot lit so you can still tell at a glance that you are sharing. Turn sharing off and on again and the bar comes back once.

Fixed

  • The designer name on a pattern no longer goes missing when you sync. If you sync between computers, a designer set on one of them never reached the others, and the next time you edited anything else about that pattern, the empty value went back and erased it. Nobody had to touch the field for it to disappear. Designers now cross like the rest of a pattern's details, and a pattern arriving for the first time brings the designer it was created with.
  • A pattern you deleted no longer comes back. If you sync between computers and deleted a pattern at a moment when a sync was already due, the next sync could put it back, and nothing on screen said why. Deleting it again usually worked, because the timing had to line up. The delete is now recorded and honored the same way a removed thread color or tag already was. Deleting a pattern also records that deletion in the same step, so a crash in between can no longer leave a pattern that quietly returns on every sync from then on.
  • Letting go of the mouse outside the window no longer leaves something stuck to your cursor. If you dragged the chart, the minimap, the edge of the color legend, a tool panel or the crop box and released the button outside the app, the app never heard you let go. Moving the mouse after that kept dragging, with nothing held down. The legend edge was the worst of them, because it also left the whole page showing a resize cursor with text selection switched off until you clicked something. They all now notice the button is already up and stop.
  • The thread list no longer opens by telling you what you do not have. On a new install it read 744 colors, 0 owned, 0 need, 744 do not own, with that last number the biggest and reddest thing on the page. It is a count of the DMC catalog rather than anything about you. Until you have marked your first color it now says what the page is for instead, and the counts come back the moment they mean something.
  • The sliders and small controls on the photo converter are easier to hit. The width, height, color count, contrast and brightness sliders were a four pixel line, so landing on one took real aim, and the checkboxes, the lock button and the zoom box were all smaller than a control should be. They look exactly the same as before. The part you have to hit is now the full twenty four pixels the rest of the app uses, it is just wider than the line you can see.
  • Opening a full version feature now tells you which one it was. Going straight to Stats, the Materials Calculator, PDF import or sharing when you are on the free plan used to drop you on the Settings page with nothing on it mentioning what you had just clicked, which read as though something had gone wrong. It now takes you to the License part of Settings and says, for example, that Stats is part of the full version. Once you have upgraded the message stops appearing, including on the reload straight after you enter your key.
  • Cropping a reference page no longer crops the whole canvas. If your chart came in as several pages and you cropped the first one you set up, the whole canvas shrank to the box you drew instead of just that page. Now cropping only ever trims the page you are on, whatever order you work in. A pattern with a single reference page keeps the old behavior, where the crop also trims the canvas, which is the quick way to cut the margins off a scan.

1.1.6

August 18, 2026

Added

  • The chart can show plain color instead of symbols. Beside Chart and Thread there is now a second pair, Symbols and Color. Symbols are what make a chart stitchable and they stay the default, but turned off, every square becomes a block of solid color. That makes it far easier to see at a glance whether you have filled an area in yet. Until now the only way to get that view was to zoom out until the symbols stopped drawing, which cost you the detail you were working at. Your choice is remembered, and the pair goes away in Thread view, where there are no symbols to hide.
  • The simple toolbar includes the color picker. The editor can open with a small set of controls and one button to bring the rest back. The picker was not in that set, so if you take colors off the chart with the mouse rather than the keyboard, you had to keep the whole toolbar open for that one button. It is in the small set now.
  • The thread you are drawing with shows its symbol. The color button at the top of the editor showed a swatch and the thread number. It now shows that color's symbol inside the swatch as well, so the toolbar names a thread the same way the squares on the chart do.
  • The app now opens on what to do first. Until you have saved a pattern, the dashboard leads with the ways to begin: open a pattern file you already have, turn a photo into one, start from a blank grid, or work out what materials you need. Nothing else moves off the page, it just sits below. Once you have saved anything the section goes away for good, and the dashboard is exactly as it was.

Fixed

  • The editor toolbar sits against the top edge. It used to float a little below it, leaving a thin strip of your pattern showing above the toolbar. The strip did nothing, and it read as a gap you ought to be able to close, which you could not.
  • Marking mode can no longer be started while you are editing. Marking stitches complete, placing a marker and picking a color are things you do while looking at a pattern, not while changing one, and in the editor every click they take is ignored. The keyboard shortcuts already refused. The buttons in the full screen bar did not, so you could switch marking on, watch the button light up, and then find that nothing you clicked did anything. Those buttons are now hidden while you edit.
  • The strand count is a real button the moment you start editing. The small number beside each color in the legend, the one that says how many strands it uses, is the only way to change that number. It only became clickable after something else redrew the legend, such as searching or sorting it, so straight after entering edit mode it looked like a button and was not one.
  • Removing a color from the legend tells you what went, and offers to put it back. Removing a color you had drawn with already asked you to confirm, and still does. Removing one with no stitches in it asked nothing and said nothing, so a color simply vanished. Undo always brought it back, but nothing on screen said so. Either way you now get a short message naming the color that went, with an Undo button on it.
  • Turning a photo into a pattern is stricter about the file it will open. The app decides what kind of image a file is by looking inside it rather than trusting the name, which is right, but it used to read the whole file first and check the kind afterwards. It now checks first and only reads the ones it accepts, so a file pretending to be a photo cannot get itself opened by a part of the app that was never meant to see it.
  • The color legend no longer breaks up while you edit. The thread number beside each color was splitting onto two lines, so a twelve-color pattern read as a column of half numbers instead of a list you could scan. At the larger text sizes it got worse: the thread name disappeared from every row, and the number was drawn on top of the stitch count. Each row now uses two lines on purpose, with the thread number and the count on the first and the name and the row buttons on the second. Colors carrying backstitches were the worst affected, because the small line sample beside them took the same amount of room whatever your text size, and those rows are fixed too.
  • The legend reads better when you are not editing, as well. Almost nothing moves: the stitch count now sits level with the thread number rather than partway down the row. At the largest text size the thread number used to break onto two lines here too, so those rows are a little shorter than they were.
  • The buttons on each legend color are easier to hit. Replace, duplicate and delete were about seventeen pixels across, sitting next to each other in a row of near-identical icons, and the delete button is at the end of that row. They are now at least twenty-four pixels, which is the size a control should be to be reliably clickable.
  • The legend gets wider when you make the text bigger. Everything inside the legend grew with your text size, but the panel holding it did not, so at the largest setting there was around forty percent more to fit in the same width and the thread numbers were the first thing to give. The panel now grows with the text in it. You can still drag it narrower or wider whenever you like, exactly as before.
  • A stitch drawn twice in the same place is no longer counted twice. If a chart contained the same backstitch, French knot, bead, or part stitch sitting in exactly the same spot in the same color, the editor's color legend and the thread calculator each counted both of them, while the pattern view counted one. All three now count one, which is what you actually stitch, so the thread estimate for a chart like that comes out a little lower than before. The app has never let you draw one stitch on top of another, so this only shows up on charts brought in from elsewhere.
  • Swapping one thread color for another no longer leaves the old one behind. Replacing a color moved every stitch across correctly, but the color you replaced stayed in the legend showing zero stitches, and it survived saving and reopening the pattern. So a thread you had decided against stayed on your shopping list, and a pattern you had revised a few times collected rows you had to delete one at a time. The emptied color is now removed. A color that was already empty, such as a duplicate you just made to draw with, is left alone.
  • Closing the app no longer leaves part of it running. The app could leave its background helper behind after you quit. The next time you opened the app it found its usual door blocked and quietly used a different one, which is how it finds work you had not saved yet, so a recovered draft could go missing. Quitting now waits for that helper to stop before the app closes.

1.1.5

August 16, 2026

Added

  • The editor can show just the essentials. A new install now opens the pattern editor with seven controls instead of thirty-two: Draw, Fill, Erase, the thread color, Undo, Redo, and a button at the end marked All tools that brings the full set back whenever you want it. Your choice is remembered, and the button reads Simple once you are in the full toolbar, so it works the same way in both directions. Nothing is removed and no keyboard shortcut changes. If you already know the toolbar you will not notice anything different, because existing installs keep every button exactly where it was; the seven-control view is for people opening the app for the first time.
  • A blank canvas now starts with a color ready to go. Opening a new blank pattern used to leave nothing selected, so the first click on the squares did nothing at all and it was not obvious why. It now starts on black, with the tool already set to draw, so your first click puts down a stitch. If you would rather start with a different color, pick one and the black disappears by itself, since it was never used.

Fixed

  • Sharing to a phone or tablet now tells you when the connection is not encrypted. If this computer cannot create its security certificate, sharing falls back to an unencrypted connection, and until now the page said nothing at all in that case: the warning only ever appeared when things were working properly. It now says plainly that anything you open on the other device travels over your network in the clear, and what to try.

1.1.4

August 15, 2026

Added

  • The editor now tells you what your next click will do. A line under the chart says it in plain words, such as "Click a square to place a full cross stitch in DMC 310", and it changes as you pick a different tool. Backstitches and French knots say that they go on the lines between squares rather than inside them, which nothing in the app said before. If you have not picked a thread yet it tells you that too, instead of leaving you clicking a chart that does nothing and wondering what is broken. In the pattern viewer it says what marking off will do, which is different depending on whether you are marking crosses, backstitches, or knots and beads.
  • Mirror mode now says it is on, in words, as part of that same line. While mirroring is switched on the line adds what it is doing, such as "Mirror is on, so every change is repeated left to right", with a Turn off button beside it. Until now the signs were a highlighted button in the toolbar and a faint dashed line down the mirror axis, neither of which tells you what is about to happen, and since the M key switches it, it was easy to turn on by accident and then wonder why every click was putting down two stitches. This part cannot be hidden, because hiding it would put that problem straight back.
  • You can hide any hint you no longer need with the x at the end of the line, and each one stays hidden on its own. Settings has a Show the hints again button under Editor Hints when you want them back.
  • Sharing to another device now asks you to approve it first. When a device asks to connect, it shows six digits and appears under Devices waiting to pair on the Share page; you type those digits to let it in, or dismiss it with Not me. Typing the digits is the part that matters: it means someone who photographs the sharing code off your screen still cannot connect in your place, because they would also have to be holding the device you are looking at. Sharing is still off until you switch it on, and you can still revoke any device you have paired.

Changed

  • Mirroring is now a per-session choice. The option in Settings is where mirroring starts each time you open the editor, it is named Mirror Mode When The Editor Opens to say so, and switching it while you work lasts for that session only.
  • Small text and small buttons are easier to see and to hit, across the app. The tool names in the editor are larger on every screen with room for it. On a phone they stay as they were, because the bottom toolbar is already full and a wider label just slides under the More button. The buttons on each thread color are now a 24 pixel target rather than 17 pixels across, which matters most for the delete button sitting at the end of a row of identical icons. The same minimum now applies to the quantity buttons in your thread inventory, the sort buttons above a legend, the tag buttons, every dropdown row, and the checkbox rows in Settings, where the words beside the box are now part of the target instead of dead space.

Fixed

  • A license turned off after a payment dispute now says it is no longer active, instead of saying it was refunded. Those are two different things: a refund is something you asked us for, and a dispute is your bank reversing the payment, sometimes without you knowing. The message now invites you to get in touch if it looks wrong.
  • The editor no longer lights up two buttons that mean different things at once. Choosing Erase used to leave the stitch type beside it lit, Half or Quarter or whichever you had picked, even though the eraser does not use the stitch type at all, so there was nothing on screen telling you what a click was about to do. The stitch type is now lit only while the tool you are holding can actually place it, and your choice is still remembered for when you go back to one. Backstitches and knots go one better: they sit on the lines between squares and only the stitch tool can place them, so picking Backstitch and then Draw now switches you back to a full cross and says so, instead of leaving Backstitch lit while your click put down something else.
  • Mirroring can no longer get stuck on. If a license went back to the free version while mirroring was set, every click carried on placing two or four stitches, and the buttons, the keyboard shortcut and the setting that switch it off are all part of the full version, so there was no way back. It now switches itself off in that case.
  • Chain no longer stays switched on after you convert a new image. Turning it on to join up backstitches used to carry over into the next pattern, still armed and still lit, so the first two clicks joined themselves to a line from a pattern you had already left.
  • The stitch count beside each thread color keeps up with your drawing again. While editing a pattern, those numbers were worked out once when the pattern opened and then left alone, so a color you added partway through sat at 0 however much of it you put down, and the colors that came with the pattern kept showing their opening numbers. Drawing more did not help, which made it look like some colors counted and others did not. They appeared to fix themselves at random, which was really anything that happened to make the app work them out afresh, such as switching to marking your progress, or reloading the pattern. Canceling an edit now puts the numbers back to match, and so does recovering unsaved work.
  • Thread numbers with a letter in front survive importing a PDF. DMC sells several ranges where that letter is the whole point: C310 is the sparkling Etoile version of plain 310, E310 is the metallic Light Effects one, S550 is satin. Each is a different thread you buy separately. One of the ways we read a chart's thread list only recognized plain numbers, so those rows were passed over without a word and the color never reached your pattern at all. The same blind spot could turn a bead into a French knot, when the bead's thread number had a letter in front of it.
  • The pattern calculator counts your stitches again. Rather than counting the pattern in front of it, it was reading a number filed alongside each color, and on anything you imported and never edited that number is simply not there. A chart full of stitches then reported no stitches at all and told you to buy no thread, which is a shopping list that says buy nothing. It now counts the pattern itself, including the backstitch, French knots and part stitches that also use thread. Beads are still left out of the thread total, since they do not use any.

1.1.3

August 13, 2026

Added

  • You can now get to the pricing page from inside the app. There is a See pricing button in the License section of Settings, and the message you get when you try a full version feature now takes you straight there. Before this the app listed everything the full version includes and then asked for a license key, without telling you anywhere to get one.

Fixed

  • If a license is ever turned off, the app now says so on the launch it happens, instead of waiting until you open another page. The check runs in the background and takes a few seconds, so the app had usually finished loading before the answer came back, and it would drop to the free version with nothing on screen explaining why.

1.1.2

August 12, 2026

Changed

  • The license agreement has a small wording correction covering how often the app checks your license, so you will be asked to accept it once the next time you open the app. Nothing the app does changes, the wording just matches it more exactly.

Fixed

  • If your license is ever turned off, the app now tells you the right reason. It used to say the license had been refunded no matter what happened, including when we switch one off by hand, which was simply untrue for anyone that applied to.
  • The monthly license check no longer gets confused by a bad connection. If it cannot reach us, or reaches us and gets an error back, it tries again the next day instead of either giving up for a month or asking again every single time you open the app.
  • A replacement license key no longer shows the old warning. If you were sent a new key after a problem, pasting it in used to leave the red notice on screen saying your license had been refunded, on a key that had just been accepted.
  • The warning can no longer strand you on the sign-in screen, and it no longer reappears forever if the app fails to note that you have already seen it.
  • The buttons across the top of the window work again after you flick quickly to the top of a long page. On a Mac that flick makes the page bounce, and during the bounce the system could lose track of which parts of the top row are buttons and which part is the window's title bar. It treated the whole row as title bar, so the logo, the menu button and the settings gear stopped responding until you scrolled again.

1.1.1

August 11, 2026

Fixed

  • A wording correction in the license agreement. It said that only a refunded or revoked license would stop a server you host yourself from starting, when in fact a missing, expired or wrong-tier key stops it too. The app has always worked this way and nothing about it changes here, the agreement just describes it accurately now. You will be asked to accept it once the next time you open the app.

1.1.0

August 11, 2026

Changed

  • The app now checks about once a month that your license is still valid. It used to check only once, when you first activated it. The check sends your license key and nothing else, and if you are offline nothing happens and the app carries on as it was. Only a license that has been refunded or revoked moves the app back to the free version, and if that happens the app tells you why. Your patterns and everything else stay on your computer either way.
  • The license agreement has been updated to cover that check, so you will be asked to accept it once the next time you open the app. It also has a small wording change about your thread inventory choices.

1.0.1

August 10, 2026

Fixed

  • The menu at the top keeps Home, Inventory, Saved Patterns and Stats visible in a much smaller window. Making the window narrower used to hide the whole menu behind the three-line button all at once, and there was a range of sizes where the settings gear was cut off the right edge with no way to reach it. Now the four you navigate with stay put, and Convert Image, Import File, Blank Canvas and Materials Calculator move into a More menu beside them. Narrower still and everything goes into the three-line menu as before.
  • A server you host yourself now starts even with no internet connection. It used to insist on checking in with us and would refuse to start if it had not managed to for a week, which was never the intention: a paid license is meant to work offline.

1.0.0

August 10, 2026

Changed

  • This is the first release you can buy. The app itself did not change when the version number did, it is the same one the beta testers have been using. The number moved because the last piece landed: a way to tell us when something breaks, from inside the app, without saving a log by hand and attaching it to an email.

Fixed

  • A bug report now names the file that was involved. In 0.18.0 your Windows account name was removed from the diagnostic log, which was the important half, but the paths were shortened so hard that the filename went with them, so a report often could not say which file failed. Paths keep their folder and file names now, and still drop your account name and the name of any other computer on your network.
  • The diagnostic log from a self-hosted server is no longer buried under one warning for every connection. A browser opening a server that made its own certificate declines it until you accept it, and each of those was written down as a fault, so a single visit left seventy lines. It is noted once now, described as the expected thing it is, so the entries that explain a real problem are still findable.

0.18.0

August 8, 2026

Added

  • Report a Problem, from inside the desktop app. There is a button in Settings, an item in the Help menu, and a Report this button on error messages themselves, so you no longer have to save a log by hand and attach it to an email. Tell us what went wrong, leave your email if you would like a reply, and send.
  • You choose whether to include a diagnostic log with your report, and the box is unticked every time. If you do include one, you can read exactly what it contains before anything is sent. Your computer name, account name, network addresses, email addresses and access tokens are removed from it first.
  • If a report cannot be sent, because you are offline or the service is unreachable, the app offers to save it and start an email to us, so you can attach it and send it yourself. Nothing you wrote is lost.
  • If you run your own server, it can now live on your home network without a reverse proxy or a domain name in front of it. The server makes its own security certificate the first time it starts and serves an encrypted connection directly. Setting one up no longer means learning about proxies and certificates first.
  • Your server now has a pairing code, which is how your computer confirms it reached your server and not something else answering on the same network. It is printed when the server starts, and shown on the server's sign-in page and its Settings page. Enter it when you connect a computer, and the code is checked before your username and password are sent anywhere.
  • Servers that already sit behind a reverse proxy carry on exactly as before, with nothing to change and no pairing code to enter.

Changed

  • Please read this one if you run your own server on plain http with no proxy in front. Because the server now makes its own certificate and serves an encrypted connection, the address you have bookmarked changes from http to https, and the old http address will stop loading after you update. Open the same address with https instead. If you would rather keep it exactly as it was, set SELF_TLS=false and the server goes back to plain http with no certificate. Servers behind a reverse proxy, with HTTPS=true, are unaffected either way.

Fixed

  • Sync messages appear at all now. Paired with server, Sync complete, Sync failed, Sync delayed and the certificate warning below were all being sent to a part of the app that was never finished, so none of them ever reached the screen. If you sync between computers and have wondered why it never said anything, that is why. They also reach you during automatic syncs, not only when you press Sync Now yourself, so a sync that quietly fails while you stitch now says so.
  • Sync now tells you when your server's security certificate has changed, instead of reporting it as a connection problem. A certificate changes if the server was reinstalled, and it also changes if something has placed itself between you and the server, so the two are worth telling apart. Nothing is sent until you reconnect.
  • An ordinary connection problem is no longer reported as a changed certificate. If you have never entered a pairing code, there is no certificate to compare against, so a lapsed certificate or a network that inspects connections now says so plainly instead of warning that something may be intercepting you and telling you to re-pair with a code you do not have.
  • The certificate warning is also said once rather than returning every minute for the rest of the session, and it no longer claims sync has paused when it is still trying.
  • A saved certificate that cannot be read now explains that you need to disconnect and pair again. It used to answer every sync with an internal error and no hint of what would fix it.
  • Your browser gives one warning about a self-hosted server instead of two. It still says the certificate is from an unknown issuer, which is expected for a certificate the server made itself and cannot be avoided without a real domain name. It no longer also says the certificate is for a different address, which reads much more alarmingly than it deserves. Set TRUSTED_HOSTS to the name or address you actually use, and that name goes into the certificate. Worth knowing before you do: setting it also means requests arriving under any other address are refused, so list every address you use.
  • A server serving its own encrypted connection now marks your sign-in cookie as encrypted-only, so it cannot be sent over an unencrypted one.
  • A pairing code you typed with a letter O for a zero, or a letter I or L for a one, is now accepted. Those letters are left out of the code on purpose because they look alike, so reading one off another screen and typing the lookalike is the expected slip, not a wrong code.
  • The pairing code box no longer cuts off a code you paste with extra spacing around it.
  • Report a Problem in the Help menu no longer does nothing when the app is still starting up. It now opens your email program instead of silently ignoring the click.
  • Diagnostic logs no longer leave your Windows account name in the file paths they mention. The paths themselves are still shortened quite aggressively, so a report will not always show which file was involved. That part is still to come, and removing your account name was the more important half.
  • Being asked to wait before sending another report no longer throws away the log you had just previewed.
  • A pattern with one color reads "1 color" on the PDF, OXS and JSON import screens and in a shared pattern file. It said "1 colors".
  • Keyboard shortcuts show the Command key on a Mac instead of Ctrl, in tooltips and in the shortcut list you get by pressing ?. Both keys already worked, but the labels only ever named the Windows one.
  • Exported files are named the same way whichever format you pick, so a PDF and a PNG of one pattern sit together in your downloads folder. PDF and PNG used to use their own naming and left the chart size out.
  • Large stitch counts on the import screens are written with a comma, so a chart reads 17,036 filled rather than 17036.

0.17.0

August 4, 2026

Added

  • A new Stats page in the full version, in the top menu next to Saved Patterns. It shows how many stitches you have placed, how long you have spent stitching, how many patterns are finished and how far along each one is.
  • The Stats page also charts your stitching day by day. It starts recording from the moment you update, so the chart fills in as you stitch rather than showing your whole history straight away. Rest days show as gaps, and re-stitching an area you had un-marked does not get counted twice.
  • If you stitch on more than one computer, your stitching history now belongs to your account instead of living separately on each machine. Days you stitched on the desktop show up on the laptop's chart, on the days they actually happened, and your streak and finish estimates count them too. History travels with the regular sync, so give it a moment to catch up after you switch machines.
  • The symbol picker now has the whole alphabet. Capital I, O, Q and S, along with the Greek letters iota, kappa, nu, omicron and upsilon, were left out before because each one looks so much like another symbol. They are all there to pick now, which makes copying a chart over from another program a lot less fiddly.
  • Those nine letters are never handed out on their own. Turning a photo into a pattern, importing a PDF and adding a color all still skip them, so a chart only ends up with a capital I sitting next to a lowercase l if you picked it yourself.
  • Updates on Linux are now checked against a signature before they install. Windows and macOS have always had this through the operating system, but Linux had nothing, so an update that had been altered on its way to you would have installed without complaint. An update that does not verify is refused and you are sent to the downloads page instead.

Fixed

  • Creating a color blend on a pattern that had used up every symbol could quietly give the blend a symbol another color already had. It now tells you the pattern is full instead.
  • A symbol you picked by hand could be replaced during a sync. If one computer was on a newer version and used a symbol an older one did not recognize, the older one treated it as a mistake, swapped it out, and pushed that change back to every device. Symbols you chose are now left alone.
  • A pattern's progress could end up slightly different on two computers. Certain unusual values in the progress data were read one way by the app and another by the server, so the same sync produced different results depending on which side handled it. Nothing showed an error, the pattern just quietly differed.
  • The Stats page table now scrolls sideways inside its own box on a phone rather than dragging the whole page with it.

0.16.2

July 31, 2026

Changed

  • Patterns kept on your own server are checked more strictly before being written. A device sending malformed data can no longer clear a pattern's tag memberships or interrupt a sync for everything else in the same batch. This only affects setups that sync to a server; single computer use is unchanged.
  • Several protections were tightened across sign in, the admin pages, device pairing and crash reporting. In the desktop app the admin pages now respond only to the computer running it, account names are kept out of crash reports, and sessions are tied more tightly to the account that signed in.
  • Databases are opened slightly more efficiently, which reduces the chance of a save being blocked while another part of the app is writing.
  • In the browser and self-hosted versions, the update notice now appears after the new version has been applied and says so. The old notice arrived beforehand offering a Refresh button that could not do anything, and the page reloaded by itself regardless. Opening the app for the first time no longer reloads unexpectedly either.

Fixed

  • Zooming no longer gets stuck at the smallest zoom level. Once the view reached 5 percent, the plus and minus buttons stopped doing anything and the only way out was closing and reopening the pattern. Zoom now steps back up from the smallest level, and will not shrink past one pixel per stitch.
  • Spreadsheet exports no longer let a pattern or thread name turn into a formula. A name, note or tag that started with an equals sign or a plus, minus or at sign was treated as a formula by Excel, LibreOffice and Google Sheets when you opened your own export. Those values now stay plain text. This affects the thread inventory, saved pattern and materials calculator exports.
  • Opening a very large OXS or JSON pattern file now shows a clear message instead of freezing the app. Before, a file far larger than any real chart could lock the window with no way out but force quitting.
  • Exporting all patterns at once no longer stops on a damaged pattern. The rest of your patterns export, and the one that could not be read is skipped and noted in the log.
  • Backup ZIPs are written with safe file names. A pattern whose short name had been stored in an unexpected form by an older version could produce an entry that unpacked outside the folder you chose.
  • The message shown when a pattern cannot be synced to your other devices now describes what actually happened, rather than always naming progress data.
  • Syncing can no longer be broken for good by one bad value. A device could send progress data that the server stored but could not read back, and from then on every sync failed until the file was repaired by hand. The value is checked before it is written now, and an account that already hit this recovers on its own once every device is updated.
  • A damaged or unusual pattern can no longer freeze or crash the app while its progress is being read. Certain stitch positions sent the app into a loop it never came out of, or made it ask for far more memory than any real pattern needs.
  • Resetting preferences now tells you when it did not work. If the reset could not reach the server, or the server refused it, your settings were cleared on this device and the page reloaded anyway, so the old values came back and it looked like the reset had undone itself.

0.16.1

July 24, 2026

Added

  • Reference chart pages now sync with the pattern. Import a chart on one computer and the pages show up on your other computers and the server, images included, with the same placement, size, rotation, crop, and opacity you set. A page that has not finished transferring fills in on the next sync. Update the app on every computer you stitch on so reference pages sync everywhere, and if you run your own server, update it before your desktops.
  • Typing an exact number into the reference chart's fine-tune controls now works, alongside the sliders. Click the horizontal, vertical, or rotation value, type a number, and press Enter (or click away) to apply it.
  • Using Line up with grid for the first time now shows short instructions before it runs, including the three corner clicks for measuring a chart's grid when that step is needed. A checkbox lets you skip the help from then on, and lining up now confirms with a small note when it finishes.

Fixed

  • Undoing a crop of a reference chart now sticks after you close or reload the pattern. Before, the undo looked right on screen, but the old version came back once you closed or reloaded.
  • Cropping one page of a multi-page reference chart now trims just that page. Before, drawing the crop box cut the whole canvas down to the box, stitches and all, and threw off the other pages' placement. Cropping a chart that is the only page placed still trims the canvas margins like before, and a crop can be undone either way.

0.16.0

July 23, 2026

Added

  • Mark backstitches, French knots, beads, and part stitches as done, not just full crosses. While marking stitches in the viewer, a small picker appears on patterns that have specialty stitches, so you can choose whether taps and drags mark crosses, backstitches, or knots and beads. Marked stitches dim to your completed stitch color, the progress bar counts them with a per-kind tally, and each color's legend count includes them. Blackwork and bead-heavy patterns finally show real progress instead of sitting at zero. Marking a whole color or a whole pattern complete covers its specialty stitches too, and marks sync across paired devices. Backstitch, knot, and bead marks also travel with OXS exports and come back when you import the file again. If you stitch on more than one device, update the app on every device so specialty marks sync everywhere.

Fixed

  • Dense patterns with thousands of marked stitches now save reliably, because progress is stored more compactly. Heavily marked blackwork charts that could hit the storage limit and stop saving have much more room before running into it.
  • Un-completing a pattern now reliably brings back the progress you had before marking it completed, even if you saved while it was completed, and other synced devices no longer flip it back to completed.

0.15.0

July 16, 2026

Added

  • Set colors with an in-app color picker that matches your theme. Every place you choose a color, the completed stitch tint, fabric color, custom thread colors, the editor's fabric swatch, legend colors, and the theme editor, now opens a color picker with a saturation square, hue slider, and hex field in your current light or dark theme, instead of the operating system's color box. Click away to keep a color, or press Escape to cancel.
  • Choose the color that finished stitches are dimmed with in the viewer. Settings has a new Completed Stitch Color option under Display, with six presets and a custom color, and it applies to every pattern. The default keeps the original light veil, or pick a color to make finished stitches easier to tell apart on white and pale threads.
  • Export a backstitch-only outline of a pattern. From a pattern's menu, the new Export outline option saves just the outline lines with no filled stitches, as a PNG, or as a PDF or SVG in the full version. It works well as a line drawing or a stitching guide.

Changed

  • Moving an imported reference chart into position is easier. The chart now shows a move cursor and can be nudged a cell at a time with the arrow buttons, or ten cells while holding Shift, and the chart alignment panel has roomier, clearer spacing around its sliders and buttons.

0.14.3

July 7, 2026

Added

  • Add backstitch outlines to a pattern automatically, in the full version. The editor has a new Outline tool: click a filled area to trace a stitched line around it, or use Outline all to outline every color region at once. A size control skips tiny specks, and you can outline in a single dark thread or in each region's own color. When you turn a photo into a pattern, a new Add outlines option does the same as part of the conversion. Outlines follow the shapes in your design and never trace the outer edge of the canvas.
  • Sort the thread list in either direction. The thread picker now has an ascending or descending toggle, shown as an up or down arrow with a 0-9 or 9-0 label, so you can order threads low to high or high to low. Your choice is remembered.
  • Import more pages as reference images from a PDF. In the full version, a multi-page PDF can now bring in up to 48 pages as reference layers, up from 12, so longer charts come in complete.

Fixed

  • The unsaved-work recovery prompt now appears as a centered dialog, and the pattern re-fits to the window when you change its size, so the prompt is easy to find and the canvas stays in view.

0.14.2

July 2, 2026

Added

  • More chart symbols. The symbol picker now includes the numbers 0 through 9 and the lowercase letters a through z, each in its own tab, so you can use them on your charts. The tab that held the capital letters is now labeled Uppercase and Greek. Patterns you have already made keep the exact symbols they use today.
  • Filter your thread inventory by tag. If you tag your threads, the inventory now has a Tag filter that narrows the list to a single tag, and the totals update to match. It works together with the brand and category filters.

Fixed

  • On Windows, an update could fail to install if the downloaded installer was briefly locked by another program, such as antivirus software checking the file. The app now waits and retries, so the update finishes installing.

0.14.1

June 29, 2026

Changed

  • Opening the app a second time now brings the existing window forward instead of starting another copy.
  • The End User License Agreement was updated. You will be asked to review and accept the new version the next time you launch the app.

Fixed

  • Your in-progress work is no longer lost between sessions. The app used to pick a new internal address each time it started, so after a restart or an update the recovery prompt could not find an unsaved draft from the previous launch. The app now keeps a stable address, so a recovered draft is waiting for you when you reopen the pattern.
  • Unsaved drafts are kept instead of being quietly removed once they get old, so you can still bring that work back from the Recover option.
  • Editing a pattern you made from a photo now updates that same pattern instead of saving a new copy every time, and reopening it to change a setting no longer rebuilds the grid and discards your hand edits without asking first.
  • The editor's Outline tool icon is now easy to tell apart from the Select tool; both used to look like a dashed box.

0.14.0

June 28, 2026

Added

  • Choose which pages to import from a multi-page PDF. When a PDF comes in as a reference image to stitch over, you now pick the pages that are the actual chart and leave out title pages, color keys, or duplicate versions before it lands on the canvas. And if a chart imported as stitches comes in missing detail, the import preview now offers "Stitch over the original instead" to bring it back in as a reference image.

Fixed

  • Marking stitches and switching to Thread view no longer lag on large patterns. On a big chart, ticking off a stitch used to briefly freeze the app while it redrew the whole pattern; now it updates right away.
  • Saving a pattern you started from a blank canvas works again on the free version. A new design could be turned away with a message about the trace tool even when you were not using it, so fresh patterns save normally now.
  • Exporting to the OXS format keeps your custom floss colors separate. When a pattern used several custom colors under one brand, they could all show up as a single color once the file was opened in other stitching software; each color now stays distinct.
  • One symbol on the thread key of an exported PDF could come out as a stray character instead of the symbol it should be. The key now prints every symbol correctly.

0.13.3

June 19, 2026

Added

  • More built-in stitch symbols, now sorted into categories. The symbol library grew from 100 to 228 symbols, and the picker has category tabs so you can browse them instead of scrolling one long list. Patterns you have already made keep the exact symbols they use today.

Changed

  • Progress you mark on one device shows up on your other devices a little sooner when you have the same pattern open on both.

Fixed

  • Your unsaved work is backed up more reliably while you edit. The editor's automatic local backup now uses sturdier, higher-capacity storage on your device, so even large patterns get saved instead of quietly slipping past the old size limit. If the app ever closes while you still have edits you had not saved, it offers to bring them back the next time you open the pattern, and there is a new "Recover unsaved edits" option in the editor menu if you ever want to restore a backup yourself.
  • The stitches you mark as done on one device could stop showing up on your other devices until you made another change or reopened the pattern. A save that briefly failed no longer leaves a device stuck, so your progress keeps syncing across devices on its own.
  • Symbols that rendered as colored emoji in the picker and thread list now show as flat, single-color chart symbols, the way they already print.
  • Beads now sit in the center of their square when you open an exported pattern in other stitching software, instead of shifting up and to the left by half a square.
  • The desktop app no longer shows a Change Password box in Settings. Desktop sign-in happens automatically, so there was never a password to change there and the box led nowhere. Server setups are unchanged.

0.13.2

June 16, 2026

Added

  • A whole-app zoom control. The new App Zoom slider in Settings scales everything, menus, toolbars, panels, and the canvas, and it stays in sync with the keyboard zoom shortcuts (Cmd or Ctrl with the plus and minus keys) so the slider always shows the real zoom. Toolbar labels are a little larger too.

Changed

  • Lining a reference chart up to your grid got more precise. You can now stretch a chart separately across and down instead of by one overall amount, line it up from three corners so a rotated or skewed scan still sits straight on the grid, and crop or trim a page down to just the part you want to stitch over. And when you drag one page of a multi-page chart near another, it snaps so the pages meet edge to edge instead of leaving a gap or an overlap.

Fixed

  • Saving and device sync could quietly stop working after the app had been open for a long time, and only reloading the page fixed it. Saves now keep working for as long as the app is open, and if a save ever cannot go through you get a clear prompt to reload instead of a silent failure.
  • If your device runs out of storage, the editor now warns you that it could not keep a local backup of your work instead of failing quietly, so you know to save before anything is lost.
  • A reference page can no longer be dragged so far off the canvas that the grip is hard to grab back.
  • Pressing Escape inside the blend color editor no longer closes the whole editor, just the blend popup.

0.13.1

June 14, 2026

Fixed

  • Progress imports now read the newest file version from companion stitching apps, so bringing in your stitched progress works again after a recent companion-app update.
  • The editor's floating tool panels can no longer be dragged off the canvas to where the grip handle ends up under the toolbar or thread list and can't be grabbed back. They stay within reach so you can always move them.
  • The first-launch license agreement now follows your system's light or dark appearance instead of always showing in dark.

0.13.0

June 10, 2026

Added

  • Stitch-over reference images: import any cross-stitch PDF chart as a reference layer to stitch over. Charts that could not be read as a stitch grid (image-only, scanned, or photo charts) now arrive on a correctly sized canvas with the chart laid over the grid instead of failing, and charts with a readable thread list keep it, including bead palettes.
  • Line up with grid: imported chart pages arrive pre-aligned when the printed grid can be detected, with a one-button re-align and a two-click 10x10 box fallback when it cannot. Pages can be dragged into place (including by parts hanging off the canvas), fine-tuned with scale and rotation sliders, and multi-page charts tile side by side or stack to match the chart's shape.
  • A first-open banner on freshly imported reference charts walks you through lining the chart up before stitching.
  • Some single-page chart PDFs that previously failed to import now come in as a full editable pattern with the real grid and thread list.
  • Save a chart color from a brand without a built-in catalog as a custom thread, so it can be painted with and used in blends. (Full Version)
  • The editor's floating tool panels can be dragged out of the way by their grip bar.

Fixed

  • Dragging the trace image or a reference page now follows the mouse exactly at every zoom level.
  • The W key works again as a draw-tool shortcut.
  • PDFs with no chart pages (covers, floss lists) are rejected with a clear message instead of importing as a blank canvas.

Security

  • Hardened update signature verification on Windows, conflict handling for deletes synced between devices, file permissions on server installations, and several input-validation paths.

0.12.1

June 9, 2026

Added

  • Image to stitches: a Full Version editor tool that turns part of a photo into stitches in place. Pick the Image tool, drag a box on the grid, and the selected area of your image is converted to a movable block of stitches you can position and drop with a single tap. One undo removes the whole block, and an optional "use my colors" toggle keeps the conversion to the threads already in your pattern.

Fixed

  • On phones, the editor tool panels (image, trace, confetti, select, shape, eraser, replace) now open above the bottom toolbar instead of off the bottom of the screen, and the text panel stays above the on-screen keyboard. Opening the More tray no longer leaves a panel half-covered behind it.
  • Linen and evenweave fabrics (25, 28, 32 count) are now measured over 2 threads everywhere (materials calculator, image converter, tablet calculator, and skein math), matching how stitchers actually work them, so sizes and thread estimates are no longer doubled. The calculator's inches mode and the stitches/inches toggle were corrected to match.
  • LAN sharing to a phone is more reliable: pairing links opened inside an in-app browser (such as a QR scanner) now steer you to a real browser so the pairing cookie lands in the right place, and a self-signed certificate can no longer pin your local address to HTTPS-only.
  • Opening a pattern no longer shows a "Viewing offline" banner when you are actually online. A single dropped request on a flaky connection used to send the app straight to its saved offline copy; it now retries quietly first, so the banner appears only when you are genuinely offline.

0.12.0

June 6, 2026

Changed

  • Big refresh of the phone and tablet experience. The app already opened on a phone, but everything was sized for a mouse. Now the pattern editor, pattern viewer, image-to-pattern converter, saved patterns, and thread inventory all adapt to a small touch screen, with controls, rows, and inputs sized for tapping.
  • On a narrow screen the editor toolbar collapses to a compact bar with a More tray for the rest of the tools, and the thread and fabric pickers move into the color legend where they are easy to reach. The thread picker, fabric picker, and tool trays open as bottom sheets you can flick through.

Fixed

  • On iPhone and iPad, tapping a search box or number field no longer zooms the page in and leaves you unable to pinch back out.

0.11.0

June 2, 2026

Added

  • Sharing to a phone, tablet, or browser now works on computers that have more than one network address at the same time (for example Wi-Fi and Ethernet together, or a VPN). The pairing certificate and QR code now cover every local address, so the connection no longer fails when your computer is on more than one network. The Share page also shows an address picker, so if the first address will not connect you can try another. (Some addresses, such as a VPN's, may not be reachable from your phone.)

Changed

  • Stitch progress syncs faster and more reliably across your devices. Marks made on different devices are merged stitch by stitch, so progress from one device no longer overwrites another's, and the pattern viewer picks up changes from your server within seconds instead of waiting for the next full sync. Requires a server-tier license.
  • The editor toolbar now wraps neatly when the canvas area is narrow, such as in a small window or a side-by-side layout, instead of running past the edge.

Fixed

  • Stitch progress could be lost when two devices running different app versions synced the same pattern. Progress data now decodes correctly across versions.

0.10.13

June 1, 2026

Added

  • Blends can now combine up to three threads in a single stitch (previously two). A blended stitch shows an averaged color with a fine two-tone hatch on the chart and in swatches, and renders as parallel railroaded strands in thread view. The new look carries through to the PDF, SVG, standalone, and chart-image exports, and three-thread blends survive OXS and JSON import.
  • Backstitch Anchors setting (Settings, editor section): constrain backstitches to cell corners only, leaving out the half-step mid-edge anchors, for blackwork and grid-only work. A Snap button in the backstitch tools also pulls existing mid-edge backstitches onto the nearest corners in one step.
  • Eraser: a mode bar (All, Crosses, Backstitch) appears while the eraser is active, so you can erase only full and part stitches, only backstitches, or everything. Your choice is remembered between sessions.
  • Selections show a move cursor and an on-screen hint, making it clearer that you can drag inside a selection to move those stitches without copying them.

Changed

  • Editor toolbar tidy: the backstitch and part-stitch tools group their options (chain, snap, direction) beside them only while that tool is active, and the edit-action buttons are grouped consistently.

Fixed

  • Free tier: keyboard shortcuts for tools that are not in the free tier (French knot, bead, confetti cleanup, trace, color replace) no longer activate those tools. The buttons were already hidden, but the shortcuts still worked.
  • The Mirror Horizontal and Mirror Vertical tooltips no longer both claim the same shortcut; the M key cycles through the mirror modes.

0.10.12

May 30, 2026

Added

  • Multi-device sync now covers your custom threads. The custom threads you add (one-off or proprietary floss outside any catalog), along with their status (Own, Need, or Don't Own), notes, and skein counts, now sync to every device paired to your server, instead of staying only on the device that created them. Requires a server-tier license.
  • The tags you create and the tags you apply to threads now sync across your devices too, so your tag list and assignments match everywhere. Requires a server-tier license.

Security

  • Custom thread brand and name text is now escaped and validated everywhere it is shown, so it is always treated as plain text and never as markup.

0.10.11

May 29, 2026

Added

  • Inventory: a Custom filter button (on the inventory page and the dashboard) shows just your custom threads, across all of your custom brands at once, with each thread's brand labeled. Full Version.
  • Inventory: in Select mode you can now remove several custom threads at once. The Delete action applies only to your own custom threads; the built-in catalog threads (DMC, Anchor, and the rest) cannot be deleted.
  • Image to Pattern: the zoom percentage is now an editable field. Click it, type a number, and press Enter to jump to that zoom (type 100 to reset), matching the pattern viewer and editor.

Fixed

  • Editor: a custom thread with no number now shows its name in the active color label, instead of an internal identifier.
  • Inventory: changing the brand or Custom filter while threads are selected now drops the selections that scrolled out of view, so the Select-mode count and the Delete action only ever act on threads you can see.
  • Inventory: if your plan changes to the free tier, the inventory and dashboard no longer stay stuck on the Custom thread filter with no way to switch back.
  • Custom threads: the color picker and brand/name fields are validated more strictly, so a saved custom thread always has a usable color and a visible label. Custom thread tags and CSV import stay correctly scoped to your own threads.

0.10.10

May 29, 2026

Fixed

  • Desktop app: fixed a startup failure where the app showed "the application backend did not start" and never opened. Databases created by older versions (before the underlay-image feature) could crash during the startup migrations; the app now starts cleanly on upgrade.

0.10.9

May 29, 2026

Added

  • Inventory: Shift-click the skein plus/minus buttons to add or remove a whole skein at once, instead of stepping a quarter skein at a time.
  • Inventory: the Total / Owned / Need / Don't Own counts now update to the category you have filtered to, so you can see how complete a single category is (for example Standard DMC) instead of only the whole brand.
  • Pattern viewer and editor: the zoom percentage is now an editable field. Click it, type a percentage (for example 150) and press Enter to jump to that zoom; type 100 to snap back to 100%.
  • Inventory: add your own custom threads (Full Version) for floss outside the built-in catalogs. Give each one a brand label, name, and color, track them in your inventory, and pick them in the editor to stitch with. Custom threads stay private to your account and do not change color matching or find-similar.

0.10.8

May 28, 2026

Added

  • Server mode: each user now accepts the License Agreement personally on first login. Previously the Docker SKU only checked the operator's ACCEPT_EULA env var, so users created by an admin never saw the agreement. The accept page is a full-screen gate modeled on the desktop's first-launch flow, with a scroll-to-bottom Accept gate and Esc to decline. EULA_VERSION is now a shared constant in config.py; bumping it (in tandem with the matching constant in electron/eula-window.js) re-prompts every server user on their next request.
  • Admin panel: small inline hint below the Create User form noting that new users are prompted to accept the License Agreement on first login.

Changed

  • EULA bumped to version 1.1 to reflect the section 9 (Open-Source Components) rewording on needlework-studio.com (the public /licenses/ index page was retired per attorney guidance; the substantive commitment that license texts ship bundled with the installed app is preserved in the EULA itself). Existing desktop and server-mode users will be re-prompted to accept on next launch / next request.
  • The fabric color you set on a pattern now shows behind the chart in the viewer and editor, not just in the thumbnail. Designs on dark or colored fabric (blackwork and the like) are now readable while you stitch.
  • The fabric color control is available in Chart view again, now that the fabric color renders there.

Fixed

  • Zooming in thread view no longer spikes the CPU. Rapid mouse-wheel, trackpad, and touch pinch zoom were redrawing the whole chart on every gesture event; the redraw is now coalesced to one per frame and the heavy thread render is deferred until the zoom settles.
  • Self-hosted server: the Docker image now starts cleanly. The previous image was missing the PDF-parser package and brand-catalog modules, so a fresh container could crash on boot with a missing-module error.
  • Self-hosted server: importing a third-party progress file no longer fails. The progress_parser module was not copied into the Docker image, so the import endpoint crashed at runtime on server deployments. Desktop builds were unaffected.
  • Exporting all patterns as JSON and reimporting them no longer blanks the design. The export was dropping the legend ids that the grid references, so reimported patterns came back with every stitch cleared. Existing export files made before this fix cannot be recovered; re-export after updating.
  • electron/eula.html: pricing link resynced from the live EULA on needlework-studio.com (was pointing at the old anchor-style URL).
  • Gridlines stay visible on dark or black fabric. The grid color now adapts to the fabric instead of always being a faint black that vanished on dark backgrounds.
  • Typing in the color legend search box no longer fires tool shortcuts (B, M, K, and the rest) or progress undo and redo.
  • The Mirror Horizontal and Mirror Vertical buttons now show icons that match the direction they flip.

0.10.7

May 25, 2026

Added

  • Broader PDF import. Supports standard single-page exports, multi-page tiled exports, the key-on-one-page layout, and other common companion-app export styles.
  • Broader PDF import for newer templates, including single-color and companion-app export variants.

Fixed

  • Patterns exported from Needlework Studio can now be re-imported. The strands marker in the legend was not being parsed and the import failed with a "no legend" error.
  • PDFs without a real thread legend (Illustrator and similar) no longer match ruler-label rows as fake legend entries. The import now fails with a clear message instead.
  • Cstitch's symbol-chart PDF export rejects with a message telling you to re-export as a color-block PDF, instead of silently producing a grid of garbage colors.
  • The PDF import preview no longer shows a solid gray square.
  • Sparse designs (a small motif on a big canvas) now keep the surrounding empty cells and the design's canvas position instead of being cropped to the content.

0.10.6

May 23, 2026

Changed

  • Default theme now uses the Walnut and Brass palette, so colors match the website.

Fixed

  • Brand pickers in image-to-pattern, Blank Canvas, and the editor color picker no longer list brands without a thread catalog. Only DMC, Anchor, and Mill Hill appear, matching the inventory page.
  • Progress imports from additional companion-app file versions now work.

0.10.5

May 20, 2026

Added

  • Fabric inventory. The Inventory page now has a Threads | Fabric segmented control. Switch to Fabric to track each physical piece in your stash: brand, fabric name, count, width and height in inches, color swatch, status (Own / Need / Don't own), and notes. Add pieces with the Add fabric piece button, edit by clicking a card, and search or filter by status or count. Premium tier only.
  • Materials calculator surfaces matching fabric pieces. When you load a pattern in By Pattern mode, the new Matching fabric pieces card lists every piece from your stash whose count matches the pattern and whose dimensions cover the required cut size. Both orientations are considered (a 12x16 piece will match a pattern that needs 14x10 because the fabric can rotate on the hoop). Pieces you have flagged as Need to buy are surfaced too, with a badge, so you remember a matching cut is already on your shopping list. Premium tier only.
  • A Settings link in the pattern viewer toolbar, so you can open Settings without leaving the pattern you are working on.
  • The zoom percentage in the pattern viewer is now a button. Click it to jump straight back to 100%.

Fixed

  • Pixel art image conversion no longer discards a width or height you typed. Turning the Pixel art option off and back on keeps your numbers.
  • The unsaved-changes prompt shown when you close the app or leave a pattern now uses the app's own themed dialog instead of a plain system popup. The same themed dialog is now used for removing a color, deleting a row or column, and discarding a resize.
  • Importing a progress file from an unsupported version now shows a clear message instead of a confusing dimensions error.
  • In the pattern editor the fabric color control is disabled while you are in Chart view, where fabric color is not shown, and available again in Thread view.
  • The empty palette hint now names the Thread button correctly and follows your selected font instead of always being monospace.
  • Paired device times on the Share screen now show in your local time zone instead of UTC.

0.10.4

May 19, 2026

Added

  • Import progress from companion stitching apps. The saved patterns gallery has a new Import Progress button (next to Backup All) that accepts progress files exported by popular companion stitching apps. Pick the file, choose which pattern the progress belongs to, and the marked cells merge into the pattern's progress. Some formats require the cell count to exactly match the pattern's grid; others require matching dimensions. Only full-cross progress comes across in this release: some formats don't track backstitches or French knots in their progress files at all, and format support has so far been validated against full crosses.

Fixed

  • Home dashboard brand toggles match the inventory page. The home dashboard used to show toggles for every registered brand (Kreinik, Rainbow Gallery, Madeira, Sulky, Cosmo, Weeks Dye Works, Gentle Art, Caron, Classic Colorworks, Dinky Dyes), even though those brands exist only for OXS save / round-trip and have no rows to filter to. The home dashboard now mirrors the inventory page filter introduced in 0.10.2 and only renders DMC, Anchor, Mill Hill, and All.

0.10.3

May 18, 2026

Added

  • Pick your own symbol per legend entry. Click a swatch in the legend while editing to open a symbol picker with all 100 stitch glyphs. Click a glyph to apply, Escape or click outside to cancel. Works in both the pattern editor and the image-to-pattern editor. Blend rows still derive their symbol from the component colors; per-entry override on blends is a future addition.
  • Symbol picker is built for fast picking. Opening the picker scrolls your current symbol into view and highlights it, arrow keys and Home / End move focus between cells, and any glyph already used by another legend entry shows a small dot in the corner so you can dodge collisions at a glance. A new Auto button picks the first unused glyph when you just want a distinct symbol and don't care which. Duplicates are still allowed if you want them.
  • Editor keyboard shortcuts. Y opens the symbol picker for the active legend row. Esc exits edit mode (mirrors Cancel in the pattern editor and Done Editing in the image-to-pattern editor). / on any page with a search box jumps straight into the input (saved patterns, inventory, pattern viewer legend filter).
  • Gallery keyboard navigation. Arrow keys move between pattern cards on the saved-patterns and home galleries, Enter opens the focused pattern, and Down from the search input jumps to the first match.

Fixed

  • Symbol picker opens fluidly. The picker now appears instantaneously instead of stuttering open over the chart canvas.
  • Save then Cancel no longer reverts your edits. Clicking Save while editing a pattern and then clicking Cancel used to roll the in-memory legend back to its pre-edit state. Save now refreshes the edit baseline so Cancel after a successful save is a true no-op.
  • Bulk-added colors stay in the legend. Adding several colors via the multi-select catalog picker and then clicking row-by-row to set each one's symbol used to make the in-between colors disappear, because the auto-prune for unused colors was firing on every row switch. Colors you explicitly add via the picker now stay until you remove them with the x button.
  • Blank-canvas patterns can change symbols too. The symbol picker is now wired up to the blank-pattern editor; previously clicking a swatch on a freshly created unsaved pattern did nothing.
  • Add N selected button stays inside its dropdown. At larger UI text sizes the multi-select catalog picker's footer button used to overflow the dropdown edge.
  • Editor shortcuts no longer leak into open modals. Pressing arrow keys while the symbol picker was open used to also cycle the legend color underneath, and pressing Y while a modal was open would stack another copy of the modal.

0.10.2

May 15, 2026

Added

  • OXS import: additional thread-brand prefixes. Imports now recognize Mill Hill sub-lines (MHA Antique, MHF Frosted, MHG Glass, MHP Petite, MHE Magnifica), the alternate "Bead NNNNN" form with the brand in the name attribute, the shortened "KRE NNN" Kreinik prefix (with C / HL / V suffixes), and Rainbow Gallery "RGB <code>". Previously these fell through to a hex-only fallback and lost their brand attribution.
  • OXS brand recognition broadened to 10 catalog-less brands. Beyond the prefixes above, the importer also recognizes full-word matches for Madeira, Sulky, Cosmo, Weeks Dye Works, Gentle Art, Caron, Classic Colorworks, and Dinky Dyes. All ten new brands are accepted by the save validator and round-trip through OXS export. Color-data catalogs for these brands aren't seeded yet, so the Inventory page brand toggle continues to show only brands with catalog rows (DMC / Anchor / Mill Hill / All); the toggle picks up new brands automatically when their catalogs land.
  • Inventory bulk skein quantity. The bulk-edit bar gained a Skeins group with three actions: + Add N, - Subtract N, and Set to N. Add and Subtract resolve against each thread's current count (treating a never-touched thread as 0); Subtract clamps at 0 so a runaway "- 10" doesn't go negative. Single number input feeds all three buttons.
  • Multi-select in the add-color picker. Clicking a thread in the add-color dropdown now toggles it into a selected set; the new Add N selected button at the foot of the picker commits all selected threads to the palette in one shot. Selection survives filter changes within a picker session, so you can search "100s", pick a few, search "200s", pick a few more, and commit all at once.

Changed

  • Inventory number-range rail. Stays visible while a search / category / status filter is active (previously the rail vanished on any filter). Drops markers for empty number buckets (DMC's 1000 / 1500 / 2000 / 2500 ranges no longer clutter the rail since no DMC threads live there). Tracks scroll position so the rail stays anchored under the controls bar instead of scrolling off with the page.

0.10.1

May 15, 2026

Added

  • Multiple legend entries per DMC color. You can now have DMC 310 in your chart at both 2-strand and 1-strand, each with its own symbol, drawn cells, and stitch count. Click the new copy button on a legend row to duplicate a color, then change the new entry's strand count or symbol so it represents a distinct use of the same thread. The old "C310" workaround for getting two black symbols is no longer needed.
  • Strand-aware backstitches. Backstitch line width now scales with the entry's strand count. A 1-strand backstitch renders as a thin hair-line, a 4-strand renders distinctly heavier. So when you have DMC 310 at 1-strand and 2-strand backstitches in the same chart they're visually distinguishable, not just different symbols.
  • Lossless OXS round-trip on same-color palette entries. Importing an OXS file that has two palette items with the same color now preserves both as separate legend rows. Exporting an OXS keeps both as distinct palette items. Previously the importer collapsed same-DMC palette items into one and the exporter clobbered them.
  • Trace tool now accepts a reference image before you save. The drop zone is active immediately on Blank Canvas and Convert Image, you don't have to save the pattern first. The temp upload is automatically promoted to the pattern's permanent location on first save.
  • Save Debug Log button in Settings, under a new Diagnostics section. Writes the recent server log to a rotating file at userData/logs/, capped at about 4 MB across the active file and three backups. The button downloads everything as a text attachment for attaching to bug reports. Desktop builds also get a Reveal in Finder shortcut (Explorer on Windows, File Manager on Linux). The download starts with a preamble noting that logs may include local IP addresses, user-agent strings, and pattern slugs.

Changed

  • Chain button (continuous backstitch mode) is now positioned right next to the Back tool in the toolbar instead of at the end of the stitch group. It pops into view directly beside the tool it modifies, so it's easier to find when you switch to backstitch.

Fixed

  • Server-mode license deactivate no longer bricks a Docker server instance into the Free tier until the process restarts. Server mode licenses are bound to the LICENSE_KEY environment variable, not the account, and the endpoint correctly refuses in that mode.
  • Mill Hill brand toggle on the Inventory page no longer reverts to DMC after a reload.
  • Anonymous visitors on a shared pattern link stay on the share page. The write-path autosave fetches used to fire on initial render and bounce visitors who weren't logged in to the login screen.
  • Duplicating an image-to-pattern from the Saved Patterns gallery keeps the original's source image. The Trace tool was previously unavailable on duplicates because the source image reference was silently dropped.
  • JSON export round-trip preserves all stitches. Re-importing a Needlework Studio JSON export used to blank every cell because the legend entry id was missing from the exported file.
  • Clicking Duplicate on a legend row that had no stitches drawn yet no longer prunes the original. Both entries now persist even if the source is empty at the moment you duplicate it.
  • Duplicate-color row icon now matches the swap and delete icons. The new per-row button shipped in 0.10.x without inheriting the shared icon styling, so it rendered with a default native button frame instead of the line-art look the other two use.
  • Strand-count picker (the per-color x N dropdown on a legend row) no longer throws "Failed to set innerHTML" when you pick a value. The dropdown's change and blur events both fired the legend re-render, and the second one re-entered the in-flight DOM update.

0.10.0

May 12, 2026

Added

  • Per-color strand counts. Each color in the legend now has its own 1-8 strand count via the small `×N` picker on the right of each legend row. Calculator uses the per-color value when figuring out how many skeins you need. Carries through OXS export.
  • Continuous backstitch mode. Pick the Back tool and click the new "Chain" button next to it. Each click after the first extends the line from the previous endpoint, so a chain like A→B→C→D is four clicks instead of eight. Esc, switching tools, or clicking the same point twice ends the chain.
  • Highlight Strength setting (Soft / Normal / Strong) in Settings → Display. Controls how dim the rest of the chart goes when you click a color in the legend to highlight just that color.
  • Solid Backstitches toolbar button in the viewer. One-click switch between dashed (default) and solid backstitches in chart mode. Same option still available from Settings → Display.
  • End User License Agreement (EULA) shown on first launch. Scroll through the agreement to enable the Accept button. Acceptance is remembered so you only see it once per major EULA revision.
  • Docker server image now requires `ACCEPT_EULA=true` (or `yes`, `y`, `1`) on first run. Operators see clear instructions and the live EULA URL if the variable is missing.

Changed

  • Clicking Save while editing a pattern no longer kicks you out of edit mode. You stay in the editor; the Save button just saves.
  • Empty-palette save is allowed. Start a blank chart, hit Save without picking a color, and you land in the editor ready to add colors or drop in a trace image.
  • New patterns land in edit mode after the first save instead of bouncing through the "Edit Original / Create Copy" dialog.
  • Save dialog remembers what you typed if you close it and reopen it.
  • "Saved locally" message after a save failure is clearer in solo desktop mode: it says the edits are kept locally and to try again, instead of the misleading "will retry when you reconnect" text.
  • Pattern notes input is taller and resizable, easier to read longer notes without squinting.
  • Backstitch layer toggle in the viewer toolbar now reads "Show / hide backstitches" on hover.

Removed

  • "Hide backstitches in viewer" checkbox in Settings. The per-tab toolbar toggle (the eye icon in the viewer) already does the same job and was easier to find. Any saved preference is ignored.

Fixed

  • Returning to the app from another window no longer fires a spurious background save and "Pattern saved" toast.
  • The viewer's click-to-highlight dim layer now clears when you enter edit mode, instead of bleeding into the editor canvas.

0.9.9

May 8, 2026

Fixed

  • Desktop app failed to launch on 0.9.8 with a "backend failed to start" error. The Mill Hill bead catalog module wasn't bundled into the frozen executable because it loads dynamically. Adding it to the bundler config so the app starts cleanly. If you saw the error on 0.9.8, this update fixes it.

0.9.8

May 8, 2026

Added

  • Mill Hill bead catalog. 371 colors across seven bead lines (Petite, Glass, Antique, Crayon, Pebble, Magnifica, Frosted). Mill Hill shows up in the inventory brand toggle, the editor's add-color picker, and OXS imports that use `MH ` or `Mill Hill ` prefixes.
  • Solid backstitches toggle in Settings → Display. When on, every chart-mode backstitch renders as a solid line instead of cycling through per-color dash patterns.
  • Help popover on the ΔE number in the Similar Colors panel explains what the color-distance value means.

Changed

  • PDF export is back to Full Version. Free tier still has watermarked PNG and JSON export.
  • Auto-updater dialogs now name Needlework Studio explicitly so the "Restart now to install the update?" prompt is unambiguous.
  • Blank-canvas pattern setup no longer asks for a thread brand. Multi-brand patterns make a per-pattern primary brand mostly meaningless; brand is set per color in the editor's add-color modal.

Fixed

  • Shopping list (per-pattern and cross-pattern) now respects per-entry brand on multi-brand patterns. A Mill Hill bead in a DMC pattern now correctly shows its Mill Hill ownership status.
  • OXS import recognizes `ANC ` as an Anchor alias (used by some cross-stitch programs). Files that label Anchor floss this way no longer fail to import.
  • Beads-only and backstitch-only patterns render their specialty stitches in gallery thumbnails instead of showing a blank fabric square.
  • Editor's add-color brand picker now refreshes when new brands are registered, so Mill Hill (or any future brand) appears without requiring a hard reload.
  • HTML export button on the Free tier now shows the same Full Version label as the other premium export options.

0.9.7

May 6, 2026

Added

  • PDF import now brings in backstitches and outline strokes from more pattern formats, plus the chart and color legend.
  • Designer field on saved patterns. Edit it inline from the gallery.
  • Tag your threads. Same tag pool as pattern tags.
  • Inventory CSV import. Round-trips with the existing CSV export.
  • Per-pattern calculator settings. Fabric count, strands, skein length, and margin are now remembered per pattern.

Changed

  • Pattern Calculator fabric margin is now an editable number with 0.25" steps.

0.9.6

May 5, 2026

Changed

  • Expanded PDF import now pulls in backstitches, French knots, quarter / half / three-quarter stitches, and beads from more pattern sources, in addition to the full cross stitches and color legend. More sources will follow in a future release.

0.9.5

May 4, 2026

Added

  • Visible Undo and Redo buttons in the pattern viewer toolbar and Zen bar. Undoes the last markup-mode action (mark complete, place marker). Same 50-deep history that Ctrl+Z / Ctrl+Y already drove, now with an obvious button for users who didn't know the keyboard shortcut.

Changed

  • Mouse wheel now zooms the chart in both the viewer and the editor, centered on the cursor. Hold Ctrl (or Cmd on Mac) while scrolling the wheel to pan. Trackpad two-finger swipe still pans and pinch still zooms; those gestures are unchanged.
  • Markup-mode drag now paints along the cursor's actual path instead of selecting a rectangle. Hold Shift while dragging to get the previous rectangle behavior. Touch drag on iPad always uses the path gesture.

0.9.4

May 4, 2026

Changed

  • Better PDF imports. Patterns from popular cross-stitch programs come in cleanly now. Heads up: PDF import still only brings in full cross stitches and the color legend. Backstitches, French knots, part stitches, and beads aren't pulled in yet.

Fixed

  • Editor polish (from tester feedback): - Unused colors auto-prune from the legend so it stays tidy as you edit. - Delete colors directly from the legend with the × button. - Right-click a backstitch to erase it. - Replace-panel UX cleaned up; clicking through to the canvas is fixed. - Symbols stay visible after committing edits (contrast was getting lost on rebuild).

0.9.3

May 2, 2026

Added

  • Multi-brand patterns. A single pattern can now mix DMC, Anchor, and other brands without forcing one canonical brand for the whole design.
  • Cross-brand blends. Two-thread blend stitches can now combine threads from different brands.
  • Font picker in Settings: Default, Sans, or OpenDyslexic.
  • Brush size (1 / 2 / 3 / 5) for the Pencil and Eraser tools.
  • External links from the desktop app now open in your system browser.

Changed

  • Quarter, three-quarter, and petite stitches are now available on the Free tier. Previously they were premium-only, which made it awkward to import a kit pattern that used them. French knots and beads stay premium for now.
  • OXS export / import round-trips per-stitch completion via the marked attribute, so progress survives a round-trip through other apps that use OXS.

0.9.2

April 30, 2026

Added

  • Trace tool. Drop, paste, drag, or pick an image and stitch on top of it as a low-opacity reference. Adjust opacity, scale, and rotation; drag the underlay to position it; click Place when you're done so it stays put while you draw. Premium tier.
  • macOS auto-update is now a true in-app update. No more bouncing you to the website to download a new DMG.

Fixed

  • Custom themes you created by duplicating a preset are now properly saved to your account. Previously they only lived on the device that created them and could disappear after an update or when signing in on a new device.
  • Multi-device sync no longer drops marks. If you mark threads on one device while a pattern is open on another, the next save merges cleanly instead of overwriting.
  • Editor hover cell highlight now follows your cursor accurately at all zoom levels.

0.9.1

April 30, 2026

Fixed

  • Windows: Done Editing and Save buttons in the image-to-pattern editor's fullscreen mode didn't respond to clicks. The Color Key sidebar header was also being clipped by the window controls. Same family of bug as the macOS fix in 0.8.7. Now fixed for Windows too.
  • Desktop: the Thread Inventory filter bar (Brand / Search / Category / Status / Sort) was being hidden behind the title bar after scrolling. Now stays pinned at the top.
  • Free tier was incorrectly showing the cloud sync and share-to-phone icons in the header. Both gated to paid tiers now.

0.9.0

April 29, 2026

Added

  • Text Size in Settings → Display. Three levels (Default / Larger / Largest) for users who want larger UI text without zooming the whole window.
  • Reduce italic text option, also in Settings → Display, for users who find italic harder to read.
  • High Contrast theme. WCAG AAA contrast in both light and dark variants. Pick it from the Theme picker.

0.8.8

April 29, 2026

Added

  • OXS pattern import is now available on the Free tier. Use patterns from other apps without needing to upgrade.
  • Backstitches and French knots can now be anchored at edge midpoints and cell centers in addition to cell corners. 9 anchor points per cell instead of 4. Useful for curves, letterforms, and other detail that doesn't sit on the full grid. Hover over a cell in backstitch mode to see all available anchors as small dots.

0.8.7

April 28, 2026

Fixed

  • Buttons at the top of the image-to-pattern editor (Done Editing, Save, Gridlines / Symbols / Stitches) didn't respond to clicks on macOS while in fullscreen edit mode. The toolbar was overlapping the macOS window drag region.

0.8.6

April 28, 2026

Added

  • Self-hosted server version. Run your own Needlework Studio server via Docker (`ghcr.io/greenglasst/needleworkstudio`) with admin panel, multi-user accounts, and desktop sync. Requires a server-tier license.
  • PDF export is now available on the Free tier.

Changed

  • Free tier pattern canvas limit increased to 300×300 cells (was 150×150).

Fixed

  • Save button in the image-to-pattern editor occasionally wouldn't respond to clicks. The "What's new" and crash-reports popups could leave an invisible overlay behind after dismissal that trapped clicks across the page until the next reload.

0.8.5

April 27, 2026

Added

  • "What's new" summary that appears once after each update so you can see what changed without hunting for release notes.

0.8.4

April 27, 2026

Security

  • Security and reliability improvements.

0.8.3

April 27, 2026

Added

  • Optional anonymous crash reporting. You'll see a one-time prompt asking whether to send anonymous error reports. Off until you accept; toggle anytime in Settings → Privacy.

0.8.2

April 27, 2026

Fixed

  • Pairing a phone or tablet on iPhone/iPad now works reliably.

0.8.1

April 27, 2026

Added

  • Share to phone or tablet. Open Needlework Studio on your phone, tablet, or another laptop over your home Wi-Fi. Generate a QR code from the desktop, scan it with the device's camera, and you're paired.
  • Offline pattern viewing. Save patterns for offline access; view and stitch when the server is unreachable; changes sync back when you're online again.
  • Editor save resilience. Autosave keeps trying through brief connection blips. If you close a tab with unsaved edits, a recovery prompt offers them back next time you open the app.
  • Palm rejection in the editor for stylus and touch users.

Fixed

  • A handful of small UI polish issues.

Security

  • Security and reliability improvements.

0.8.0

April 25, 2026

Added

  • Signed and notarized installers for macOS and Windows. No more "unidentified developer" warnings on first launch.
  • Contact Support button in the About box.