All implementations

Rails + Postgres + Stripe

structural

Conventional Ruby on Rails 7 monolith with Hotwire/Turbo, Devise for auth, Stripe Checkout for payments, and Solid Queue running background jobs in-process. Deploys to Fly.io via Kamal.

For spec: E-commerce Storefront

Frontend
Hotwire (Turbo + Stimulus)
Backend
Rails 7
Database
Postgres
ORM
ActiveRecord
Auth
Devise
Hosting
Fly.io
payments
Stripe
jobs
Solid Queue
3 tables4 routes1 modules4 packages3 env vars3 features uncovered

Packages

rails~> 7.1gem
devisegem
stripegem
solid_queuegem

Environment

DATABASE_URLrequired
STRIPE_SECRET_KEYrequired
STRIPE_WEBHOOK_SECRETrequired

Feature implementations

Background Jobs & Queues

background-jobs

Solid Queue with dedicated worker Procfile entry.

Modules

  • app/jobs/send_order_receipt_job.rb Email receipt after webhook

File Storage

file-storage

ActiveStorage backed by S3 for product images.

Payments & Billing

payments

Stripe Checkout session per order; webhook updates order.status.

Tables

orders5 fields
  • idbigint
  • user_idbigint
  • statusstring pending/paid/fulfilled/refunded
  • total_centsinteger
  • stripe_session_idstring
order_items5 fields
  • idbigint
  • order_idbigint
  • product_idbigint
  • quantityinteger
  • unit_centsinteger

Routes

POST/checkout

CheckoutController#create

POST/stripe/webhook

StripeWebhooksController#create

Search

search

pg_search gem with tsvector on products(name, description).

Transactional Email

transactional-email

ActionMailer with Postmark in production; letter_opener in dev.

User System & Auth

user-system

Devise with :database_authenticatable, :registerable, :confirmable.

Tables

users4 fields
  • idbigint
  • emailstring
  • encrypted_passwordstring
  • confirmed_atdatetime

Routes

POST/users/sign_in
POST/users/sign_up

Uncovered features

The spec includes features this implementation doesn't describe. Contributions welcome.

NotificationsRate Limiting & Abuse PreventionOnboarding & Activation