Welcome to my personal portfolio website, built with Astro and Tailwind CSS. This project highlights my work, skills, and experience in web development and design.
/
βββ public/
β βββ img/
βββ src/
β βββ components/
β β βββ common/
β β βββ layout/
β β βββ sections/
β βββ icons/
β β βββ About.astro
β β βββ App.astro
β β βββ Back-End.astro
β β βββ Code.astro
β β βββ CSS.astro
β β βββ Download.astro
β β βββ Front-End.astro
β β βββ GitHub.astro
β β βββ H1.astro
β β βββ ...
β βββ layouts/
β β βββ Layout.astro
β βββ pages/
β β βββ index.astro
β βββ env.d.ts
βββ astro.config.mjs
βββ tailwind.config.mjs
βββ tsconfig.json
βββ package.json
βββ README.md
- Astro: Static site builder
- Tailwind CSS: Utility-first CSS framework
- TypeScript: Type safety
- Fontsource: Self-hosted fonts
- Vercel: Deployment platform
- Clone the repository:
git clone https://github.com/Obskurath/portfolio-dev.git cd portfolio-dev - Install dependencies:
npm install
Start the development server:
npm run dev
The site will be available at http://localhost:4321.
Build the project for production:
npm run build
This generates static assets in the dist directory.
Preview the production build locally:
npm run preview
- Common Components: Reusable elements located in the
commonfolder. - Layout Components: Layout elements in the
layoutfolder. - Sections: Various page sections in the
sectionsfolder.
Located in src/components/swiper/:
- ProjectsSwiper.astro: Main swiper component that displays project cards
- ProjectCard.astro: Individual project card component
- projects.ts: Project data configuration
// Example [projects.ts] structure:
export const projects = [
{
title: "SoundHub Discord Bot",
description: "A feature-rich Discord bot that plays music from YouTube.",
image: "/img/soundhub.png",
github: "https://github.com/yourusername/soundhub"
},
// ...more projects
];SVG icons like:
About.astroGitHub.astroLinkedIn.astro
The main page, index.astro, imports various sections:
import Layout from "@layouts/Layout.astro";
import HomeSection from "@components/sections/HomeSection.astro";
import AboutMeSection from "@components/sections/AboutMeSection.astro";
import SkillsSection from "@components/sections/SkillsSection.astro";
import ProjectsSection from "@components/sections/ProjectsSection.astro";
import ContactSection from "@components/sections/ContactSection.astro";- Tailwind CSS: Configured in
tailwind.config.mjs. - Fonts: Using IBM Plex Mono and Ubuntu via
@fontsource.
Deployed on Vercel, with automatic deployments triggered by pushes to the main branch.
Check for:
- Missing Props: Ensure all required props are passed to components.
- Unused Imports: Remove any unused imports.
- Type Errors: Run
astro checkto find and fix TypeScript issues.
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Builds the production site to dist |
npm run preview |
Previews the build locally before deploying |
npm run astro ... |
Runs Astro CLI commands |
npm run astro -- --help |
Displays help for the Astro CLI |
- Email: EduardoVG@proton.me
- GitHub: Obskurath
- LinkedIn: Eduardo Valencia
Special thanks to Johann Leon for the design.
This project is open-source and available under the MIT License.
