Limit Third Party Services
: If we can reasonably build, deploy, maintain it ourselves, do it. This saves on cost and reduces complexity.Include Only Most Common Use Cases
: As a project generator, it is expected that some code will necessarily be deleted, but implementing support for every possible type of feature is literally impossible. The starter app is not docs, so to demonstrate a feature or give an example, put that in the docs instead of in the starter app.Minimize Setup Friction
: Try to keep the amount of time it takes to get an app to production as small as possible. If a service is necessary, see if we can defer signup for that service until its services are actually required. Additionally, while the target audience for this stack is apps that need scale you have to pay for, we try to fit within the free tier of any services used during the exploration phase.Optimize for Adaptability
: While we feel great about our opinions, ever-changing product requirements sometimes necessitate swapping trade-offs. So while we try to keep things simple, we want to ensure teams using the Epic Stack are able to adapt by switching between third party services to custom-built services and vice-versa.Remix
is the Web Framework of choiceDocker
SQLite
Database with LiteFS
.Fly backups region fallbacks
Grafana
Dashboards of the running appGitHub Actions
with testing and deploy on merge for both production and staging environmentscookie-based sessions
Mailgun
and forgot password/password reset support.Conform
Prisma
cachified
: Both in-memory and SQLite-based (with better-sqlite3
)Tailwind
Radix UI
Playwright
MSW
Vitest
and Testing Library
with pre-configured Test DatabasePrettier
ESLint
TypeScript
zod
Sentry
Stripe
fathom