daisy-on-rails
daisy-on-rails copied to clipboard
Modern Ruby on Rails template with DaisyUI
Daisy-on-Rails: Ruby on Rails Starter Kit
Introduction
Daisy-on-Rails is a Ruby on Rails starter kit designed to bootstrap your new app with a modern Rails stack.
Keep it simple
The primary goal of Daisy-on-Rails is to offer a starter kit that accelerates the process of getting a new Rails application up and running with a modern tech stack and the base feature you need to quickly test a project.
It started as a recuring need to bootstrap new projects with a modern stack and a set of tools that I like to use. The goal of Daisy-on-Rails is to remain simple and minimalistic.
If you are looking for a feature rich tempalte with payments, Team etc check out Jumpstart, Bullet Train or Business Class
Technology Stack
- Rails 7.1: The latest version of the Ruby on Rails framework.
- Hotwire: Turbo 8 with morphing capabilities.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- DaisyUI: A Tailwind CSS component library for styling and theming.
- ViewComponent: Encapsulates the rendering logic of Rails views into reusable objects.
- Authentication: Implemented with Authentication-zero.
- Admin Interface: Utilizing AVO for easy admin panel creation. (WIP)
- Propshaft: A modern replacement for Sprockets to handle assets.
- Sitepress: Static pages and blog
Development Tools
- Standard: Code style enforcement for Ruby and JavaScript.
- ERB Lint: Linter for ERB templates.
- Livereload: Enables live reloading of web pages as you code.
- Minitest: A fast, easy-to-use testing framework for Ruby.
- Github Actions: Continuous integration
- Kamal: basic Kamal deploy script (WIP)
UI Components
The template includes default UI components for quick integration:
- Navbar (WIP)
- Buttons
- Links
- Modals (WIP)
- Badges (WIP)
- Dropdowns
- Form fields (input, teaxt area)
Custom Form Builder
<%= form_with(url: sign_in_path, class: "flex flex-col max-w-sm gap-6 w-full") do |form| %>
<%= form.ui_email_field :email, label: false, placeholder: t("email"), required: true, autofocus: true %>
<div class="flex flex-col gap-1">
<%= link_to t("forgot_password"), new_identity_password_reset_path, class: "link link-primary ml-auto" %>
<%= form.ui_password_field :password, label: false, placeholder: t("password"), required: true, autocomplete: "current-password" %>
</div>
<%= form.ui_submit t("sign_in"), class: "mt-6", id: :sign_in %>
<% end %>
Theme Customization
Easily customize the theme using Daisy UI's theme settings to align with your project's branding and design preferences.
Generators
This starter kit includes custom generators that use the built-in components, streamlining the development process.
Usage
To use this template for your project, follow these steps:
-
Clone the Repository
git clone [email protected]:adrienpoly/daisy-on-rails.git myapp cd myapp
-
Rename the Origin Remote
git remote rename origin daisy-on-rails
-
Add Your Repository
git remote add origin [email protected]:your-account/your-repo.git # Replace with your new Git repository URL
-
Rename the Application
Look for DaisyOnRails and daisy_on_rails and replace with your app name (e.g. Myapp)
Initial Setup
Run bin/setup
to install Ruby and JavaScript dependencies and setup your database.
bin/setup
Running the Application
To run the application, use the bin/dev
script.
bin/dev
Merging Updates
To merge changes, merge from the daisy-on-rails
remote.
git fetch daisy-on-rails
git merge daisy-on-rails/main
License
Daisy-on-Rails is released under the MIT License.
Contributing
Bug reports and pull requests are welcome on GitHub at github.com/adrienpoly/daisy-on-rails