This is my personal production stack for when I'm building apps. Each folder in the root dir is it's own independant package that's deployed to different services and is available as an open source project.
I'm not going to be actively maintaining it because the idea of putting this in here is to serve as an example of how I like to structure my builds. This does not contain indepth notes on engineering and design decisions, that's something that cannot be put to words and varies from project to project.
app/
:Next.js x Prisma ORM Boilerplate
/Express x MongoDB Boilerplate
| The actual Shopify app. I prefer the Nextjs boilerplate and swapped out with the Express boilerplate (both of which I've built and been maintaining) when needed.extensions/
: All Shopify extensions live here. There's no need to build deeper into this since everything is generated and controlled by Shopify CLI 3.x. The only thing prebuilt here is my package.json that contains scripts so I don't have to remember commands.webhooks/
:Cloudflare Workers Webhook Manager
|client-manager/
:proprietary
| Manage subscriptions (refunds, discounts via Billing API), customers and see overview data of what's happening. This is proprietary software and is not open source yet. Used in combination with Metabase for data visualization when necessary.tests
:proprietary
| Testing suite with Jest and Cypress.notes
:proprietary
| Notes going over features and other content of the project, strictly includes.md
and.png
files, along with excalidraw dumps.- 3 other folders.
These are my go to services for whatever I'm building. These mostly do not change unless I'm specifically asked to swap something out, and more services may be added to the list but it depends on what I'm building.
- Vercel - Next.js host.
- Heroku - Express.js host.
- Planetscale - MySQL database.
- Prisma Accelerate - Data connection pooling.
- Cloudflare - Proxy, Workers, Queues, R2.
- Resend - Email.
- Axiom - Log drains.
- Zeitgeist - Mobile app to monitor Vercel deployments.