- Language: TypeScript
- Framework (better not use a framework and just use vite): NextJS (Fullstack; I just recommend this because it's widely used, otherwise it's garbage), Remix (Fullstack; For nested content, yet to try), Astro (For SSG/blog, optional, my blog is Astro. Astro probably can do whatever nextjs does, better), or Vike (Optionally fullstack using bati).
- State Management: Zustand, RxJS based redux-equivivalent or Apollo Client if using GraphQL. TBH haven't found anything good, yet. Certainly not redux.
- UI Library: React
- Components/Styling: TailwindCSS for styling, one of React Aria by Adobe, Radix UI, or Material UI Base for components. You may also want to look at Shadcn UI which downloads component templates created using Radix UI and TailwindCSS.
- Compiler/bundler: Vite (Uses esbuild, Rollup under the hood and can configure to use SWC for HMR.)
- Testing: Jest/TS-Jest or vitest, Testing Library (yet to try)
- Language: TypeScript
- Runtime: Bun when stable, NodeJS for now
- Framework: NestJS (express based [or optionally fastify based], create standard APIs fast)
- Next-gen (kind of) frameworks: Hono runs on edge platforms too, Elysia.
- Libraries: Express and Apollo if using GraphQL
- Database/ORM-equivalent: For MongoDB -> Mongoose (flexible and simplifies most use cases, but if you can help it, just use the official mongodb driver) or TypeORM (clean). For MariaDB -> Drizzle or Sequelize (old way).
- Testing: Jest/TS-Jest
- Creating interactive CLIs: Prompts because Inquirer.js is not feature rich and enquirer v2x is broken.
- Dependency Manager: Bun, PNPM
- VCS/Repo: Git/GitHub
- CI/CD: GitHub Actions
- CDN: Cloudflare
- Formatter: Biome, Prettier
- Linter: Biome, ESLint
- Editor: Cursor - The AI code editor, Visual Studio Code, Zed, or Neovim + a good "framework" like LunarVim may serve you same or better than vscode, but I'm not that nerdy.
- Shell: Warp with AI support, ZSH + Oh My Zsh
- E2E Testing: Playwright
- Sending email: Resend (yet to try)
- Functional Reactive Programming: RxJS
- Date/Time: All of them are garbage; try to use temporal API with @js-temporal/polyfill and write methods yourself.
- Forms: React Hook Form
- I18n: FormatJS/React-Intl
- Displaying a large set of data efficiently: Tanstack Virtual, React Window
- Routing: React Router
- Managing Meta Tags: React Helmet Async