Ege Ersoz goes over building a project management service with Phoenix and Elixir. It's hosted on Gigalixir.

In this episode of Running in Production, Ege Ersoz goes over building a
project management service using Phoenix and Elixir. It runs on Gigalixir along
with Heroku and has been up and running since early 2019.

Ege talks about using Elixir for the last few years, upgrading to use Phoenix
contexts, building a monolithic app with an API back-end / VueJS front-end,
building his own Stripe billing module, what it’s been like using Gigalixir and
more.

Topics Include

1:24 – What it was like using Elixir back in early 2019
4:55 – Motivation for using Phoenix and Elixir
6:37 – Phoenix Channels and Elixir GenServers are being used a bit
10:14 – It’s a monolithic app with mostly an API back-end using VueJS on the front-end
13:34 – Going through the process of upgrading to use Phoenix contexts
18:19 – Interesting packages in Ege’s mix file that helped him build his app
23:00 – The front-end assets are managed with Webpack, Vuetify is being used too
26:47 – Separation of concerns was the main reason for making an API back-end
29:43 – Stripe is being used to accept payments with no 3rd party Stripe library
32:27 – PostgreSQL is the primary database and it’s all hosted on Gigalixir
36:38 – The Gigalixir bill is about $200 a month including a staging environment
39:49 – The deployment process from development to production
42:07 – Offloading PDF generation to a micro-service
43:38 – Gigalixir is handling automated database backups
45:44 – UptimeRobot monitors the app and reports back if it’s down
47:05 – Getting rid of subdomains for each user account / tenant and multi-tenancy
51:34 – Moving from Timber to Logflare for application logs
54:26 – Transactional emails are sent using SendGrid
55:57 – Best tips? Having a trustworthy co-founder has been incredibly important
59:12 – Check out https://pricetable.io/ and you can email Ege directly too

Links

📄 References

https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)

⚙️ Tech Stack









































































































































phoenix →









































































































































































































































































































































































































































































elixir →



















































































































































































































































































































































































































































































































































































vue →





































































































































































































































































































































































































































































































































































































gigalixir →

































































































































































































































































































































































































































































































































































gitlab-ci →

























































































































































































































































































heroku →





























































































































































































































































































































































































































































































logflare →























































































































































































































































































































































































































































































































































































































































































































































postgres →

























































































































































































































































































































































































































s3 →























































































































































































































































































































































































































































































































sendgrid →







































































































































































































































































































































































































































































































stripe →



































































































































uptime-robot →



























































































































































































































































































































































































































































































🛠 Libraries Used

https://github.com/bitwalker/timex
https://github.com/elixirmoney/money
https://github.com/ex-aws/ex_aws
https://github.com/thoughtbot/bamboo
https://github.com/sorentwo/oban
https://vuetifyjs.com/en/
https://github.com/alvarcarto/url-to-pdf-api

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.