Personal portfolio & projects site built with Next.js and Tailwind CSS — demonstrates project listings, README rendering, and GitHub integrations.
This repository is the source code for codershubinc.tech — a portfolio site showcasing open-source work, project READMEs, and project details pulled from GitHub.
It uses Next.js (App Router), Tailwind CSS, and the GitHub REST API to fetch and render project content. The site converts Markdown to styled HTML and renders structured file trees and file counts for each project.
- Project list fetched from GitHub repos for
codershubinc. - Styled, server-rendered README content with custom Tailwind typography variants.
- File tree parsing (slash-style or ASCII) and file extension counts with language color badges.
- Small API endpoints for supporting content rendering (README fetch/proxy, streak stats, and a Quazaar README test endpoint).
- Server-only utilities and client components for a fast, modern UI.
- Next.js (App Router)
- React (Server & Client components)
- Tailwind CSS + Typography plugin
- marked for Markdown parsing
- TypeScript
- Vitest for unit tests
Install dependencies
pnpm install
# or: npm install
# or: bun installDevelopment server
pnpm dev
# or: npm run dev
# or: bun devBuild & start
pnpm build
pnpm startOpen http://localhost:3000 to view locally.
Run the tests with
pnpm testSome GitHub routes detect the presence of GITHUB_TOKEN to increase rate limits. Set it in your environment when developing or building:
export GITHUB_TOKEN=ghp_... # or set through your environment managerThis project includes a few helpful API routes used in the site and for local development:
GET /api/readme?repo=owner/repo— fetch repository README (raw & rendered HTML), caches locally in/tempfor convenience.GET /api/streak?user=codershubinc— proxiesgithub-readme-streak-statsJSON output.GET /api/quazaar-readme— returns an example Quazaar README rendered as HTML (used for testing markdown rendering).
src/app/ — Next.js pages and server components (e.g. projects/)
src/lib/ — application libraries (api/gh/ and utils/)
src/components/ — React UI components (client side)
src/data/ — static or example data used for demo
Contributions are welcome. To keep the repo clean, please open an issue first for larger work and follow these steps:
- Fork and clone the repo
- Create a feature branch:
git checkout -b feat/your-feature - Make changes and add tests
- Submit a PR with a clear description of your work
src/lib/api/ghholds the GitHub integrations split into helpers for fetch and per-file operations.src/lib/utilsis a small, organized utility folder with anindex.tsbarrel to keep import lines compact.- If reusing components outside the site or under different domains, keep in mind the server-side fetch headers and rate limits.
This repo is licensed under the MIT License.
Made with ❤️ by Swapnil Ingle • @codershubinc
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.