A modern, feature-rich portfolio website built with Next.js 15, showcasing projects, skills, and real-time development statistics from GitHub and WakaTime.
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: TailwindCSS 4 + Radix UI
- Charts: ECharts for data visualization
- Icons: Lucide Icons + React Icons
- API Integration: GitHub Contributions API + WakaTime API
- Package Manager: pnpm
friday/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ │ └── wakatime/ # WakaTime integration endpoints
│ ├── config/ # Configuration files
│ │ ├── achievement.ts # Achievements data
│ │ ├── experience.ts # Work experience data
│ │ ├── projects.ts # Project portfolio data
│ │ ├── techStack.ts # Technology stack data
│ │ └── socials.ts # Social links
│ ├── siteComponents/ # Main site components
│ └── Statistics/ # Statistics components (GitHub & WakaTime)
├── components/ # Reusable UI components
│ ├── kibo-ui/ # Custom UI components
│ └── ui/ # shadcn/ui components
├── types/ # TypeScript type definitions
└── public/ # Static assets
- Node.js 18+ or Bun
- pnpm (recommended) or npm/yarn
- Clone the repository:
git clone https://github.com/agayushh/Friday.git
cd Friday- Install dependencies:
pnpm install
# or
npm install
# or
yarn install- Set up environment variables:
Create a .env file in the root directory:
cp .env.example .envUpdate the .env file with your credentials:
# Base URL for API calls
NEXT_PUBLIC_BASE_URL=http://localhost:3000
# WakaTime API Key (get from https://wakatime.com/settings/api-key)
WAKATIME_API_KEY=your_wakatime_api_key_here- Run the development server:
pnpm dev
# or
npm run dev
# or
yarn dev- Open your browser:
Visit http://localhost:3000 to see your portfolio!
Edit the configuration files in app/config/:
info.ts- GitHub username and basic infopersonInfo.ts- Personal details, email, contactexperience.ts- Work experience and educationprojects.ts- Project showcasetechStack.ts- Skills and technologiesachievement.ts- Awards and achievementssocials.ts- Social media links
- Update
app/globals.cssfor global styles - Customize Tailwind config in
postcss.config.mjs - Modify component styles directly in TSX files
GET /api/wakatime/stats- Fetch coding statisticsGET /api/wakatime/summaries- Fetch daily summaries
Note: Data is cached for 1 hour (3600 seconds) using Next.js ISR
# Build the application
pnpm build
# Start production server
pnpm start- Push your code to GitHub
- Import your repository on Vercel
- Add environment variables in Vercel dashboard
- Deploy!
This is a standard Next.js app and can be deployed to:
- Netlify - Guide
- AWS Amplify - Guide
- Docker - Build your own container
- Self-hosted - Using
pnpm startafter building
- ✅ All API keys stored in environment variables
- ✅
.envfiles excluded from git - ✅ Server-side API routes for sensitive operations
- ✅ No hardcoded credentials
Contributions, issues, and feature requests are welcome!
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Ayush Agarwal
- Website: agayush.me
- Email: agayush088@gmail.com
- GitHub: @agayushh
- Currently: Building Oclea
- Next.js - The React Framework
- Vercel - Deployment platform
- WakaTime - Coding statistics
- GitHub - Contribution tracking
- shadcn/ui - UI components
⭐ Star this repo if you find it helpful!