Portfolio website of Mateo Olarte, a Software Engineer. Built with Next.js 16, React 19, and TypeScript.
- Bun >= 1.0 (recommended) or Node.js >= 18.0
-
Clone the repository
git clone https://github.com/mateoolarte/website.git cd website -
Install dependencies
bun install
Or if you're using npm:
npm install
Start the development server:
bun run devThe application will be available at http://localhost:3000.
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Language: TypeScript
- Icons: Phosphor Icons
- Analytics: PostHog
- Styling: CSS Modules
- Font: Reddit Sans (Google Fonts)
bun run dev- Start development serverbun run build- Build for productionbun run start- Start production serverbun run analyze- Analyze bundle size
bun run lint- Run ESLint and Stylelintbun run lint:js- Run ESLint onlybun run lint:css- Run Stylelint onlybun run format- Format code with Prettierbun run format:check- Check code formattingbun run type-check- Run TypeScript type checkingbun run security- Run security audit
bun run test- Run unit tests (Vitest)bun run test:watch- Run unit tests in watch modebun run test:e2e- Run end-to-end tests (Playwright)bun run test:e2e:dev- Run E2E tests in UI modebun run test:e2e:report- View Playwright test report
Unit tests are written with Vitest and React Testing Library:
# Run tests once
bun run test
# Run tests in watch mode
bun run test:watchEnd-to-end tests use Playwright and run against Chrome, Firefox, and Safari:
# Run E2E tests
bun run test:e2e
# Run E2E tests with UI
bun run test:e2e:dev
# View test report
bun run test:e2e:reportThis project uses several tools to maintain code quality:
- ESLint - JavaScript/TypeScript linting
- Stylelint - CSS linting
- Prettier - Code formatting
- TypeScript - Type checking
- Husky - Git hooks
- lint-staged - Run linters on staged files
- commitlint - Conventional commit messages
All checks run automatically on commit via git hooks.
Run security audits on dependencies:
bun run securityAnalyze the production bundle size:
bun run analyzeThis opens an interactive visualization of the bundle composition.
-
Build the production bundle:
bun run build
-
Start the production server:
bun run start
The project is optimized for deployment on Vercel, which is the recommended platform for Next.js applications.
This is a personal project by Mateo Olarte.