A new Javascript framework: StemJS

Hey guys,

Like a few thousand others, I’ve had my issues with existing UI frameworks (React, Vue, Angular, etc) and ended up writing my own: Stem JS.

The difference in it’s implementation is that it’s designed with OOP patterns in mind and tries actively not to be a framework, by giving each individual component full control over it’s own life-cycle and DOM rendering. Any custom behavior doesn’t involve working with a framework, but rather just modifying the methods that you inherit from the base UI components of the library.

I wrote a blog post about how I did that thing I recommend people not do: reinvent the wheel.

I know everyone is tired of all these new libraries popping up, but there a reason this is happening: the existing ones are not that great and that’s why I still want to have this conversation.

I’d appreciate any constructive criticism people might have (especially the negative kind). :slight_smile:

Is this something that can be used with Meteor?

On your landing page, you do realize that your gif-video thing is completely valid React code? Might turn people off if they see that your framework reinvented the wheel.

1 Like

@sashko Of course it can be used with Meteor, it’s a javascript library with a lot of functionality that can use used independently.
@streemo I know that it’s valid React code, the jsx notation is one of the good parts about React that I wanted to be (optionally) compatible with. That was one of the parts I didn’t want to reinvent. The way it works underneath is completely different than frameworks that use a Virtual DOM.

I guess I’m saying given that this is a forum about Meteor specifically I think you should include directions about how to use this in a Meteor app! Otherwise it seems like you’re just advertising your new framework with no relation to the Meteor community, especially since you joined the forum specifically to post this.

Is it just me or example is pure React code :smiley:
I mean :smiley: Its literally React :smiley:

1 Like

@sashko You’re right, I should have had a Meteor example, and been more respectful of the community this way… I was honestly hoping of peeking someones interest here, so I could have worked with them to craft some binding. I really think Stem has a different approach than any other framework I know, and I want to find out what someone coming from another development philosophy than mine thinks of it.
@gothicmage I’d wish you’d try to see past that example, I see now it’s misleading. It’s jsx, an I XML-like synthax. XML has been in use for a couple decades as a robust way of defining tree-like structures, there was no point of reinventing that.

I couldn’t make a joke if I took it seriously!
If you want some decent advice, i’d fix Firefox “codechecking” in case, every single one of those examples just pops up a “SyntaxError: class is a reserved identifier”. So I can’t even look into your framework :stuck_out_tongue:

And yup, sashko always got the point! Make something meterful

Well, I’m just a data point. I am one person who saw this as a pointless/blatant React rip off. The problem is that you don’t mention React at all, so your landing page never actually answers the most important question “Lol, why not just use React?”. This is the first question that everyone will ask because you framed it that way by making your syntax exactly like React’s syntax. If you simply mentioned React and provided a list of points as to why someone should use your framework instead, you would get more positive reactions. Maybe you could have something like this in your landing page:

“Don’t like the complexities, algorithm design, and bloated lifecycle methods of React? Want something simpler than Vue but with the syntax of React? Use STEM JS instead, which provides simpler component interactions, allowing you to write faster code – ALL in the syntax of React, so you don’t have to learn a new syntax”

If I read something like this on your page, I would be much more interested, because you framed your syntax-copying in a positive light for me and answered my question. Otherwise, it feels like “you didn’t think about it”, which feels like you either don’t know about React (reinvented the wheel), or you are ripping off of them.

1 Like