Blog

We have company!

It's been quite a while since I wrote a blog post, and since I didn't write one for the fifth anniversary of nut.js, I thought I'd write one with some big news now. So, what's the deal?

nut.js is now backed by a company

Yes, you read that right, nut.js is in fact backed by a company. But before you become too excited, there are no VC millions involved.

I registered my own company here in Germany and it's called dry Software UG (haftungsbeschränkt). (Don't blame for the website, that's a placeholder while I'm working on it.)

I did this for a couple of reasons:

  1. The thought of running my own software company stuck with me for quite a while now
  2. I wanted to have a legal entity to back nut.js, or more generally, all of my various software projects, present and future
  3. Over the past years, I've already been running a layman's version of a software business, exchanging private package access for sponsorship money
  4. I noticed that it's easier for companies to pay for software than for sponsoring random individuals on GitHub (that's sad for open source, but it seems to be the harsh truth for a lot of companies)

Will this now cause any immediate changes to nut.js? No, not really. I'll keep working on nut.js as I did before.

But if you or your company are interested in nut.js and want professional support before buying into a third-party tool, dry Software got you covered.

nut.js private package access

As mentioned above, I've been running a layman's version of a software business for quite a while now. I've been exchanging private package access for sponsorship money. This worked, but it also had several drawbacks:

  • I had to manually add people to the private package access list on npmjs.com
  • I also (who would've thought?) had to manually remove people from the private package access list on npmjs.com
  • Every user came with fixed costs, so I had no possibility to e.g. hand out trial access.
  • In summary, it was a lot of manual work and quite cumbersome.

So I set out to find a better solution. I've been quietly working on this for a while now and it's finally time to announce it:

You can now buy a subscription to get immediate access to private packages!

Private packages are served via a private npm registry, pkg.nutjs.dev!

You can choose if you want to get access to just a single package (e.g. @nut-tree/nl-matcher), or all at once!

You can choose if you want to pay monthly or yearly! (You'll get one month for free on yearly payment!)

You can get proper invoices for yourself or your company!

How does it work?

Subscriptions are sold via LemonSqueezy and all your subscription data resides there. nutjs.dev and the private registry will use this data to determine access rights to packages. Once you purchased a subscription you'll receive an email invite to create a user account on nutjs.dev. (The user account is required to manage access tokens for the private registry.)

Once you created your account, you'll be able log in via Magic Link to access your profile.

Access your profile from the account menu

On your profile page, you'll be able to see your subscriptions and custom licenses.

Your profile page

For each subscription you'll get a short summary of the most important information.

Subscription info

Last but not least, you'll be able to manage your access tokens for the private registry.

License activation

Depending on your plan, you'll be able to activate one or more token. Simply enter an id for the token and click the Activate button. Of course you can also revoke them again as well, to e.g. support off-boarding of employees or project members.

What's left now is to configure npm to use the private pkg.nutjs.dev registry. Therefor you'll need to add scoped auth settings for the @nut-tree organisation to your .npmrc file.

Clicking the Copy .npmrc settings button will copy the required settings to your clipboard, so you can easily paste it into your .npmrc file.

You can verify your setup by running npm whoami --registry=https://pkg.nutjs.dev in your terminal, which should return the id you entered when creating a new token.

Please also take a look at the FAQ for more information and let me know if you encounter any problems.

What's next?

One more thing I'm now easily able to do is to offer discounts. If you want to purchase a subscription, use the code WEHAVECOMPANY on checkout to save 20% each month. Discount code in checkout form

This discount applies until Nov. 20th, so you should make sure to grab it while it’s available!

As I said, I'll keep working on nut.js as I did before. I have a couple of ideas for new features and improvements, e.g. improving the OCR plugin, multi-monitor support, remote execution, input monitoring, an improved image matcher... the list is long and it keeps on growing.

But I also want to focus on improving documentation. Docs are important, but they tend to be neglected when the next shiny feature is calling. I want to do better!

All the best

Simon

Previous
A short nut.js plugin summary