Initialize rails project with custom configuration. See Rails Application Templates
-
git clone this project
-
rails new with template.rb
rails new app_name -d postgresql --skip-turbolinks -m jumpstart/template.rb
-
add/move keys to credentials or .env file
-
reorder gems in Gemfile for better practice
- Disable auto generated stylesheets & helpers
- Time zone: Taipei
- Add middleware
ActionDispatch::Static, Rack::Deflater
- smaller rails page size - Add hosts
lvh.me
&.ngrok.io
- require master_key
- I18n
- i18n-active_record - Lookup translations in the database
- Enable webpack chunks
- Locale
- default: zh-TW
- available: zh-TW, en
- load path:
config/locales/**/*.{yml,rb}
- annotate - Add a comment summarizing the current schema
- bullet - Help to kill N+1 queries and unused eager loading
- dotenv - Load environment variables from .env into ENV
- letter_opener - Preview email in the default browser instead of sending it
- premailer-rails - CSS styled emails
- pry-rails - Better IRB shell
- rack-mini-profiler - Displays speed badge for every html page
- memory_profiler - For memory profiling
- flamegraph & stackprof - For call-stack profiling flamegraphs
- better_errors - Better error page
- cacheflow - Colorized logging for Memcached and Redis
- capistrano - Deployment automation
- rails-erd - Generate entity-relationship diagrams
- Add
Procfile
for foreman. (DON'T install foreman in projects!)
- webpacker
- bootstrap
- flatpicker - datepicker/datetimepicker
- font-awesome
- pnotify - notification
- i18njs
- axios - Promise based HTTP client for the browser
- day.js
- lodash
- sweetalert2 - Override Rails data-confirm dialog
- tippy - Tooltip
- gon - Use rails variables in js
- inline_svg - Styling SVG documents with CSS
- active_link_to - View helper to manage
active
state of a link - draper - Add object-oriented layer of presentation logic
- friendly_id - Pretty URLs
- babosa - Improvement of the string code from friendly_id
- loaf - Breadcrumb
- pagy - Pagination
- simple_form - Forms made easy for rails (initialized with bootstrap)
- sitemap_generator
- meta-tags
- local time - Display times and dates to users in their local time
- sidekiq
- activejob-traffic_control - Rate limiting/job enabling for ActiveJob using distributed locks
- sidekiq-statistic - Improved display of statistics
- sidekiq-scheduler - Scheduler for Sidekiq jobs
- sidekiq-status - An extension to Sidekiq message processing to track jobs
- sidekiq-failures - Keeps track of Sidekiq failed jobs and adds a tab to the Web UI to let you browse them
- lockbox - Encrypted fields and files
- blind_index - Securely search encrypted database fields
- kms_encrypted - Secure key management
- brakeman - Checks rails applications for security vulnerabilities
- rack-attack - Rack middleware for blocking & throttling
- oj - Speed up JSON parsing
- counter_culture - Huge improvements over the rails standard counter caches
- activerecord_where_assoc - do conditions based on the associations (Using SQL's
EXISTS
operator)
- paper_trail - Track changes to models
- lograge - Simplify rails' default request logging
- marginalia - Attach comments to ActiveRecord queries
- slowpoke - Rack::Timeout enhancements for rails
- whenever - Cron jobs in Ruby
- discard - Soft delete
- strip_attributes - Automatically strips leading and trailing whitespace
- browser - Browser detection
- aasm - State machine
- after_commit_everywhere - Prevent race conditions and redundant callback calls within nested transaction
- http - Ruby HTTP client
- activerecord-import - Bulk inserting data using ActiveRecord
- groupdate - Group time data
- deep_cloneable - Clone including associations
- flipper - Feature flags
- devise - Authentication
- pundit - Authorization
- omniauth-google-oauth2
- omniauth-facebook
- omniauth-twitter