https://github.com/tedawf/tedawf.com
My personal site built with Next.js
https://github.com/tedawf/tedawf.com
developer-portfolio nextjs personal-blog personal-portfolio personal-site personal-website portfolio portfolio-page portfolio-project portfolio-site portfolio-website shadcn-ui tailwindcss
Last synced: 5 months ago
JSON representation
My personal site built with Next.js
- Host: GitHub
- URL: https://github.com/tedawf/tedawf.com
- Owner: tedawf
- License: mit
- Created: 2024-09-05T16:33:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-28T19:48:14.000Z (6 months ago)
- Last Synced: 2025-12-31T11:15:56.089Z (6 months ago)
- Topics: developer-portfolio, nextjs, personal-blog, personal-portfolio, personal-site, personal-website, portfolio, portfolio-page, portfolio-project, portfolio-site, portfolio-website, shadcn-ui, tailwindcss
- Language: TypeScript
- Homepage: https://tedawf.com
- Size: 23.4 MB
- Stars: 56
- Watchers: 2
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Agents: AGENTS.md
Awesome Lists containing this project
README
# My Personal Portfolio
A clean, minimal portfolio website built with Next.js, Tailwind CSS, and Shadcn UI. Features an AI chatbot, email contact form, and blog.
> The main branch is where I experiment with new ideas. If you want a stable, ready-to-use version, check out the [v1.0.0 release](https://github.com/tedawf/tedawf.com/releases/tag/v1.0.0).
## Live Demo
🌐 Check it out here: **[tedawf.com](https://tedawf.com)**

## Features
- Minimal design with Shadcn UI
- Light/dark mode toggle
- AI chatbot (Ted Support) trained on my portfolio content - please be nice to it! 😊
- Contact form with email integration
- Responsive mobile design
- Blog section
## Tech Stack
### v1.0.0
- Next.js
- Tailwind CSS
- Shadcn UI
- OpenAI API (chatbot)
- Vercel (hosting)
- AstraDB (vector storage)
- Upstash (caching)
- Resend (email)
### Main branch
- Next.js
- Tailwind CSS
- Shadcn UI
- OpenAI API (chatbot)
- Vercel (hosting)
- Resend (email)
- Postgres + pgvector (vector storage)
- Obsidian + LiveSync plugin (CMS)
- CouchDB (document storage)
## Getting Started
```bash
git clone https://github.com/tedawf/tedawf.com my-portfolio
cd my-portfolio
git checkout tags/v1.0.0
npm install
cp .env.example .env.local
# add your API keys to .env.local
npm run dev
```
## Environment Variables
See .env.example
### On-demand blog revalidation
This repo caches blog pages for performance. To see edits immediately after the FastAPI/CouchDB pipeline updates a post, set `REVALIDATE_SECRET` and call the revalidation endpoint from the backend:
```bash
# Revalidate blog index + a specific post page
curl -X POST 'http://localhost:3000/api/revalidate?secret=MY_SECRET' \
-H 'content-type: application/json' \
-d '{"slug":"my-post-slug"}'
# Revalidate only the blog index (no body)
curl -X POST 'http://localhost:3000/api/revalidate?secret=MY_SECRET'
```
## Customization
- Update personal info in `src/data/*.json`
- Replace projects in `src/data/projects.json`
- Replace blog posts in `content/` or remove it.
- Replace your resume with `public/resume.pdf`
- Modify chatbot prompt in `src/app/api/chat/route.ts`
## Deployment
I prefer [Vercel](https://vercel.com/) for Next.js projects:
1. Push your fork to GitHub
2. Connect repo to Vercel
3. Add environment variables
4. Deploy 🎉
## Costs
- OpenAI API: ~$5
- Domain: ~$20/year
- Hosting/DB: Free tiers
## License
MIT
## Featured on YouTube
📺 **[Live Portfolio Review by Anthony Sistilli](https://www.youtube.com/watch?v=aUJiNyb3cvM&t=40s)** - Got reviewed live on his stream!
🔥 **[Started a trend?](https://youtu.be/ib-Nlg9qWBw?si=1atsKJyfYDXtFVnE&t=400)** - Apparently this portfolio design inspired others!
---
✨ Feel free to fork and make it your own! Would love to see what you guys do with it!
-- Ted