A modern, responsive portfolio website with an integrated blog and AI-powered chatbot.
| Portfolio | sujeeth.io |
| Blog | blogs.sujeeth.io |
- AI chatbot powered by GPT for answering questions about my background and work
- Dark/Light theme with synced preferences across portfolio and blog
- Interactive particle background (mobile-optimized)
- Integrated blog with latest posts pulled into the portfolio homepage
- Resume page with downloadable PDF
- Fully responsive design
- Deployed globally on Cloudflare Pages via GitHub Actions
- Framework: React 18 + TypeScript
- Build: Vite
- Styling: Tailwind CSS + shadcn/ui
- Routing: React Router
- Animations: Custom CSS + Canvas API
- Framework: Astro
- Content: MDX
- Styling: Tailwind CSS
- Feed: RSS support
- Hosting: Cloudflare Pages
- CI/CD: GitHub Actions
- AI: OpenAI API (chatbot)
├── src/ # Portfolio (React)
│ ├── components/ # UI components, chatbot, particle background
│ ├── pages/ # Index, Resume
│ ├── data/ # Resume data
│ └── lib/ # Utilities, chatbot prompt
├── blog/ # Blog (Astro)
│ └── src/
│ ├── content/blog/ # MDX blog posts
│ ├── layouts/ # Page layouts
│ └── pages/ # Routes + RSS + API
└── .github/workflows/ # CI/CD pipelines
Requires Node.js & npm — install with nvm
# Portfolio
npm install
npm run dev
# Blog
cd blog
npm install
npm run devBoth sites auto-deploy to Cloudflare Pages on push to main.
Required repository secrets:
CLOUDFLARE_API_TOKEN— API token with Pages:Edit permissionsCLOUDFLARE_ACCOUNT_ID— Cloudflare account ID
MIT — feel free to use as a template. See LICENSE for details.