This is a submission for the World's Largest Hackathon Writing Challenge: Building with Bolt.
π‘ Prompt
The challenge was simple:
Create a landing page on GitHub where I can fill in the GitHub username, and click on search; the profile of the particular user should appear.
What followed was an exciting and seamless experience of building this project with the Bolt template.
π Project Overview
I built a GitHub Profile Finderβa sleek, responsive, and fully functional web app that allows users to search for any GitHub username and instantly view their public profile details including:
- Name
- Bio
- Avatar
- Followers & Following count
- Repositories
- Location
- Company
- And more!
All of this is powered by the GitHub REST API.
π οΈ Tech Stack
Framework: Vite + React
Styling: Tailwind CSS
Language: TypeScript
Linting: ESLint
API: GitHub REST API
Bolt template: Provided a clean foundation for development π
π Project Structure
Hereβs a peek at the file structure that kept things modular and scalable:
βββ public/
β βββ vite.svg # Vite logo
βββ src/
β βββ components/ # React components
β β βββ ErrorMessage.tsx # Error display component
β β βββ LoadingSpinner.tsx # Loading animation component
β β βββ SearchForm.tsx # User search form
β β βββ UserProfile.tsx # User profile display
β βββ services/ # API services
β β βββ githubApi.ts # GitHub API integration
β βββ types/ # TypeScript type definitions
β β βββ github.ts # GitHub user interface
β βββ App.tsx # Main application component
β βββ index.css # Global styles (Tailwind imports)
β βββ main.tsx # Application entry point
β βββ vite-env.d.ts # Vite type definitions
βββ index.html # HTML template
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
βββ README.md # Project documentation
β¨ Features
β
Live search for any GitHub username
β
Error handling for invalid users
β
Clean, responsive UI with Tailwind CSS
β
Loading spinner during API fetch
β
Modular file structure
π§ Challenges & Breakthroughs
While using Bolt, the AI model itself worked smoothly, but I did face a few friction points on the platform side:
π Google Sign-In Issues:
I tried signing up with Google twice, but both attempts failed. Eventually, I had to use my GitHub account to get started.
π» Browser Extension Glitches:
While AI was generating my project, my Phantom and MetaMask Chrome extensions kept popping up repeatedlyβeven though I wasnβt interacting with them at all. It disrupted the experience a bit. It might be that this error was due to my browser. Don't know.
These small bugs aside, once I was inside the workspace, everything worked as expected, and I was able to build and deploy my app with ease using github and netlify.
π§© Favorite Bolt Features
Bolt made it effortless to get started:
π₯ Vite + React + TS combo out of the box
π¨ Tailwind pre-configured
β ESLint and TypeScript ready
π§Ή Clean file organization
It saved hours of setup time and let me focus purely on building.
π» Code Highlight: GitHub API Integration
// src/services/githubApi.ts
import { GitHubUser } from '../types/github';
export const fetchGitHubUser = async (username: string): Promise<GitHubUser> => {
const response = await fetch(`https://api.github.com/users/${username}`);
if (!response.ok) {
if (response.status === 404) {
throw new Error('User not found. Please check the username and try again.');
} else if (response.status === 403) {
throw new Error('API rate limit exceeded. Please try again later.');
} else {
throw new Error('Failed to fetch user data. Please try again.');
}
}
return response.json();
};
π₯ Team
This was an individual submission, but shoutout to the DEV and Bolt teams for making this possible! π
πΈ Preview
Hereβs what the final product looks like:
π Try It Yourself
π GitHub Repo:
https://github.com/thecreativecoder07/github-profile-finder
π Live Demo:
https://github-profile-finderapp.netlify.app/
β€οΈ Final Thoughts
Building with Bolt was overall an exciting and smooth experience. I was able to go from idea to deployment in just a few hoursβexactly what a hackathon platform should offer.
Thanks for reading and happy building! β‘
β If you liked this content, you can support me by buying a coffee:
Top comments (0)