Skip to content
peda-cosPublic

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

76 Commits

Folders and files

Repository files navigation

This project was created by Pedro Monteiro

Portfolio

Personal portfolio and resume website for Pedro Monteiro, a Full-Stack Engineer based in São Paulo, Brazil. Hosted on GitHub Pages.

Description

A static, bilingual (Portuguese BR / English) resume site built with plain HTML and CSS, generated by a small Node script (scripts/build.js) from a single content source (src/content.js). No frontend frameworks and no external runtime dependencies — the build output is plain static files served as-is. The only development dependencies are Playwright (for end-to-end tests) and serve (for local preview).

Design Rationale

  • Plain HTML/CSS over frameworks: The site is content-driven and has a single navigational concern (language switching via a plain link). A framework runtime adds unnecessary bytes and complexity for this use case.
  • Minimal build step: A dependency-free Node script renders both locales from src/content.js into public/. Generated HTML is not versioned; CI builds it, keeping deployed output deterministic and the source of truth single.
  • Self-hosted assets: Fonts, favicon, and Open Graph image are stored locally under public/assets/ so the site has no third-party requests.
  • File-based i18n: Two static HTML pages (/ for pt-BR, /en/ for English) share a single CSS file.

Architecture

scripts/
└── build.js            # Static page generator (no dependencies)
src/
└── content.js          # Single source of truth for both locales
public/
├── index.html          # Portuguese (default locale) — generated
├── en/
│   └── index.html      # English locale — generated
├── assets/
│   ├── css/
│   │   └── main.css    # Site-wide stylesheet and design tokens
│   └── fonts/          # Self-hosted subsetted WOFF2 fonts
├── favicon.svg
├── og-image.png
├── robots.txt
└── sitemap.xml

Instructions

Prerequisites

  • Node.js >= 24.16.0 (for the build script, Playwright E2E tests, and local preview)
  • npm (bundled with Node.js)

Install

npm install

Development / Preview

npm run build    # regenerate public/index.html and public/en/index.html
npm run dev      # build, then serve public/ → http://localhost:4321

E2E Tests

npm run test:e2e

Playwright starts a local static server automatically and runs the test suite.

CI/CD

  • CI (.github/workflows/ci.yml): installs Playwright dependencies, caches browsers, and runs E2E tests on every push / pull request to main.
  • Deploy (.github/workflows/deploy.yml): runs the build and uploads the generated public/ to GitHub Pages after CI succeeds on main, or on manual workflow_dispatch.

Resources

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages