Falling Into The Nerd Trap
I went back and forth more times than I care to admit.
No-code? Full-stack JS? Backend-first? A hybrid approach? Here’s my reasoning.
I settled on: Remix + Phoenix + Oban
Is it the perfect stack? No.
But is it perfect for me? Absolutely.
As a reminder: I’m building a Shopify App that improves the conversion rate of stores using AI. Let’s dive in!
Why Remix?
This one’s easy. Shopify is pushing Remix hard. That means:
- Built-in Shopify App Bridge (instant auth, no extra setup)
- Works seamlessly with GraphQL queries
- Great DX for full-stack development. Built-in design-system (Polaris)
I could have gone all-in on Remix. TypeScript is actually nice! And it was a close call!
But I wanted more control over data, processing, and long-running jobs.
Which brings me to…
Why a Dedicated Backend?
A backend lets me separate concerns and repurpose logic beyond this single app.
I’ve seen this work incredibly well before.
At Vitals, we had a good old monolithic backend that eats all the fancy “modern” tech stacks for breakfast. It scaled beautifully. Costs were super low. Chef’s kiss!
So I picked… Phoenix!
Why Phoenix? (And What’s Elixir Anyway?)
If you’ve never looked into Elixir, it’s consistently one of the most loved languages in developer surveys. It is based on Erlang (built for distributed, fault-tolerant systems), and it is the functional sibling of Ruby.
I started playing around with Elixir during the Advent of Code in 2022, and got productive quickly.
Why does it make sense for Varient?
- Concurrency & Fault Tolerance – Perfect for running parallel tasks & background jobs
- Ecosystem – Oban for workers, Ecto for DB, Generators for scaffolding
- Scalability – It’s cost-efficient, easy to deploy separately
- Bonus – I love writing Elixir.
Did I make a mistake? Would it be better to do it all in Remix? Or would I be faster with a no-code tool?
Maybe.
But I feel productive in it. I trust it. It’s fun. And in the end, that’s what matters most.