# Join The Nodewood Beta

Thank you for your interest in the Nodewood beta!

Nodewood is in a pretty good place right now, but with your help, it could be better. Real feedback from real customers is necessary to create a best-in-class tool, and that's what this beta is for. Looking to become one of the first real customers of Nodewood? Read on!

# The State Of Nodewood

Like I said, Nodewood is in a pretty good place right now, but knowing exactly what that "place" is will help you determine if Nodewood in its current state is right for you.

# The Good

The following features are fully-implemented. While they may change, grow, and improve over time, they aren't missing anything obvious that would disqualify them from releasing in a 1.0 state.

# Development VM

Provided you have Ansible, Vagrant, and VirtualBox installed correctly, the Nodewood Development Virtual Machine should allow you to get started almost immediately, without needing you to set up and configure PostgreSQL, Nginx, etc. and without conflicting with everything else installed on your machine.

# CLI Tool

The Nodewood CLI tool makes it easy to set up and upgrade a project, add new features and files from a template, migrate and rollback your database, and manage your Stripe configuration.

# User Authentication/Management

Users can create an account, log in, sign out, change their password, and update their profile. The user's gravatar image is currently used for their profile image. Users are logged in via a pretty standard JWT implementation, with both a global and per-user "version" field that you can use to invalidate all of a user's tokens or every user's token in the event of an account becoming compromised.

# Support

Sending a support message is just a click away! If you have email configured, there's a dropdown in the user menu that opens up an easy form for users to fill out and emails you their support request.

# Subscriptions

Stripe's product/price model is fully implemented, allowing you to specify monthly/yearly/whateverly periods for the same "plan level" (Bronze, Silver, Gold, etc). You can synchronize your local config with Stripe via the Nodewood CLI Tool, and import your current config from Stripe using same. Users can subscribe to your plans and then be restricted from hitting certain API endpoints by requiring they have certain capabilities granted to them from their subscription. Users can change or cancel their subscription, with a simple yet unobtrusive "save" attempt made before committing.

# Forms/API Validation

Validation can be defined in one place and then used to validate form input and also the API endpoints that those forms feed into.

# Application Skeleton

The API back-end and UI front-end can both be started in watch/development mode from the Nodewood CLI Tool. A fairly standard Express back-end is in place that is easily extendable with your own own controllers, and a fairly standard Vue front-end with a neutral-tone UI is available for you to customize.

# The Bad

The following features are not yet present, and will not be added before launch. I will be collecting developer feedback first, to make sure the right features are built first, and built correctly.

# Teams/Organizations

Subscriptions are tied directly to users, so when this is built, there will be a migration that moves this information onto a team. If you require this feature, you may want to wait before beginning to use Nodewood, as building it yourself may cause conflicts later.

# Metrics

There are a variety of ways you can implement metrics, and a variety of considerations I will want to consult with developers before building this out. Things like: What common providers (if any) does it make sense to offer connections to? Is there any interest in saving events in a time-series database for full-featured queries, or are simple roll-ups sufficient? How do developers envision using collected metrics, and what design considerations have to be made to accommodate for that?

# User Impersonation

The User/Teams implementation needs to be a bit further along before this can be developed, as their are significant security and privacy considerations to take into account that rely on the underlying data model.

# The Ugly

The following features are implemented, but are in a rudimentary or partially-completed state.

# Admin Panel

The Admin Panel is present and available to any user with account_type set to admin. It is fairly limited at this stage, consisting of an empty Dashboard page and a simple User Management interface. Admin interfaces are typically fairly customized, so it has been deliberately left in a minimal state, but based on developer feedback, commonly-requested items will be added.

# Production Deploy

This will be a basic production deploy that you can customize to perform additional tasks as necessary (build a static marketing site, for example). While not fully available at the start of beta, this will be released before the end of beta.

# What I'm Looking For

For this phase of the beta, I'm looking for a maximum of 5 good customers to start working with Nodewood ASAP.

What makes a good beta customer? Well, for one, you should have a project or idea you're ready to work on. It doesn't need to be an idea that you're ready to bring immediately to production, but something you can really work on and kick Nodewood's tires with.

Additionally, you should be ready and willing to share and report any issues you come across. This can be something as simple as insufficient or misleading documentation, to something as complex as a weird bug you keep running into but can't pin down and don't know if it's in your code or Nodewood's. Or even (and especially) ideas and opinions on Nodewood's feature set or implementation. While I may not necessarily implement every idea and suggestion verbatim, I appreciate all feedback, and it all contributes to making Nodewood better.

# How To Report Issues

For most issues, you'll want to report them on the Nodewood Public Issues Tracker(opens new window) . That way, the community has a shot at being able to help you if I haven't had time to review your report in-depth yet, and the community benefits from being able to search for similar problems. You'll want to sanitize any example code submitted so that your business logic doesn't contain any trade secrets, of course, but this is the preferred method of reporting an issue.

For issues of a more private nature, where you cannot properly sanitize your code sufficiently that you'd be willing to put it on the public Internet, you can submit your issue by email to help@nodewood.com. Please try first to submit it to the public issues tracker, however.

When submitting an issue, please include at least the following three things:

  1. What steps did you take?
  2. What did you expect to happen?
  3. What actually happened?

Additionally, any relevant environment information is appreciated, as well as as much of a code sample as you can provide.

# How To Join The Beta

If you have read through all this and wish to join the beta, you're in luck! From here, it's pretty easy. First, please fill out the following survey:

https://www.surveymonkey.com/r/5YZTPLR(opens new window)

If you are one of the five applicants chosen to participate in the beta, I will email you with a 50% off coupon and the signup URL. Go, sign up, apply the coupon for a nifty half-off discount, create your first project as per the docs, and start building!

Thanks again for your interest in the Nodewood beta!