
[WIP] Rubree
A Ruby-based regular expression editor.
Inspired by: https://rubular.com
Technology stack
⚙️ Backend
🎨 Frontend
- Hotwire for building the frontend without using much JavaScript by sending HTML instead of JSON over the wire
- TailwindCSS to not have to write CSS at all
- RailroadDiagrams a tiny Ruby+SVG library for drawing railroad syntax diagrams like JSON.org
🛠️ Development
- Forman for jsbundling-rails, cssbundling-rails
- Lefthook Fast and powerful Git hooks manager for any type of projects
🧹 Linting and testing
- Rubocop the Ruby Linter/Formatter that Serves and Protects
- ERB Lint Lint your ERB or HTML files
- Biome Format, lint, and more in a fraction of a second
- RSpec for Ruby testing
- Playwright for E2E testing
🚀 Deployment
- Wasmify Rails tools and extensions to pack and run Rails apps on Wasm
🖥️ Production
- GitHub Pages for Ruby on Rails on WebAssembly, the full-stack in-browser
🤖 Shift-left security
- Dependabot automated dependency updates built into GitHub
- Gitleaks Find secrets with Gitleaks
- Brakeman a static analysis security vulnerability scanner for Ruby on Rails applications
- GitHub Actions for testing, linting, and building web application and deploy to GitHub Pages
Getting started
Install for development
- Clone the repo locally:
git clone git@github.com:aim2bpg/rubree.git
cd rubree
- Install gem and NPM packages and start the application locally:
-
Then open http://localhost:3000 in your browser.
-
(Optional) Install lefthook:
brew install lefthook
lefthook install
- (Optional) Install gitleaks for lefthook:
Running linters
Rubocop:
ERB Lint:
Biome Lint:
Running tests locally
Ruby test:
Test deployment locally
Roadmap
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/aim2bpg/rubree
Lisence
This project is licensed under the MIT License, see the LICENSE file for details