Description
Think JavaScript is your only option for the front-end? Think again. Hyperstack is a Ruby DSL, compiled by Opal, bundled by Webpack, powered by React.
Hyperstack lets you write your entire web app from HTML and event Handlers to the server models in Ruby. The resulting code is typically 1/4 the size of the equivalent HTML/JS/Ruby code.
Hyperstack alternatives and similar gems
Based on the "Web Frameworks" category.
Alternatively, view Hyperstack alternatives based on common mentions on social networks and blogs.
-
ReactOnRails
Integration of React + Webpack + Rails + rails/webpacker including server-side rendering of React, enabling a better developer experience and faster client performance. -
Glimmer DSL for Web
Glimmer DSL for Web (Ruby-in-the-Browser Web Frontend Framework). The "Rails" of Frontend Frameworks!!! -
Glimmer DSL for Opal
DISCONTINUED. Glimmer DSL for Opal (Pure-Ruby Web GUI and Auto-Webifier of Desktop Apps)
Scout Monitoring - Performance metrics and, now, Logs Management Monitoring with Scout Monitoring
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Hyperstack or a related project?
README
Hyperstack
Hyperstack is a Ruby-based DSL and modern web toolkit for building spectacular, interactive web applications fast!
- One language throughout the client and server. All Ruby code is compiled by Opal into JavaScript automatically.
- Webpacker and Yarn tooling for a modern, fast hot-reloader build environment with Ruby source maps.
- A well documented and stable Ruby DSL for wrapping React and ReactRouter as well as any JavaScript library or component. No need to learn JavaScript!
- Isomorphic Models with bi-directional data so you can access your models as if they were on the client.
This means you can write simple front-end code like this:
class GoodBooksToRead < HyperComponent
render(UL) do
Book.good_books.each do |book|
LI { "Read #{book.name}" }
.on(:click) { display book } if book.available?
end
end
end
In the code above, if the good_books
scope changed (even on the server), the UI would update automatically. That's the magic of React and Isomorphic Models with bi-directional data at work!
Website and documentation
Please see the website site for full documentation:
Setup and installation
You can be up and running in less than 5 minutes. Just follow the simple setup guide for to add Hyperstack to a new or existing Rails application:
Development Status
We now are issuing 1.0 release candidates weekly until all issues are either closed or moved to post 1.0 release status. Your opinion matters, plus take some time to up/down vote or comment on issues of interest.
ReleaseDate | Version | OpenIssues | DocumentationSectionsDraft Ready | DocumentationSectionsWIP |
---|---|---|---|---|
April 12, 2021 | 1.0.alpha1.8 | 128 | 36 | 9 |
Open issues includes enhancements, documentation, and discussion issues as well as few bugs.
The documentation WIP (work in progress) numbers are approx, as more sections may be added.
Community and support
Hyperstack is supported by a friendly, helpful community, both for users, and contributors. We welcome new people, please reach out and say hello.
- Join our Slack group
- After you have joined there is a shortcut at https://hyperstack.org/slack
StackOverflow Questions
Please ask technical questions on StackOverflow as the answers help people in the future. We use the hyperstack
tag, but also add ruby-on-rails
, ruby
and react-js
tags to get this project exposed to a broader community.
- Please ask questions here: https://hyperstack.org/question
- All the
hyperstack
tagged questions are here: https://hyperstack.org/questions
Contributing
If you would like to help, please read the [CONTRIBUTING][] file for suggestions.
License
Released under the MIT License. See the [LICENSE][] file for further details.
*Note that all licence references and agreements mentioned in the Hyperstack README section above
are relevant to that project's source code only.