The final beta release of Nodewood is here!  While it brings with it a lot of features that have been planned and placeholder'd for a while, this also marks the final release where you can get Nodewood at the 20% off beta discount!  If you've been on the fence, well, now's your last chance at that lower price!

Vue 3 Standard Mode

Nodewood's UI is now running standard Vue 3, no more compatibility mode.  This means that any unaddressed warnings you've been getting in your code will likely turn into errors, but it means that a variety of warnings coming from Nodewood code will simply disappear, and your console will be cleaner than ever!

Being fully Vue 3 means that Nodewood is in a great position to grow and build on going forward, as more and more libraries and add-ons are converted to and written for Vue 3.

Scripting

Nodewood uses a custom loader to take things like require('#features/users/lib/models/UserModel') and check first in your app folder and then in your wood folder for the requisite UserModel.  This makes it very easy to override anything with your own custom code!  However, this means you have to use Nodewood's loader in all cases, or your code will error out.  This has made writing scripts tricky up until now, since there hasn't been a CLI-based loader - it's only been enabled for the webpack-based UI and express-based API.

Well, now there's a script loader that you can use to run your scripts and have those custom require paths respected.  cli/script.js path/to/your/script will run your script files using Nodewood's loader, easy as pie!  Plus, in Development mode, you can run nodewood script path/to/your/script to run that same script in a Docker container along with the rest of your development environment.

Admin Dashboard Rollups

Speaking of scripting, Nodewood now comes with a rollup script to track your daily counts of users, teams, and MRR!  You can set this script up to run nightly to be more reliable, but it will also back-date the rollups the best it can to the last un-rolled-up date (or the date of your first user).

This data is used in the Admin Dashboard for more-accurate snapshot counts, and to display a graph of your changes over the past 30 days (replacing the temporary "Sample Chart" that was there until now).

Admin dashboards still generally require a lot of specific customization to be truly valuable, but these changes mean that at least what is displayed out of the box is a lot more useful.

SecureFlags and Team flags

Users have always had a flags field, a JSON field that you could use to store arbitrary data on.  (Generally, very useful for things like short-lived password reset tokens, etc.)  However, this data was serialized and sent over the API when the user was requesting their user data - not really a security problem, since it's still their own data, but not ideal!

To fix this, a new field has been added secure_flags.  It works nearly exactly the same way, except that any data stored in this field is only ever accessable on the server - it is never encoded into a UserModel sent over the API.  All tokens and such data for users have been moved to use this new field, and you should move any of your secure data as well.

Additionally, Teams have had flags and secure_flags added to them, for when you need to store arbitrary secure and non-secure data as well!

And bunches of bugfixes!

  • Toast popups have had their border styles cleaned up
  • "Warning" toast popups had no styles applied before
  • All model FIELDS have been renamed to MODEL_NAME_FIELDS so that importing multiple fields into a single file is easier
  • All validator FORM_FIELDS have been renamed to VALIDATOR_NAME_FORM_FIELDS so that importing multiple validators into a single file is easier
  • More accurate user information is now being sent to Stripe for new and upgraded subscriptions

Again, this is the final beta release for Nodewood!  At this point, it's more a technicality than anything else, since Nodewood is essentially feature-complete (and the Nodewood framework has been used to run the nodewood.com site since it launched, anyway).  But the big news for you is that once the next release, 1.0, comes out, that 20% discount goes away.

Looking to save time building your next SaaS app?  Save weeks or even months of time developing a mobile-responsive, easy to extend application when you build with Nodewood, a Node.js/Vue SaaS boilerplate and starter kit.

Photo by Kevin Ku on Unsplash