Bootstrap de SaaS en Rails: el template que uso
Cada vez que voy a empezar un SaaS nuevo en Rails, termino pasando unos 30 minutos recordando los mismos flags. Este post es mi cheat sheet.
La evolución de mi rails new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# v1
rails new app --database=postgresql
# v2
rails new app --database=postgresql --webpack=react
# v3 (API only)
rails new api --database=postgresql --skip-javascript --skip-turbolinks --skip-sprockets --skip-action-text --skip-webpack-install
# v4 (actual)
rails new app -d postgresql \
--skip-action-mailbox \
--skip-action-text \
--skip-spring \
--webpack=react \
-T \
--skip-turbolinks
La v4 es mi estándar actual: PostgreSQL, React via Webpacker, sin Action Text/Mailbox/Spring/Turbolinks, sin framework de testing por defecto (-T) — prefiero configurar RSpec después.
Setup de base de datos
rails db:create resuelve, pero vale revisar config/database.yml para ajustar host/usuario antes de cualquier cosa.
Setup de GraphQL con GraphiQL
1
rails generate graphql:install --relay --batch
Para que GraphiQL funcione junto con el stack moderno de Rails (sin Sprockets por defecto), hay dos ajustes:
En config/application.rb, descomentá/agregá:
1
require "sprockets/railtie"
Y en app/assets/config/manifest.js, agregá:
1
2
//= link graphiql/rails/application.css
//= link graphiql/rails/application.js
Sin esto, la interfaz de GraphiQL queda sin CSS/JS y se convierte en un formulario pelado.
Próximos pasos del template
- Setup de Devise para autenticación
- Setup de Docker (
Dockerfile+docker-compose.ymlpara Rails + Postgres + Redis) - Flujo de login funcionando de punta a punta
Esos tres los trato en posts separados — cada uno se convierte en un pequeño tutorial.