Trevor D. Martin’s career site — a single-page résumé/portfolio built with Next.js, exported to static HTML, and hosted on GitHub Pages under the custom domain trevordmartin.com.
output: "export")No backend, no database, no CMS. Every piece of content is plain data in
src/data/.
You should never need to touch a component to update your résumé. Two files hold everything:
src/data/site-config.tsYour identity, contact info, social links, nav items, and a couple of site-wide toggles (like the “open to opportunities” pill).
src/data/resume.tsTyped arrays for experience, skills, certifications, projects, and
education. To add, remove, or reorder an entry, edit the array — the page
re-renders automatically. Each type is documented in the file.
Note: the MasTec entry in experience is a placeholder (search the
file for [Add) — job title, dates, location, and bullets still need to be
filled in. Until you do, the site shows a small “Placeholder — edit
src/data/resume.ts” badge on that entry so it can’t be mistaken for real
content.
The header and hero “Résumé” buttons link to /resume.pdf. Drop your résumé
PDF at public/resume.pdf (same filename) and the links will work — nothing
else to configure. If you’d rather link elsewhere (e.g. a Google Drive
link), change resumeFile in site-config.ts.
Every color in the site is a CSS variable defined once at the top of
src/app/globals.css, under :root. Change a value there — e.g. --accent
— and it updates everywhere that color is used. Same idea for fonts, defined
a little further down in the @theme inline block.
npm install
npm run dev
Visit http://localhost:3000.
To produce the static build locally (the same output GitHub Pages will serve):
npm run build
This writes fully static HTML/CSS/JS to ./out. You can preview that exact
output with any static file server, e.g.:
npx serve out
This repo includes .github/workflows/deploy.yml, which builds the site and
publishes ./out to GitHub Pages automatically on every push to main.
Push this repo to GitHub (if you haven’t already):
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/TheTrevorM/<repo-name>.git
git push -u origin main
Enable GitHub Pages with the Actions source. In the repo on GitHub: Settings → Pages → Build and deployment → Source, choose GitHub Actions. (Not “Deploy from a branch” — the workflow handles that itself.)
Push to main. The “Deploy to GitHub Pages” workflow runs
automatically (check the Actions tab for progress). Once it finishes,
your site is live at https://<username>.github.io/<repo-name>/ — that
default URL is temporary until the custom domain is connected in the next
step.
The repo already includes public/CNAME containing trevordmartin.com, so
every build ships that file as part of the static export — this is what
tells GitHub Pages which custom domain to serve.
In your domain registrar’s DNS settings, add these records at the
apex (root) domain, trevordmartin.com:
| Type | Host | Value |
|---|---|---|
| A | @ | 185.199.108.153 |
| A | @ | 185.199.109.153 |
| A | @ | 185.199.110.153 |
| A | @ | 185.199.111.153 |
These are GitHub Pages’ standard apex IPs. If your registrar supports
ALIAS or ANAME records instead of (or in addition to) A records,
those work too — point them at <username>.github.io.
Optionally, also add a www subdomain so www.trevordmartin.com
redirects to the apex:
| Type | Host | Value |
|---|---|---|
| CNAME | www | TheTrevorM.github.io |
In the repo on GitHub: Settings → Pages → Custom domain, enter
trevordmartin.com and save. GitHub will verify DNS (this can take
anywhere from a few minutes to a few hours to propagate).
Once DNS is verified, check Enforce HTTPS in the same settings panel. GitHub provisions a free TLS certificate automatically — this can also take a little while after the domain first verifies.
Re-check the live site at https://trevordmartin.com once HTTPS is
enforced.
Once set up, deploying an update is just:
git add .
git commit -m "Update experience section"
git push
The workflow rebuilds and republishes automatically — no manual deploy step.
src/
app/
layout.tsx Root layout, fonts, page metadata
page.tsx Assembles all sections in order
globals.css Design tokens (colors, fonts) + base styles
components/ One file per section (Hero, Experience, Skills, ...)
data/
site-config.ts Identity, contact, nav, social links
resume.ts Experience, skills, certifications, projects, education
public/
CNAME Custom domain for GitHub Pages
.nojekyll Tells GitHub Pages not to run Jekyll (needed for Next.js's _next/ output)
resume.pdf ← add this yourself
.github/workflows/
deploy.yml Build + deploy to GitHub Pages on push to main