Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Emmanuel-Mtz-777/My-Personal-Portfolio/llms.txt

Use this file to discover all available pages before exploring further.

Running the portfolio on your own machine is straightforward. Because the project is a fully static Astro site with no external backend, all you need is Node.js 18 or later and the pnpm package manager. Once those prerequisites are in place, three commands take you from a fresh clone to a live hot-reloading dev server.

Setup

1

Clone the repository

Pull the source code from GitHub and navigate into the project directory:
git clone https://github.com/Emmanuel-Mtz-777/My-Personal-Portfolio.git
cd My-Personal-Portfolio
2

Install dependencies

Install all project dependencies. pnpm is recommended because the project ships a pnpm-lock.yaml lockfile, but npm and yarn work too:
pnpm install
3

Start the dev server

Launch the Astro development server with hot module replacement:
pnpm dev
The site will be available at http://localhost:4321. The Spanish version loads at / and the English version at /en/. Any changes you make to source files are reflected instantly in the browser without a full page reload.

Available Commands

All commands are run from the project root:
CommandAction
pnpm devStarts the local dev server at localhost:4321 with HMR
pnpm buildBuilds the production site to ./dist/
pnpm previewServes the production build locally so you can verify it before deploying
pnpm astro ...Run any Astro CLI command, e.g. astro add, astro check, astro info
Run pnpm astro check at any time to typecheck the entire project — including .astro component files — using Astro’s TypeScript language server. This is especially useful before opening a pull request or cutting a production build.

Project Structure

The repository follows Astro’s conventional layout with a few portfolio-specific additions:
/
├── public/
│   ├── docs/          # CV PDFs (ES and EN)
│   └── favicon.ico
├── src/
│   ├── assets/        # Images, SVGs, project screenshots
│   ├── components/    # Astro + React components
│   ├── langs/         # en.json, es.json content files
│   ├── layouts/       # Layout.astro (HTML shell)
│   ├── pages/         # index.astro (ES), en/index.astro (EN)
│   ├── styles/        # CSS files
│   └── utils/         # Data files and analytics helpers
├── astro.config.mjs
└── package.json
Key directories to know:
  • src/langs/ — All user-facing text lives here. Edit es.json to update Spanish content and en.json for English. No component changes are required for copy updates.
  • src/components/ — Reusable Astro and React components, including section components (Hero, Experience, Projects, Stack, Education, AboutMe) and layout pieces (Header).
  • src/pages/ — Astro’s file-based router. index.astro renders the Spanish site; en/index.astro renders the English site using the same components but a different locale prop.
  • src/layouts/Layout.astro — The HTML shell shared by every page. It includes the <head> SEO tags, the dark gradient background, and the analytics component.
Spanish is the default locale. When Astro builds the site, src/pages/index.astro (with lang="es") is served at /, and src/pages/en/index.astro (with lang="en") is served at /en/. This is configured in astro.config.mjs via the i18n.defaultLocale: "es" option.

Build docs developers (and LLMs) love