A modern React application built with Vite, TypeScript, and TanStack Router. This project serves as a personal website with interactive tools and utilities.
- Framework: React
- Build Tool: Vite
- Language: TypeScript
- Routing: TanStack Router
- Styling: Tailwind CSS
- Animations: Framer Motion
- Forms: TanStack React Form + Zod validation
- Icons: React Icons
- Linting: ESLint
- Formatting: Prettier
src/
├── components/
│ ├── atoms/ # Basic UI components
│ ├── molecules/ # Composite components
│ ├── organisms/ # Complex components
│ └── templates/ # Page-level compositions
├── routes/ # File-based routing
│ ├── __root.tsx # Root layout
│ ├── index.tsx # Home page
│ └── things/ # Tool pages
├── styles/ # CSS files
└── main.tsx # App entry point
The project follows Atomic Design principles with components organized into atoms, molecules, organisms and templates.
- Node.js (latest LTS recommended --
nvm useis supported)
# Install dependencies
npm install
# Start development server
npm run devThe dev server runs on http://localhost:3000.
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run format- Format code with Prettier
The project uses a composite TypeScript setup:
tsconfig.json- References configurationtsconfig.app.json- App-specific config with path aliasestsconfig.node.json- Node/Vite tooling config
Path aliases are configured for component imports:
// Instead of relative imports
import Button from '../../../components/atoms/Button';
// Use atomic design aliases
import Button from 'atoms/Button';TanStack Router provides file-based routing with:
- Automatic route generation
- Type-safe navigation
- Code splitting
- Route-level meta tags and SEO
Routes are defined in src/routes/ with automatic route tree generation.
Tailwind CSS v4 is configured with:
- Vite plugin integration
- Custom utilities in
src/styles/utilities.css - Base styles in
src/styles/base.css
Forms use TanStack React Form with Zod schemas for validation:
- Type-safe form state management
- Schema-based validation
- Reusable form components
# Build for production
npm run build
# Files output to dist/The project includes a _redirects file for SPA routing on Netlify/similar platforms.
- Router devtools are included in development builds
- ESLint is configured with React-specific rules
- Prettier handles code formatting
- Strict TypeScript configuration with comprehensive linting rules
- Component architecture follows atomic design for maintainability