Show HN: Joystick – A Full-Stack JavaScript Framework
Howdy folks. My name is Ryan. I've been building Joystick for the last three years. A few weeks back, I shipped the RC1 release.

tl;dr Joystick is a full-stack JavaScript framework. It combines a component framework with a batteries-included Node.js back-end into one wholistic system. It also has a built-in testing framework so you can do TDD out of the box. It supports MacOS, Windows, and Linux (please file bug reports on Github so I can get them sorted).

My goal is to get a final 1.0 out by the Fall/Winter. After that, the core APIs will be frozen with only new features being added so you don't have to worry about wasting time on surprise refactors (i.e., I won’t be changing how you build your app—just under the hood performance/security stuff).

---

Joystick has been a ~3 year labor (following ~2 years of research/prototyping). I started work on it because I was using the Meteor JavaScript framework as the foundation for apps I was building with students and for clients as part of my old company, Clever Beagle (before that, I wrote tutorials for Meteor as The Meteor Chef).

When Meteor started to fall out of favor/got sold off, I was looking around for something comparable but nothing took. The next closest option was...Next, but it was missing a lot of what drew me to Meteor. Dissatisfied, I started to ask "could I build my own framework?"

Fast-forward a couple of years and the answer was yes. I initially planned on shipping with support for React, Vue, etc., but I noticed a trend toward their APIs becoming more, not less, complicated (simple on the surface, complex once you get into implementation details). I sketched out a component API akin to React 1.0 (h/t Jordan Walke), adding in some missing features that I constantly had to reinvent the wheel to implement on each app (e.g., URL access, data-fetching, etc). Once I had a working prototype: I didn't look back.

As the idea took shape, I started to think about the idea of building an end-to-end stack for shipping apps with JavaScript (a proper response to Ruby on Rails for JavaScript). There were others that had tried, but again, their APIs were lacking that sweet spot I was looking for.

Once I had a solid back-end to front-end combo, I moved on to deployments. Having been burned relentlessly by deployments in the past (culminating in my K8S cluster being decimated by a forced cluster upgrade at DigitalOcean), I decided to go back to basics and see what old tech was available. I was able to get a working deployment using a combo of HAProxy and systemd scripts (which was and continues to be remarkably stable). Instead of using Docker, I do vanilla bootstrapping on the box and have deployments set up to go out to three providers: DigitalOcean, Vultr, or Linode. That service is called Push [1] and is currently in private beta.

Next in my sights is CSS. I'm technically a UI designer (I only started doing JS development because I was tired of building static mockups) and have wanted to build a CSS framework for years. I love the style of Tailwind but the utility class stuff gives me nightmares (both from a maintenance perspective and the thought of future developers being clueless about how to actually write/maintain CSS). That framework will be called Mod [2] and is dropping this summer. It will be responsive, component-based, and feature a vanilla CSS/JS option as well as components built as Joystick components.

---

That's all for now. Drop questions below (see the FAQ first) and I will answer over the next couple of days. If you want to send something privately (e.g., hate mail), just email business@cheatcode.co.

Ryan

[1] https://cheatcode.co/push

[2] https://cheatcode.co/mod