A modern, responsive portfolio website built with Astro, TailwindCSS, and TypeScript. This portfolio showcases my projects, skills, and experience as a Software Engineer.
- Astro - Static site generator
- TailwindCSS - Utility-first CSS framework
- React - For interactive components
- TypeScript - Type-safe JavaScript
Make sure you have the following installed:
- Clone the repository:
git clone https://github.com/ansrDev/web-portofolio.git
cd web-portofolio
- Install dependencies:
pnpm install
- Start the development server:
pnpm dev
- Open your browser and visit
http://localhost:4321
# Start development server
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm preview
# Run Astro CLI commands
pnpm astro
portofolio/
├── public/ # Static assets (images, icons, etc.)
│ ├── favicon.ico
│ ├── logo.webp
│ └── ...
├── src/
│ ├── assets/ # Project assets
│ │ └── projects/
│ ├── components/ # Reusable components
│ │ ├── ui/ # UI components (buttons, cards, etc.)
│ │ ├── Button.astro
│ │ ├── CardProject.astro
│ │ └── TextFollowPath.tsx
│ ├── contents/ # Content data
│ │ └── projects/
│ │ └── project.json
│ ├── layouts/ # Page layouts
│ │ └── main.astro
│ ├── lib/ # Utility functions
│ │ └── utils.ts
│ ├── pages/ # Route pages
│ │ └── index.astro
│ └── styles/ # Global styles
│ ├── global.css
│ └── component.css
├── astro.config.mjs # Astro configuration
├── tailwind.config.js # TailwindCSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json
- Add project images to
src/assets/projects/
- Update
src/contents/projects/project.json
with your project details:
{
"projects": [
{
"name": "Your Project Name",
"description": "Project description",
"image": "assets/projects/your-project/image.webp",
"links": {
"github": "https://github.com/yourusername/project",
"live": "https://yourproject.com"
},
"techStack": ["React", "TypeScript", "TailwindCSS"]
}
]
}
Edit the content in src/pages/index.astro
:
- Update the name and description in the hero section
- Modify the header title
- Update footer information
- Global styles:
src/styles/global.css
- Component styles:
src/styles/component.css
- TailwindCSS utilities: Used throughout components
pnpm build
The built files will be in the dist/
directory, ready for deployment to any static hosting service.
- Vercel: Connect your GitHub repo for automatic deployments
- Netlify: Drag and drop the
dist/
folder or connect via Git - GitHub Pages: Use GitHub Actions for automated deployment
- Cloudflare Pages: Connect your repository for edge deployment
The portfolio is fully responsive with breakpoints:
- Mobile:
< 768px
- Tablet:
768px - 1024px
- Desktop:
> 1024px
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This project is open source and available under the MIT License.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Muhammad Ansari - @ansrDev
Star this repository if you found it helpful!