Running in Production

Hear about how folks are running their web apps in production. We'll cover tech choices, why they chose them, lessons learned and more.

https://runninginproduction.com/podcast/

subscribe
share






Great Question Makes It Easy for Teams to Perform Customer Research


In this episode of Running in Production, PJ Murray goes over building a customer research app with Ruby on Rails. It’s hosted on Heroku and has been up and running since mid-2020.

PJ talks about using feature flags, integrating Stripe with Jumpstart Pro, building out a React front-end, the value of having business metrics, taking data security very seriously, having a pragmatic approach around test coverage and tons more.

Topics Include
  • 4:16 – It took about a month to get the MVP out and a few months after for it to be sellable
  • 6:52 – Motivation for using Rails
  • 8:54 – How the app works and going over some of its screens
  • 13:21 – ActiveJob is such a good abstraction it’s easy to forget what job library you use
  • 14:14 – A bunch of useful gems that are being used
  • 18:14 – The user experience can often impact the technical complexity of what you’re building
  • 21:53 – Feature flags and swinging back to JSONB columns
  • 26:21 – Stripe handles all of the payments
  • 28:24 – The app is pretty much one big monolith and it’s a good thing
  • 29:55 – About 25k lines of Ruby code and 40k lines of Typescript on the front-end
  • 33:04 – If Turbo were around for years would you have used it over React?
  • 36:37 – You shouldn’t be afraid to touch code in your codebase
  • 38:42 – Getting a decent amount of things planned out before implementing the code
  • 44:00 – Postgres, Redis, Mixpanel and Datadog for app and business alerts / logging
  • 49:19 – Limiting access to production data from developers
  • 51:17 – Heroku helped them get to market faster and they had YCombinator credits
  • 54:36 – The deploy process from development to production
  • 1:01:20 – Limiting access at the GitHub repo level and Heroku
  • 1:04:48 – In general backups are handled by the providers they use (Heroku, S3, etc.)
  • 1:07:21 – Heroku will send out alerts if something unexpected is happening with the site
  • 1:09:31 – Best tips? Be pragmatic about testing and code coverage
  • 1:11:58 – User design and UX is handled by a specific team member
  • 1:14:09 – Check out https://greatquestion.co and they’re hiring too
Links ???? References
  • https://github.com/excid3/jumpstart
  • DHH’s YouTube video using esbuild and Tailwind’s CLI
  • https://github.com/nickjj/docker-rails-example
  • https://en.wikipedia.org/wiki/System_and_Organization_Controls
⚙️ Tech Stack
  • rails →
  • ruby →
  • react →
  • algolia →
  • datadog →
  • github-actions →
  • mixpanel →
  • mux →
  • postgres →
  • redis →
  • s3 →
  • sentry →
  • stripe →
???? Libraries Used
  • https://github.com/ErwinM/acts_as_tenant
  • https://github.com/excid3/noticed
  • https://github.com/mperham/sidekiq
  • https://brakemanscanner.org/
  • https://github.com/roidrage/lograge
  • https://github.com/basecamp/console1984
  • https://github.com/testdouble/standardrb
Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If you want to support the show, the best way to do it is to purchase one of my courses or suggest one to a friend.

  • Dive into Docker is a video course that takes you from not knowing what Docker is to being able to confidently use Docker and Docker Compose for your own apps. Long gone are the days of "but it works on my machine!". A bunch of follow along labs are included.
  • Build a SAAS App with Flask is a video course where we build a real world SAAS app that accepts payments, has a custom admin, includes high test coverage and goes over how to implement and apply 50+ common web app features. There's over 20+ hours of video.


fyyd: Podcast Search Engine
share








 October 4, 2021  1h15m