Let's build for Ruby and Rails developers - Part 3
Tags: rails, ruby, tutorial, series
Published: 2020-08-07 16:00:40

---
title: Let's build for Ruby and Rails developers - Part 3
published: true
date: 2020-07-28 14:39:00 UTC
tags: rails, ruby, tutorial, series
canonical_url: https://web-crunch.com/posts/lets-build-for-ruby-and-rails-developers-part-3
---

{% youtube qpf_kAGU41s %}

### Configuration and Initial App Setup

Welcome back to part 3 of my series titled "Let's build for Ruby on Rails developers" where I'll begin creating a new Ruby on Rails app and configuring it for the development journey ahead.

If you landed on this page and haven't seen the previous parts I recommend watching those first to get a lay of the land!

#### The series so far

- [Part 1](https://dev.to/justalever/let-s-build-for-ruby-and-rails-developers-2g1)
- [Part 2](https://dev.to/justalever/let-s-build-for-ruby-and-rails-developers-part-2-3310)

### Continuing in part 3

In this part, I'll be creating a new Ruby on Rails application which will be the framework of choice for this build. I'll also be leveraging an application template I made called [kickoff\_tailwind](https://github.com/justalever/kickoff_tailwind) which is a huge time saver when it comes to creating and configuring a new Ruby on Rails application.

If you're following along I recommend cloning the template and using it along the journey. Bundled with it is [Tailwind CSS](https://tailwindcss.com) and a few gems I swear by including [Devise](https://github.com/heartcombo/devise), [Sidekiq](https://github.com/mperham/sidekiq), [FriendlyId](https://github.com/norman/friendly_id/), and [name\_of\_person](https://github.com/basecamp/name_of_person). These all get installed and configured by default for the most part.

I'll continue installing a few gems I like to leverage during development including [Faker](https://github.com/faker-ruby/faker), [Annotate](https://github.com/ctran/annotate_models), [inline\_svg](https://github.com/jamesmartin/inline_svg), and [Pay](https://github.com/pay-rails/pay). We'll need [Stripe](https://github.com/stripe/stripe-ruby), [Stripe Event](https://github.com/integrallis/stripe_event), and a handful of other gems as well.

### Thinking about tests

Rails ships with [minitest](https://github.com/seattlerb/minitest) and [Capybara](https://github.com/teamcapybara/capybara) by default so I think it makes sense to leverage that framework as well as the fixture pattern. I realize [Rspec](http://rspec.info/) is a more popular solution but I prefer to keep things light and configuration as simple as possible. An application like this is going to be iterated on overtime so I think the mindset of knowing things can change at any moment is a healthy one to have.

### Databases

The default database type on vanilla rails apps is `sqlite3` based. This is suitable for development but I'll be opting for PostgreSQL because our production app will live on such a database. You're welcome to use whatever type of database you wish if you're following along. Just know services like [Heroku](https://heroku.com) enforce PostgreSQL(I'll be using [hatchbox.io](https://hatchbox.io)).

### Git flow

For each part of this series, I'll be creating a fresh branch so you can have reference points along the way. This is great for both adopting a good Git flow and so there are obvious historical checkpoints we could always revert back to if necessary. You can find the repo [here](https://github.com/justalever/railsdevs_public/tree/part_3) or linked in the sidebar to the right.

The main repo for this project is found at [https://github.com/justalever/railsdevs\_public](https://github.com/justalever/railsdevs_public)