Static SvelteKit public career-data, publication, and rendering surface for Nicko O'Brien, focused on AI-forward IT operations, technical communication, automation, resume projections, and selected evidence highlights.
The website is a simple publication and rendering machine: it serves structured canonical data, human-readable routes, and document artifacts. It is built as a fully prerendered static site with @sveltejs/adapter-static.
This repository is the deployed public website and publication surface for structured professional material. It renders first-class consumer artifacts from structured source data and approved publication assets.
The site presents canonical career data, stated skills, employment history, professional confidence areas, evidence nodes, reviewed resume projections, static resume PDFs, and discovery files for human and machine consumers.
Future job-description-to-resume generation belongs to the private repo/API engine. This public website remains the user-owned publication and rendering surface for approved career-data and resume artifacts.
The canonical JSON surface is the structured public representation of the user's stated professional claims, evidence framing, and publication choices.
It describes stated skills, experiences, professional confidence areas, evidence nodes, resume projections, publication artifacts, routes, and discovery metadata. It gives machine consumers a stable structured entry point into the same public professional material that the human routes and document artifacts present.
The site is organized around three first-class consumer surfaces: machine/AI, human reader, and PDF/document.
Machine-readable surfaces are built for machine ingestion and machine interaction. This broad consumer class includes AI assistants, parsing systems, generation systems, recruiter systems, ATS systems, search systems, and future machine consumers.
Primary machine/discovery surfaces:
/canonical.json/llms.txt/sitemap.xml/robots.txt
Human-readable routes are built for human ingestion. This broad consumer class includes the site owner, recruiters, hiring managers, collaborators, students, reviewers, and other readers.
Primary human surfaces:
//resumes/resumes/it-support/resumes/technical-operations/resumes/ai-process- highlight/evidence routes
PDF and document artifacts are formal publication surfaces. This broad consumer class covers recruiter workflows, application workflows, compliance/reference workflows, offline review, archival use, and other document-consumer contexts.
Primary document artifacts:
- resume PDFs in
static/resumes/
Machine/discovery routes:
/canonical.json/llms.txt/sitemap.xml/robots.txt
Resume routes:
/resumes/resumes/it-support/resumes/technical-operations/resumes/ai-process
Resume publication artifacts:
static/resumes/Nicholas_OBrien_Resume_IT_Support.pdfstatic/resumes/Nicholas_OBrien_Resume_Technical_Operations.pdfstatic/resumes/Nicholas_OBrien_Resume_AI_Process.pdf
Highlight/evidence routes:
/highlights/ai-governance/highlights/website-publication/highlights/endpoint-remediation/highlights/package-redesign
- SvelteKit 2
- Svelte 5
- Vite 7
- TypeScript
@sveltejs/adapter-static
Machine/discovery surface:
src/lib/canonical/build-canonical.tsBuilds the structured canonical JSON payload from public content modules.src/routes/canonical.json/+server.tsServes the canonical JSON route.src/lib/site.tsDefines canonical origin, sitemap route inputs, and URL helpers.src/routes/sitemap.xml/+server.tsServes the sitemap from route and artifact metadata.static/llms.txtGives machine consumers the preferred discovery entry point.static/robots.txtPublishes crawl and sitemap discovery hints.
Human reader surface:
src/routes/+page.svelteLanding page assembly for the interactive homepage.src/routes/resumes/+page.svelteResume projection index and artifact access route.src/routes/resumes/[projection]/+page.tsLoads reviewed resume projection documents for static projection routes.src/routes/resumes/[projection]/+page.svelteRenders individual resume projection routes.src/lib/components/resume/ResumeDocumentView.svelteRenders structured resume projection content for the public HTML surface.src/routes/highlights/*/+page.svelteHuman-readable evidence highlight routes.
Structured public content:
src/lib/content/person-profile.tsPublic profile and link model assembled from approved public content.src/lib/content/resume.tsPublic resume/profile content used by resume routes and reviewed projection documents.src/lib/content/resume-projections.tsActive resume projection registry and publication artifact paths.src/lib/content/resume-documents.tsReviewed resume projection document structures consumed by the public renderer.src/lib/content/evidence-nodes.tsPublic evidence nodes and disclosure framing.src/lib/content/practice-areas.tsPublic practice/confidence area model.
PDF/document surface:
static/resumes/Reviewed resume PDF publication artifacts.
Install dependencies:
npm ciStart the development server:
npm run devRun Svelte and TypeScript checks:
npm run checkCreate a production build:
npm run buildPreview the production build locally:
npm run previewResume PDFs are reviewed static publication artifacts in static/resumes/:
static/resumes/Nicholas_OBrien_Resume_IT_Support.pdfstatic/resumes/Nicholas_OBrien_Resume_Technical_Operations.pdfstatic/resumes/Nicholas_OBrien_Resume_AI_Process.pdf
Public resume routes render reviewed projection content and link to those document artifacts.
The website renders first-class consumer artifacts from structured source data and approved publication assets.
For changes affecting public surfaces:
- Run
npm run check. - Run
npm run build. - Run
npm run preview. - Preview human routes, including resume and highlights/evidence routes.
- Verify machine/discovery surfaces:
/canonical.json,/llms.txt,/sitemap.xml, and/robots.txt. - Verify publication artifact links for resume PDFs.
- Verify hashes where artifact integrity matters.
The repository currently declares:
.nvmrc:22package.jsonengines:node >=22.12.0
This is the repository-declared Node requirement.
Local validation was also completed successfully on Node 24.14.1 on April 15, 2026:
npm cinpm run checknpm run build
Use Node 22 for local development that matches the repository-declared requirement. The Node 24 result above is a historical validation note rather than a standing compatibility guarantee.
The repository is configured for static deployment with these build settings:
- Build command:
npm run build - Build output directory:
build
The app uses @sveltejs/adapter-static and prerender = true, so deployment is based on generated static files rather than a Node server runtime.
- The site uses explicit CSP settings in
svelte.config.js. - Styling is primarily hand-authored CSS rather than utility-first Tailwind markup. Tailwind remains in the toolchain through
src/routes/layout.cssfor its imported base behavior. - UX changes should preserve the reader-first navigation patterns already in place and document the reason for any replacement.