devnotes.

Setting Up a React Project

The fastest way today: Vite

Create React App (CRA) is officially deprecated (as of Feb 2025, the React team removed it from the official docs). The recommended way to start a plain client-side React app today is Vite.

npm create vite@latest my-app -- --template react
cd my-app
npm install
npm run dev

For TypeScript (recommended for anything beyond a toy project):

npm create vite@latest my-app -- --template react-ts

Folder structure (Vite default)

my-app/
├── index.html
├── package.json
├── vite.config.js
├── src/
│   ├── main.jsx      # entry point, mounts <App /> to the DOM
│   ├── App.jsx        # root component
│   ├── App.css
│   └── assets/
// src/main.jsx
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import App from './App.jsx';

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <App />
  </StrictMode>,
);

Choosing the right starting point

ToolBest for
Vite + ReactClient-only SPAs, dashboards, learning React
Next.jsProduction apps needing SSR/SSG, routing, API routes, SEO
RemixServer-first apps with heavy focus on web fundamentals
ExpoReact Native mobile apps

Essential dev tools

  • React Developer Tools (browser extension) — inspect the component tree, props, state, and profile renders.
  • ESLint + Prettier — catch bugs and keep formatting consistent; Vite's React template ships ESLint by default.
  • TypeScript — catches prop/type mistakes before runtime; the React team recommends it for anything beyond a quick prototype.
Setting Up React with Vite, Create React App and Next.js | DevNotes