A modern and fast web application for searching and viewing GitHub user profiles along with their repositories.
This project provides a beautiful and user-friendly interface for searching GitHub profiles. Users can search for people by username and view complete profile information including bio, followers, repositories, and other details.
- Next.js 16 - React framework for server-side rendering and static site generation
- React 19 - UI library with React Compiler capability
- TypeScript - For type safety and better developer experience
- Chakra UI v3 - Modern component library with theming support
- Emotion - CSS-in-JS for styling
- next-themes - Light/dark theme management
- React Icons - Diverse icon collection
- Biome - Fast linter and formatter for code quality
This project uses GitHub REST API v3 to fetch data:
GET /search/users- Search users with various filtersGET /users/{username}- Get complete user profile informationGET /users/{username}/repos- Get list of user's public repositories
- π Real-time GitHub user search with debouncing
- π€ Display complete profile information (avatar, bio, location, followers, following, etc.)
- π¦ List of public repositories with details (stars, forks, programming language)
- π Pagination for repositories
- π Light and dark mode support
- β‘ Server-Side Rendering and ISR for improved performance
- β‘ Streaming rendering for faster page loads
- π¨ Responsive and beautiful design
- πΎ Data caching for improved speed
- π³ Docker support
Before running the project, make sure you have one of the following installed:
- Node.js version 20 or higher
- One of the package managers: pnpm (recommended), npm, or yarn
- Docker Desktop or Docker Engine
- Docker Compose (optional)
git clone https://github.com/matintohidi/github-profile-finder.git
cd github-profile-finderWith pnpm (recommended):
pnpm installWith npm:
npm installWith yarn:
yarn install# With pnpm
pnpm dev
# With npm
npm run dev
# With yarn
yarn devThe project will be available at http://localhost:3000.
Build the project:
# With pnpm
pnpm build
# With npm
npm run build
# With yarn
yarn buildRun the production version:
# With pnpm
pnpm start
# With npm
npm start
# With yarn
yarn startTo check Docker status:
docker --version
docker psgit clone https://github.com/matintohidi/github-profile-finder.git
cd github-profile-finderdocker build -t github-profile-finder .docker run -p 3000:3000 github-profile-finderOr using Docker Compose (if you have a docker-compose.yml file):
docker-compose upThe project will be available at http://localhost:3000.
# Find Container ID
docker ps
# Stop Container
docker stop <container-id>github-profile-finder/
βββ src/
β βββ app/ # App Router (Next.js 14+)
β β βββ (home)/ # Home page and search
β β βββ profile/ # User profile pages
β β βββ layout.tsx # Main layout
β β βββ globals.css # Global styles
β βββ components/ # Shared components
β β βββ header/ # Site header
β β βββ input/ # Input components
β β βββ ui/ # Chakra UI components
β βββ configs/ # Settings and configurations
β βββ interfaces/ # TypeScript Interfaces
β βββ theme/ # Chakra UI theme settings
β βββ types/ # Type Definitions
βββ public/ # Static files
βββ Dockerfile # Docker configuration
βββ next.config.ts # Next.js configuration
βββ tsconfig.json # TypeScript configuration
βββ biome.json # Biome configuration
βββ package.json # Dependencies and scripts
# Run development server
pnpm dev / npm run dev / yarn dev
# Build for production
pnpm build / npm run build / yarn build
# Run production server
pnpm start / npm start / yarn start
# Check code quality (Linting)
pnpm lint / npm run lint / yarn lint
# Format code
pnpm format / npm run format / yarn formatThis project uses a simple Direct to Main strategy:
- β
All changes are pushed directly to the
mainbranch - β No use of Feature Branches
- β Solo Development
- Small Project Size: This is a small personal project
- Single Developer: Only one person is working on the project
- Simplicity: No need for the complexities of Git Flow or Feature Branches
- Development Speed: Enables faster development without additional overhead
β οΈ Note: For team projects or larger codebases, using strategies like Git Flow, GitHub Flow, or Trunk-Based Development is recommended.
Matin Tohidi
- GitHub: @matintohidi
- GitHub API for providing free and public API
- The Next.js team for the amazing framework
- The Chakra UI team for beautiful and functional components
β If you found this project useful, please give it a star!