Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/santiagonieto09/portafolio/llms.txt

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

This guide walks you through cloning the repository, installing dependencies, wiring up environment variables, and launching the development server. The whole process takes under five minutes on a modern machine. Once the server is running you will see a fully server-rendered portfolio page populated with live data from the GitHub REST API — no mocks, no fixtures.

Prerequisites

Make sure the following tools are available on your system before you begin:
  • Bun 1.x (recommended) — used as the runtime, package manager, and test runner. Install from bun.sh.
  • Node.js 20+ — a supported alternative if you prefer npm/yarn/pnpm.
  • Git — required to clone the repository.
Rate limits: The portfolio works without any environment variables. However, GitHub’s unauthenticated REST API is limited to 60 requests per hour per IP address. For sustained local development or production deployment you should set a GITHUB_TOKEN to raise this limit to 5,000 requests per hour. See the Configuration guide for details.

Installation

1

Clone the repository

git clone https://github.com/santiagonieto09/portafolio.git && cd portafolio
2

Install dependencies

bun install
3

Configure environment variables

Copy the example environment file and open it in your editor:
cp .env.example .env
The file contains three optional variables:
VariablePurpose
GITHUB_TOKENAuthenticates GitHub API requests, raising the rate limit from 60 to 5,000 req/hr
CRON_SECRETProtects the /api/public/sync cache-refresh endpoint from unauthorized callers
SITE_URLCanonical base URL used in sitemap.xml and Open Graph metadata
See the Configuration guide for the full description of each variable, token scopes, and cron scheduling examples.
4

Start the development server

bun run dev
The Vite dev server starts with full HMR support. Open http://localhost:5173 in your browser to view the portfolio.On the first load the server will make a burst of parallel requests to the GitHub REST API to populate the snapshot cache. Subsequent page loads within the cache TTL (one week) are served instantly.

Available Scripts

All scripts are defined in package.json and can be run with either bun run or npm run:
ScriptDescription
bun run devStarts the Vite development server with hot module replacement
bun run buildCompiles a production build using the Vercel Nitro preset by default
bun run build:devCompiles a development build (source maps, no minification)
bun run previewServes the production build locally so you can verify the output before deploying
bun run lintRuns ESLint across all src/ files and reports violations
bun run formatFormats all source files in-place with Prettier
bun run testRuns the full Vitest test suite once and reports pass/fail results

What You’ll See

After the dev server boots and the initial GitHub data is fetched, the portfolio page renders the following sections from top to bottom:
  • Profile Hero — Your GitHub avatar, display name, bio, location, and follower/following counts, supplemented by links to all detected social accounts (Twitter/X, LinkedIn, etc.).
  • Stats Grid — Four summary tiles showing total public repositories, cumulative star count across all repos, total fork count, and total release count.
  • Language Chart — An interactive doughnut chart visualising the distribution of programming languages across your repositories, weighted by byte count and colour-coded with GitHub’s official language palette.
  • Repository Explorer — A filterable and sortable card grid of all your public repositories. Filter by language, sort by stars, forks, or last-updated date, and click through to the repository on GitHub.
  • Activity Feed — A chronological list of your most recent public GitHub events (pushes, pull requests, issues, releases) pulled from the /events/public endpoint.
Set GITHUB_TOKEN in your .env to a Personal Access Token (classic). No OAuth scopes are required — all data fetched by the portfolio (profile, repositories, events) is publicly accessible, and it is the token itself rather than any attached scope that raises the GitHub API rate limit from 60 requests per hour to 5,000 requests per hour. This is essential in production where multiple visitors or cron jobs may trigger cache refreshes.

Build docs developers (and LLMs) love