A Discord-inspired portfolio website that turns your resume into an interactive chat experience. Built with Next.js, TypeScript, and Tailwind CSS.
- Discord-like Interface: Familiar Discord UI with channels, members list, and chat
- Interactive Chat: Talk to specialized AI bots about different aspects of the portfolio
- Responsive Design: Works seamlessly on desktop and mobile devices
- Real-time Interactions: Smooth animations and transitions
- AI Integration: Supports both OpenAI and local LLMs (Ollama)
- Resume-Driven: Automatically generates content from a JSON resume
- Node.js 18+
- npm or yarn
- OpenAI API key (or Ollama for local LLMs)
- Clone the repository:
git clone https://github.com/wagleanuj/discorfolio.git
cd discorfolio- Install dependencies:
npm install- Create a
.envfile based on.env.example:
VERCEL_RESUME_BLOB_URL= // production var
BLOB_READ_WRITE_TOKEN= // production var
OPENAI_API_KEY=
OPENAI_BASE_URL=
OPENAI_MODEL=
OPENAI_MAX_TOKENS=1000
OPENAI_TEMPERATURE=0.7
4. Add your resume:
- Update `.data/resume.json` with your information
- Follow the JSON Resume schema (resume-schema.json)
5. Run the development server:
```bash
npm run dev
Visit http://localhost:3000 to see your portfolio!
src/
├── app/ # Next.js app router
├── components/
│ ├── common/ # Reusable components
│ └── layout/ # Layout components
├── contexts/ # React contexts
├── lib/ # Utilities
└── types/ # TypeScript types
- Modify
tailwind.config.jsto change colors and styling - Update Discord-like components in the components directory
- Each channel has a dedicated bot with specific knowledge
- Customize bot personalities in
src/app/api/chat/route.ts
- Update
.data/resume.jsonfollowing the JSON Resume schema - Add new sections by modifying the channel structure
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Discord's beautiful UI
- Built with modern web technologies
- Uses the JSON Resume schema
For support, please open an issue in the GitHub repository.