A clean, modern, and highly interactive personal portfolio built with Next.js, Sanity CMS, and Tailwind CSS.
- Next.js App Router: Fast, optimized, and modern web application framework.
- Tailwind CSS: Beautifully styled, responsive, and customizable user interface.
- Sanity CMS: Headless content management for blogs, projects, and site data.
- Dark Mode: Fully supported light and dark themes using
next-themes. - SEO Optimized: Dynamic metadata and structured data for better search ranking.
- Analytics: Integrated with Umami for privacy-focused tracking.
- Syntax Highlighting: Beautiful code blocks using React Refractor.
- Framework: Next.js
- Styling: Tailwind CSS
- Content Management: Sanity.io
- Deployment: Vercel
- Analytics: Umami
- Icons: React Icons
Follow these instructions to set up the project locally on your machine.
Make sure you have Bun installed as your package manager.
git clone https://github.com/Deekshith-goud/Deekshith-Portfolio.git
cd Deekshith-Portfoliobun installRename the .env.example file to .env.local:
mv .env.example .env.localThe minimal variables required to boot this project locally are:
NEXT_PUBLIC_SANITY_PROJECT_IDNEXT_PUBLIC_SANITY_DATASETNEXT_PUBLIC_SANITY_API_VERSION
To populate the portfolio with your own data, you need a Sanity project:
bun create sanity@latest -- --template clean --create-project "My Portfolio" --dataset production- Follow the prompts to create an account and configure the studio.
- Once created, open your Sanity studio folder, grab the
projectIdfromsanity.config.ts, and add it to your.env.localfile along with the dataset name (usuallyproduction). - Set
NEXT_PUBLIC_SANITY_API_VERSIONto the current date (e.g.,YYYY-MM-DD).
(Note: If you plan to use an access token, generate one from the Sanity manage dashboard and add it to your .env.local as well).
bun devVisit http://localhost:3000 to view your site. Note: The site might appear empty initially. To add your own data, visit your embedded studio at http://localhost:3000/studio.
Here is a list of commands you can run to manage the project locally:
bun run dev: Starts the development server.bun run build: Builds the app for production (runs linting first).bun run start: Starts the production server.bun run lint: Runs ESLint to find and fix code style issues.bun test: Runs the Jest test suite.bun run test:watch: Runs Jest tests in watch mode for active development.
Want to dive deeper into the codebase? Check out the Project Structure Guide for a comprehensive breakdown of the application architecture.
Contributions, issues, and feature requests are welcome. Feel free to check the issues page. If you're contributing, please read our Contributing Guidelines first.
This project is MIT licensed.
Feel free to fork and use this repository as inspiration. If you do, a link back to the original source (deekshith-goud.vercel.app) in your footer would be greatly appreciated.