An opiniated stack for building real world apps with web technologies.
Core:
Remix, Tailwind CSS, Prisma ORM, MySQL, Vercel
Preferences:
Linear, Figma, HTML, CSS, JavaScript, TypeScript, Node.js, npm/pnpm, React, Remix, Tailwind CSS, Radix UI, Prisma ORM, MySQL on PlanetScale, Zod, Vercel, Bitwarden.
This is the short version of Stack All. You can use this repo as a template to help with your technical evaluation and decision.
The emoji π§° (toolbox) indicated the recommendation and π° (beginner) need to be prioritized. Just keep in mind it doesn't mean that everything is required. Also feel free to skip the ones without the π§°.
Main Categories:
- Stack: For technical evaluation
- Work Stack
- App Stack/Dependency
- Development Stack/Dependency
- Deployment Stack
- External Service Stack
- References: For learning more
- Checklist: For development decision
- Arc π§°π°
- Chromium π§°π°
- Google Chrome π§°
- Mozilla Firefox
- Apple Safari
- Airtable π§°π°
- Typeform
- Google Forms + Google Sheets
- Eraser.io π§°
- Excalidraw π§°
- Mermaid
- Whimsical
- HTML π§°π°
- CSS π§°π°
- JavaScript π§°π°
- TypeScript π§°π°
- JSON π§°
- Node.js π§°π°
- Deno
- Bun
General:
Installer:
- Remix π§°π°
- π¦ React, TypeScript, Prisma, Tailwind CSS, Remix Auth
- Next.js π§°
- T3 Stack π§°
- π¦ Next.js, TypeScript, tRPC, Prisma, Tailwind CSS, NextAuth.js
- SolidStart
- SvelteKit
- React Native π§°π°
- Flutter
For transforming the data into the content.
- DIY: Just create it ourself
- Contentlayer
- Astro:Content
Functions/Services:
- Remix Auth π§°π°
- Auth.js π§°
- Clerk π§°: For setup auth the fastest way
- Auth0
Methods:
- Cookie-based Sessions π§°π°
- Email and Password π§°
- Passwordless with OTP
- OAuth
Security/Encryption/Encoding:
If using Full Stack Framework's Approach, these might not needed.
REST:
GraphQL:
General:
- Fetch API π§°π°
- Axios HTTP π§°π°
- ky
REST:
- TanStack Query π§°
- SWR
- RTK Query
GraphQL:
- Tailwind CSS π§°π°
clsx
π§°π°: For constructingclassName
strings conditionallycva
: For creating component variants (Class Variance Authority)- PostCSS
- Autoprefixer
- Fontsource: For self-host Open Source fonts in neatly bundled NPM packages.
- Radix UI π§°π°: For the most complete unstyled UI components
- shadcn UI: For ready to use UI components made of Radix UI and Tailwind CSS
shadcn/ui
- Chimera UI: For installable shadcn UI components
- shadcn UI: For ready to use UI components made of Radix UI and Tailwind CSS
- Headless UI
- Ariakit
- Downshift
- React Wrap Balancer
- NProgress π§°: For slim progress bar
- Zod π§°π°
Framework Specific:
- Remix Validated Form π§°π°: For full stack form handling
- Remix Forms by Seasoned
Framework Agnostic:
- HouseForm π§°: For highly interactive client side form handling
- React Hook Form (RHF)
- Formik
- Prisma ORM π§°π°: For modeling the data and connecting the database
- TypeORM
- Sequelize
- Mongoose
- MySQL on PlanetScale π§°π°
- PostgreSQL on Neon or Supabase
- MongoDB on MongoDB Atlas
Remix:
remix-utils
π§°
General:
sleep-promise
: For a promise after a specified delay- Invariant: For descriptive errors in development, but generic errors in production
- Falso: For all the fake data
Text/String:
@sindresorhus/slugify
- Voca: For string manipulaton
prettyjson
: For formatting JSON data in a coloured YAML-style, perfect for CLI outputpluralize
country-code-lookup
- i18next
Number/Currency:
numeral
: For formatting and manipulating numbers- currency.js
Date:
File/Asset:
pdfjs-dist
: For parsing and rendering PDFs
Email:
- React Email π§°
- Nodemailer
- TypeScript π§°π°: For type safety
- swc π§°
- Babel
These are important just to know the language behind the tools.
- Pretier π§°π°: For opiniated formatting
- Rome
- EditorConfig
- ESLint π§°π°: For enforcing JS/TS syntax rules
- stylelint π§°: For enforcing CSS syntax rules
- ls-lint
- commitlint
- lint-staged
- Vitest π§°π°: For unit test
- Jest
- testing-library π§°: For unit test
- Playwright π§°: For end-to-end test
- MSW π§°: For mock service test
Workflow:
- Bitwardenπ§°π°: For any credential management
- Doppler π§°π°: For app environment variable management
- Kodiak: For pull request management
- [
npm-run-all
]/run-p
: For parallel scripts - [
motdotla/dotenv
]
TypeScript:
@total-typescript/ts-reset
: For improving types for common JavaScript AP
Setup:
Extra:
- webhookthing
- Pino: For simple logging
bundle-wizard
: For evaluating bundle size@milahu/patch-package
: For patching node modules
- Vercel π§°π°: For full stack app deployment with frontend focus
- Netlify π§°: For full stack app deployment with frontend focus
- Railway.app π§°: For full stack app deployment with all focus
- Render
- Fly.io
- Deno Deploy
- Highlight
- Sentry
- Uploadcare: For easy image storage/hosting π§°π°
- ImageKit: For easy image storage/hosting
- Mux Video: For modern video hosting
- bunny.net (Bunny CDN): For cheapest video storage/hosting/streaming
Transactional:
- Mailjet π§°π°: For cheapest transactional email service
- Resend π§°
- Postmark π§°
- Sendgrid
- Amazon SES
Marketing:
- ConvertKit π§°π°
- Bento π§°
- Substack
- GitHub Actions π§°: For easy CI/CD on GitHub
- GitLab CI: For easy CI/CD on GitLab
- Circle CI
- Rewinds - Remix Tailwind CSS starter kit
- neorepo - Remix/Next.js production-ready starter kit
- SaasRock - The One-Man SaaS Framework
- MakerKit - SaaS Starter Kits based on React
- Website
- Personal Website
- Company Profile
- Organization Profile
- School Portal
- Government Portal
- Community Portal
- Application
- Content Management System (CMS)
- Learning Management System (LMS)
- Information and Encyclopedia
- News and Magazine
- Writing and Publication
- Work and Productivity
- Contacts and Address Book
- Social Media and Event
- Note-Taking and Research
- Multimedia Streaming
- Cooking and Culinary
- Commerce and Shopping
- Forum and Discussion
- Jobs and Hiring
- Health and Fitness Tracker
- Personal Development
- Places and Exploration
- Travel and Accommodation
- Property and Housing
- Directory and List
- Software as a Service (SaaS)
- Stack:
- Work Stack
- App Stack/Dependency
- Development Stack/Dependency
- Deployment Stack
- External Service Stack
- General:
- Format and lint rules
- Function vs arrow function
- Type naming convention
- Frontend/Client/Website:
- Landing page/route
- Header and Navigation
- Main
- Footer
- 404 Not Found page/route
- Splat (
*
) routes - Favicons
- SEO metadata
-
charset
-
sitemap.xml
-
robots.txt
-
- OG image for social media
- Twitter metadata
- JSON-LD Structured data
- Analytics
- Landing page/route
- Backend/Server/API/Database:
- Model naming convention (singular vs plural)
- Field/property case convention (camel vs snake)