Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/lgomegarc/mi-portfolio/llms.txt

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

This guide walks you through everything needed to run Mi Portfolio on your local machine. By the end you’ll have cloned the repository, installed all dependencies, and be viewing the site at http://localhost:5173 with hot-module replacement enabled.

Prerequisites

Before you begin, make sure you have the following installed:
  • Node.js 18 or later — SvelteKit requires Node 18+. Check your version with node -v.
  • A package manager — npm (bundled with Node), pnpm, or yarn all work.
  • Git — needed to clone the repository.

Quick Start

1

Clone the repository

Clone the Mi Portfolio source from GitHub and navigate into the project directory:
git clone https://github.com/lgomegarc/mi-portfolio.git
cd mi-portfolio
2

Install dependencies

Install all project dependencies (devDependencies included — they are required for the build):
npm install
3

Start the development server

Launch the Vite-powered SvelteKit dev server with live reload:
npm run dev
The terminal will print a local URL — typically http://localhost:5173. Open it in your browser to see the portfolio.
Run npm run check after making changes to catch TypeScript and Svelte type errors early.

Available Scripts

All scripts are defined in package.json and executed via your package manager of choice.
ScriptCommandDescription
devvite devStarts the Vite development server with HMR at localhost:5173.
buildvite buildCompiles a production-optimised build using @sveltejs/adapter-vercel.
previewvite previewServes the production build locally for final pre-deploy verification.
checksvelte-kit sync && svelte-check --tsconfig ./tsconfig.jsonRuns the SvelteKit sync step then type-checks all .svelte and .ts files.
check:watchsvelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watchSame as check but stays active and re-checks on every file save.
formatprettier --write .Auto-formats the entire codebase using Prettier (with Svelte and Tailwind plugins).
lintprettier --check . && eslint .Verifies formatting and runs ESLint across all source files.

Environment Setup

The EmailJS credentials (serviceID, templateID, and publicKey) are currently hardcoded as plain strings inside src/lib/components/ContactSection.svelte. These values are publicly visible in client-side JavaScript. Anyone who forks or deploys this project should move them to environment variables to avoid unintended usage of their EmailJS account quotas.
The relevant lines in ContactSection.svelte look like this:
const serviceID = 'service_iqfu8xj';
const templateID = 'template_gcnd671';
const publicKey = 'd0tRwp_1AOxLyJWbS';
For any production fork, replace these hardcoded values with Vite environment variables. Create a .env file in the project root (add it to .gitignore) with the following keys:
VITE_EMAILJS_SERVICE_ID=your_service_id
VITE_EMAILJS_TEMPLATE_ID=your_template_id
VITE_EMAILJS_PUBLIC_KEY=your_public_key
Then update ContactSection.svelte to read from the environment at runtime:
const serviceID  = import.meta.env.VITE_EMAILJS_SERVICE_ID;
const templateID = import.meta.env.VITE_EMAILJS_TEMPLATE_ID;
const publicKey  = import.meta.env.VITE_EMAILJS_PUBLIC_KEY;
On Vercel, set these same keys under Project Settings → Environment Variables so they are injected at build time.

Build docs developers (and LLMs) love