My personal blog and portfolio website built with Next.js, featuring internationalization, modern development practices, and comprehensive documentation of architectural decisions.
This is my personal website where I share my thoughts, experiences, and technical insights. The project showcases modern web development practices with a focus on performance, accessibility, and maintainability.
- Internationalization: Support for Portuguese (Brazil) and English
- Responsive Design: Mobile-first approach with TailwindCSS
- Performance: Optimized with Next.js SSR/SSG and Vercel Edge Network
- Testing: Comprehensive test coverage with Jest and Testing Library
- Analytics: User behavior insights with Microsoft Clarity
- SEO: Optimized for search engines with proper meta tags and sitemap
- Dark Mode: Theme switching with next-themes
- MDX: Rich content with MDX for blog posts
- Framework: Next.js 15+ with App Router
- Styling: TailwindCSS v4+
- Language: TypeScript
- Internationalization: next-intl
- Testing: Jest + Testing Library
- Deployment: Vercel
- Monitoring: Sentry
- Analytics: Microsoft Clarity
- Code Quality: ESLint + Prettier
- Node.js 18+
- Yarn or npm
-
Clone the repository
git clone https://github.com/gabrielduete/gabrielduete.com.git cd gabrielduete.com -
Install dependencies
yarn install # or npm install -
Run the development server
yarn dev # or npm run dev -
Open your browser Navigate to http://localhost:3000
yarn dev- Start development serveryarn build- Build for productionyarn start- Start production serveryarn lint- Run ESLintyarn format- Format code with Prettieryarn test- Run testsyarn test:coverage- Run tests with coverage
This project follows the Architecture Decision Records (ADRs) pattern to document important architectural decisions made during development. Each ADR captures the context, decision, and consequences of significant choices.
ADRs help maintain a clear record of why certain technologies and patterns were chosen, making it easier for future developers (including yourself) to understand the reasoning behind architectural decisions.
- ADR Directory - Individual ADR files with detailed explanations
- Blog Post - English - Full blog post with all ADRs
- Blog Post - Portuguese - pt-br version
- ADR-001: Next.js as Main Framework
- ADR-002: TailwindCSS for Styling
- ADR-003: Next-intl for Internationalization
- ADR-004: ESLint + Prettier for Code Quality
- ADR-005: Jest for Testing
- ADR-006: Codecov for Test Coverage
- ADR-007: Sentry for Error Monitoring
- ADR-008: GitHub Actions for CI/CD
- ADR-009: Microsoft Clarity for Analytics
- ADR-010: Vercel for Deploy and Hosting
- ADR-011: GitHub Projects for Tazsk Management
- ADR-012: AI: GitHub Copilot + Cursor
- ADR-013: Project Folder Structure
Contributions are welcome! Here's how you can help:
- Use the Issues tab
- Provide clear description and steps to reproduce
- Include screenshots if applicable
- Open a new issue with the "enhancement" label
- Describe the feature and its benefits
- Consider the project's scope and goals
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the existing code style
- Add tests for new functionality
- Update documentation if needed
- Run tests and linting
yarn test yarn lint - Commit your changes
git commit -m "Add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Code Style: Follow ESLint and Prettier configurations
- Testing: Maintain test coverage above 80%
- Documentation: Update ADRs for architectural changes
- Commits: Use conventional commit messages
- Branching: Use feature branches for new work
- Blog Posts: Submit new posts in both English and Portuguese
- Translations: Help improve existing translations
- Documentation: Enhance project documentation
This project is open source and available under the MIT License.
- Website: gabrielduete.com
- Blog: gabrielduete.com/blog
- GitHub: github.com/gabrielduete
- LinkedIn: linkedin.com/in/gabrielduete
Made with hardwork by Gabriel Duete