Two apps. Two months. One developer. Here's the tech stack that made it possible.
The Challenge
As a solo developer, I wanted to build Shopify apps without drowning in infrastructure complexity. I needed a stack that would let me ship fast, iterate quickly, and not burn out managing separate frontend and backend codebases.
After exploring several options, I landed on React Router 7 — and it turned out to be the perfect choice.
Why React Router 7?
Shopify's Official Recommendation
This was the deciding factor. Shopify officially recommends React Router 7 for new apps, and their template comes with authentication, session handling, and billing integration already configured. I didn't have to reinvent the wheel.
Server and Client in One
No separate backend needed. Loaders fetch data on the server, actions handle form submissions, everything lives in one codebase. For a solo dev, this simplicity is a game-changer.
No API Layer Needed
Traditional React + Express setup means REST endpoints, CORS handling, two deployments. With React Router 7, the loader IS your API. Less code, fewer bugs, faster shipping.
Why Not Next.js?
Next.js is great, but Shopify officially recommends React Router 7. Fighting against that would mean more work and less community support. I went with the grain.
The Full Tech Stack
| Layer | Technology |
|---|---|
| Framework | React Router 7 |
| Database | Turso (distributed SQLite) |
| Database Client | libSQL |
| Hosting | Railway |
| Queue/Sessions | Redis |
| AI | OpenAI API |
The Framework Evolution
Here's something interesting: I started with Remix 2 for my first app, and by the time I built the second one, Shopify had shifted to recommending React Router 7.
The migration path was smooth — core concepts remained the same: loaders, actions, server-side rendering. This gave me confidence that investing in this ecosystem was the right call.
Interesting Challenges I Solved
Rate Limiting
Shopify's API has strict rate limits. When processing hundreds of images per batch, I had to implement a queue system with Redis and careful throttling.
Billing Integration
Shopify's Billing API is powerful but tricky — free trials, usage-based pricing, subscription lifecycle. React Router actions made this manageable. Each billing event is just a POST handler.
Background Jobs
Generating AI content for 50+ items can't happen in a single request. I used bee-queue with Redis to process jobs in the background while showing real-time progress to merchants.
AI as a Real Co-Pilot
I have to mention this: Claude AI helped me write code, debug issues, and make architectural decisions throughout the entire process. It's like having a senior dev on call 24/7.
This isn't just hype — it genuinely cut my development time in half.
What I Built
Using this stack, I launched two apps under my GoodySell brand:
- AI Alt Generator — automatically generates SEO-friendly alt text for product images
- AI SEO Blog — helps merchants create optimized blog content with AI
Both solve real pain points for Shopify merchants who don't have time for repetitive SEO tasks.
Key Takeaways
Start with the official template — Don't fight the framework. Shopify's templates save weeks of work.
Keep it simple — Every abstraction costs time. React Router 7 let me ship fast without sacrificing quality.
AI accelerates everything — Use it for coding, debugging, architecture decisions.
Go with the ecosystem — Shopify recommends React Router 7. Fighting that choice would be swimming upstream.
Wrapping Up
If you're a developer thinking about building Shopify apps — give React Router 7 a shot. The official support, simplified architecture, and active community make it the obvious choice for solo developers.
Got questions about the stack or building Shopify apps? Drop a comment below.
Built by SilverWeb. Follow me for more posts about solo development and building SaaS products.
Top comments (0)