Nodewood 0.18.0 is here, and while it only really has one change, it's a doozy: Nodewood's UI is now running on Vue 3!  This change has been a long time coming, but it's finally here.

Vue 3 released over a year ago, but it took quite a while for major Vue libraries to upgrade to Vue 3 compatibility, or for replacement libraries to be created.  Heck, even I ended up writing a replacement library for one stuck in Vue 2 land, just so we could get on with this upgrade!

Vue 3 compiles smaller than Vue 2, runs faster than Vue 2, and comes with a lot of big (and little) features that make it a lot easier to write smaller, cleaner, and more-maintainable code.

For a full list of those features, check out the Vue 3 docs about migration from Vue 2, but I'd like to focus in on the biggest new feature (at least in my opinion), the Composition API.

In short, you go from exporting a big object that is organized by type of component data (this is the Vue 2 way of doing things and is still available and referred to as the Options API), to writing your code as if it were a simple script file.  All the variables you define or import into the <script> tag are available in the <template> above, no need to make sure they're part of a specific key in your exported object.

The big win here is that you can organize your code the way you choose to.  Instead of having all the methods together, regardless of what they're logically doing, you can put your related methods and data together in the file, making it a lot easier to read and maintain later.

For a more full explanation, check out the official Vue 3 docs about the Composition API.  They do a bang-up job of explaining, with examples, exactly why this is such a win.

This is a very significant change, so it comes with very significant upgrade notes, but this also gets Nodewood significantly closer to 1.0 status!  So close, in fact, that I've been able to put together a roadmap detailing the upcoming features and releases planned along the way.

If you run into any issues, please check the troubleshooting section in the upgrade guide, but if that doesn't help, create an entry on the Nodewood Issues Github page.  And if you have any questions, please don't hesitate to email me!