Portfolio website. Built with Next.js 16, React 19, and TypeScript.
- Bun >= 1 (recommended) and Node.js >= 24
-
Clone the repository
git clone https://github.com/mateoolarte/website.git cd website -
Install dependencies
bun 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
- UI Components: Radix UI (accessible primitives)
- Icons: Phosphor Icons
- Internationalization: next-intl
- 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 Oxlint and Stylelintbun run lint:js- Run Oxlint onlybun run lint:js:fix- Run Oxlint and auto-fix issuesbun run lint:css- Run Stylelint onlybun run format- Format code with Oxfmtbun run format:check- Check code formattingbun run type-check- Run TypeScript type checkingbun run security- Run security audit
This project uses several tools to maintain code quality:
- Oxlint - Fast JavaScript/TypeScript linting (Rust-based), with native React, Next.js, TypeScript, and Unicorn rules
- Stylelint - CSS linting
- Oxfmt - Code formatting (Rust-based, Prettier-compatible)
- 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.