Repository navigation
Home
Welcome, This guide will help you understand, customize, and deploy your modern developer portfolio.
This is a modern, responsive portfolio website template designed for developers and creators. It provides a beautiful platform to showcase your work, skills, and experience.
π Live Demo: https://satya00089.github.io/portfolio
- β Ready to use - Fork and customize in minutes
- β Modern stack - React 19, TypeScript, Tailwind CSS 4
- β Unique features - CLI-style resume, animated skills
- β Easy customization - Single config file controls all content
- β Production ready - Optimized, responsive, accessible
- Grid and modal views for projects
- Markdown-powered project descriptions
- GitHub-flavored markdown styling
- Image galleries and live links
- Traditional resume page with print support
- Unique CLI-style terminal resume
- Interactive and engaging presentation
- Animated circular progress bars
- Categorized skill sets
- Visual proficiency indicators
- Dark and Light mode toggle
- Smooth theme transitions
- Persistent user preference
- Framer Motion powered
- Scroll-triggered effects
- Page transitions
- Mobile-first approach
- Works on all screen sizes
- Touch-friendly interactions
- Interactive contact form
- Social media links
- Professional presentation
- Optimized builds with Vite
- Fast page loads
- Smooth scrolling with progress indicator
React 19 β Modern UI library
TypeScript β Type-safe JavaScript
Vite β Lightning-fast build tool
React Router DOM β Client-side routing
Tailwind CSS 4 β Utility-first CSS
Framer Motion β Animation library
Lucide React β Beautiful icons
React Icons β Extended icon library
GitHub Markdown CSS β Markdown styling
React Markdown β Render markdown content
React Circular Progressbar β Skill visualizations
React Scroll β Smooth scrolling
portfolio/
β
βββ public/ # Static assets
β βββ preview-home.png # Homepage preview
β βββ preview-cli.png # CLI resume preview
β
βββ src/
β βββ components/ # React components
β β βββ shared/ # Reusable components
β β β βββ Header.tsx
β β β βββ Footer.tsx
β β β βββ ProjectModal.tsx
β β β βββ ...
β β βββ resume/ # Resume components
β β βββ ResumeHeader.tsx
β β βββ CLIResume.tsx
β β βββ ...
β β
β βββ pages/ # Page components
β β βββ PortfolioPage.tsx
β β βββ ResumePage.tsx
β β
β βββ config/ # Configuration
β β βββ portfolioData.ts # π― MAIN CONFIG FILE
β β
β βββ context/ # React contexts
β β βββ ThemeContext.ts # Theme state management
β β
β βββ types/ # TypeScript definitions
β β βββ index.ts
β β
β βββ App.tsx # Root component
β βββ main.tsx # Entry point
β
βββ package.json # Dependencies
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ tsconfig.json # TypeScript configuration
| File | Purpose |
|---|---|
src/config/portfolioData.ts |
MOST IMPORTANT - All your content |
src/context/ThemeContext.ts |
Theme logic and state |
tailwind.config.js |
Styling customization |
vite.config.ts |
Build and deployment config |
Before you begin, ensure you have:
- β Node.js (v18 or higher) - Download here
- β npm or yarn - Comes with Node.js
- β Git - Download here
- β A code editor (VS Code recommended)
Option A: Use as Template (Recommended)
- Click the "Use this template" button on GitHub
- Create your repository
- Clone your new repo:
git clone https://github.com/YOUR-USERNAME/YOUR-REPO-NAME.git
cd YOUR-REPO-NAMEOption B: Direct Clone
git clone https://github.com/satya00089/portfolio.git my-portfolio
cd my-portfolionpm installnpm run devNavigate to: http://localhost:5173
You should see the portfolio running! π
Open src/config/portfolioData.ts and update:
export const personalInfo = {
name: "Your Name",
title: "Your Title",
bio: "Your bio...",
email: "your.email@example.com",
location: "Your Location",
// ... more fields
};export const socialLinks = {
github: "https://github.com/yourusername",
linkedin: "https://linkedin.com/in/yourusername",
twitter: "https://twitter.com/yourusername",
// ... add/remove as needed
};In the same file, update the projects array:
export const projects: Project[] = [
{
id: "1",
title: "Your Project Name",
description: "Short description",
longDescription: `
# Project Title
Full description in **Markdown** format.
## Features
- Feature 1
- Feature 2
`,
technologies: ["React", "TypeScript", "Tailwind"],
imageUrl: "/path/to/image.png",
githubUrl: "https://github.com/...",
liveUrl: "https://...",
category: "web"
},
// Add more projects...
];export const skills = {
"Frontend": [
{ name: "React", level: 90 },
{ name: "TypeScript", level: 85 },
// ...
],
"Backend": [
{ name: "Node.js", level: 80 },
// ...
],
// Add more categories...
};export const experience = [
{
title: "Your Position",
company: "Company Name",
period: "2023 - Present",
description: "What you did...",
technologies: ["Tech1", "Tech2"]
},
// ...
];
export const education = [
{
degree: "Your Degree",
school: "School Name",
period: "2019 - 2023",
description: "Details..."
},
// ...
];Replace images in the public/ folder:
- Add project screenshots
- Update preview images
- Use descriptive filenames
Edit tailwind.config.js:
module.exports = {
theme: {
extend: {
colors: {
// Add your brand colors
primary: '#your-color',
secondary: '#your-color',
},
},
},
};The theme system supports:
- π Dark mode (default)
- βοΈ Light mode
- πΎ Persistent user preference
File: src/context/ThemeContext.ts
// Modify theme logic here
export const ThemeProvider = ({ children }: { children: ReactNode }) => {
const [theme, setTheme] = useState<'light' | 'dark'>('dark');
// ...
};File: src/components/ThemeProvider.tsx
Apply theme classes and transitions.
File: tailwind.config.js
export default {
darkMode: 'class',
theme: {
extend: {
// Add custom styles
fontFamily: {
sans: ['Your Font', 'sans-serif'],
},
animation: {
'custom': 'custom 2s ease-in-out',
},
},
},
};File: package.json
{
"homepage": "https://YOUR-USERNAME.github.io/YOUR-REPO-NAME"
}File: vite.config.ts
export default defineConfig({
base: '/YOUR-REPO-NAME/',
// ...
});npm run deployYour site will be live at: https://YOUR-USERNAME.github.io/YOUR-REPO-NAME
- Click:
- Connect repository
- Configure build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
- Deploy!
- Add
CNAMEfile inpublic/with your domain - Configure DNS with your provider
- Go to domain settings in dashboard
- Add your custom domain
- Follow DNS configuration instructions
# Clear cache and restart
npm run dev
# Press Ctrl+Shift+R in browser to hard refresh# Clean install
rm -rf node_modules package-lock.json
npm install
npm run buildCheck vite.config.ts - ensure base matches your repo name:
base: '/your-repo-name/'- Use relative paths:
/images/project.png - Ensure images are in
public/folder - Check file names match exactly (case-sensitive)
# Build and preview production version
npm run build
npm run preview| Command | Description |
|---|---|
npm run dev |
Start development server at localhost:5173
|
npm run build |
Create production build in dist/ folder |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint to check code quality |
npm run deploy |
Deploy to GitHub Pages |
Contributions are welcome! Here's how:
- Fork the repository
-
Create a feature branch:
git checkout -b feature/AmazingFeature -
Commit changes:
git commit -m 'Add AmazingFeature' -
Push to branch:
git push origin feature/AmazingFeature - Open a Pull Request
Found a bug or have an idea? Open an issue
This project is open source under the MIT License.
You are free to:
- β Use commercially
- β Modify
- β Distribute
- β Use privately
Satya Subudhi
- π GitHub: @satya00089
- π§ Email: satyasubudhi089@gmail.com
- πΌ LinkedIn: Connect with me
- β Use high-quality project screenshots
- β Write clear, concise descriptions
- β Keep skills up-to-date
- β Add live demo links when possible
- β Test on multiple devices
- β Optimize images before uploading
- β Use semantic HTML
- β Keep dependencies updated
- β
Update meta tags in
index.html - β Add descriptive titles
- β Use proper heading hierarchy
- β Include alt text for images
If this project helped you, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting features
- π€ Contributing code
Built with β€οΈ using React + TypeScript + Vite
Last updated: December 2025