Template is an opinionated template to build web applications with Ruby on Rails and flowbite ui. It simplifies the process of setting up a new application while following best practices.
Live demo available at
- Ruby 3.2.2
- Ruby on Rails 7.0.4 PostgreSQL for use as SQL database
- Sidekiq for background processing
- Redis for Caching, ActionCable, and Sidekiq
- Puma is a simple, fast, multi-threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
- hotwire Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire
- Tailwind CSS 3 to not have to write CSS at all
- https://flowbite.com/ Build websites even faster with components on top of Tailwind CSS.
- esbuild An extremely fast bundler for the web
- Foreman for starting up the application locally
- dotenv to load environment variables from .env into ENV
- Prettier for auto-formatting JavaScript and Ruby code in Visual Studio Code
- Lookbook as development UI for ViewComponent
- Live reloading
- RuboCop for Ruby static code analysis
- ESLint for JavaScript static code analysis
- RSpec for Ruby testing
- Factory Bot for setting up Ruby objects as test data
- Cypress for E2E testing
- Docker for production deployment, NOT for development
- GitHub Actions for testing, linting, and building Docker image
- Dependabot configuration for updating dependencies (with auto-merge)
- Ready for serving assets via CDN like CloudFront
- Lockup to place a staging server behind a basic codeword
- Clone the repo locally:
git clone https://github.com/jisuanjixue/Flowbite_rails_template
cd Flowbite_rails_template
- Install PostgreSQL, Redis, ruby, gem, javascript node module etc Setup the application to install gems and NPM packages and create the database::
bin/setup
- Start the application locally:
bin/dev
Then open http://localhost:3000 in your browser.
RuboCop:
bin/rubocop
ESLint:
bin/yarn lint
Ruby tests:
bin/rspec
open coverage/index.html
JavaScript unit tests:
bin/yarn test
E2E tests with Cypress:
bin/cypress open
This opens Cypress and starts Rails in development
environment, but with CYPRESS=true
, so the test
database is used. This allows code editing without class reloading and recompiling assets.
To run Cypress in headless mode:
bin/cypress run
docker network create public
docker-compose up