New front end Ruby framework - Inesita

http://inesita-rb.github.io

Inesita is a simple, light, ruby front-end framework. Yes, ruby, it’s all about Ruby, and its ecosystem. It consists of three main parts. Application is composed of components. Components describe the appearance and behaviour of the page. Router routes given urls to components. And finally store. Store stores a data, this is just a simple wrapper. You can implement your own store based for example on hash or whatever you like. Components can be used alone and mount in any DOM element. You don’t need to use entire stack.

:023:

:heart:

1 Like

Hey @fazibear welcome :003:

Have you seen this thread from Jamie about Clearwater? Maybe you could share some further info about Inesita, perhaps outline how it differs from things like Clearwater and React.rb, etc? (Or maybe some of the other f/works listed in our Opal Resources thread) :slight_smile:

Here is a little story why I wrote Inesita :slight_smile:

Like many developers, I really do not enjoy programming in JavaScript. I used CoffeeScript for a while, but when ES6 came about, it became less appealing - but even ES6 doesn’t really ‘fix’ JavaScript.

Opal to the rescue! But with Opal being new, there wasn’t really a framework or gem that you could use to do the sort of things I wanted. Out of all the current javascript frameworks I really like the React. Of course React.rb caught my attention, but my immediate thoughts were; why not write something like it from scratch? That’s what I decided to do.

I decided to use virtual-dom, which as many of you may know is blazingly fast. I created a wrapper for it (opal-virtual-dom) and that’s how I got started. First I implemented a component using virtual dom, then a router based on a component… and the beginnings of Inesita were born. Later I added the Store and the rest.

With regards to other front end Ruby frameworks, I looked at Veinna and Clearwater. Vienna is an MVC framework that I felt didn’t work well with for the front end in the way I wanted to do front ends and I found most of Clearwater simply didn’t work (or I just couldn’t get to work!). Of course, a lot may have changed since then.

It was lot of fun by writing everything from scratch (except virtual dom which is just a wrapper), and theres a few things that could still be improved. Once they’re done, it will be interesting to do some performance tests as I think Inesita will do very well on this front.

So a few months have passed since the first commit and I think it is time to share it with the world. I will do my best to make Inesita a beautiful and powerful front-end framework. I hope you like it!

2 Likes

Thanks for the insight @fazibear :slight_smile:

What benefits do you think there are by having a version written from scratch in Ruby? (Rather than just using a wrapper like React.rb) - I’d guess it means being able to better utilise the power of Ruby, implement things that may not be in React, or being able to take Inesita in a different direction should you feel there is a better one? Interested in your thoughts tho!

Also… what made you choose Inesita as a name? :003:

A lot has indeed changed in Clearwater, but it has worked since November 2014. Admittedly, the documentation wasn’t (and still isn’t) that great, but it does have enough to get you started.

For future reference, if you can’t get an OSS project to work, filing an issue or emailing/tweeting the maintainer are great ways to let them know about it. It’s difficult to know people are having trouble getting it running if they don’t say anything about it.

2 Likes

I think this is one of the problems with Github, there’s no easy way to contact gem authors without ‘creating an issue’, which I think most people tend not to do unless they’ve found a bug or something similar.

Adding contact info or directing people to an official channel for discussion in the readme is a generally a good idea imo.

You could send them to Stack Overflow for questions, or here for discussion - you can follow tags here, so anything tagged with Clearwater (or Inesita for @fazibear) will get you a notification, or email depending on what your settings are.

2 Likes

@fazibear @AstonJ how do you spell inesita ?
Is in˜esita (as Nin˜a, Pinta and Santa Maria or more like inèsita with an open ‘e’ ?
Or something else?

1 Like

If you’re running an open-source project, you really owe it to your team and contributors to check out Gitter; like IRC, but better; anyone can join and contribute. As you likely know by now, this is a feature and a bug. Other tools like Slack provide a more controlled and (perhaps arguably) polished environment that not “just anybody” can join.

As someone who’s used, developed for, and had long evangelised IRC…it may not be literally dead, but its use cases are evaporating.

1 Like

I’m not a fan of Gitter (or IRC) for dev talk tbh - after a while you get the same old questions being asked and that starts to grate on the regulars. Also, they are much less moderated and sometimes abrasiveness comes through even if unintentionally. I’ve seen a few spats that have escalated very quickly; so I think they can be damaging as well as useful.

Forums are great because people often Google first - and anything that has been asked before has a better chance of turning up :smile: also, posts can be edited, so anything said in haste can be altered/corrected/improved etc.

1 Like

Gets live reloading