Skip to content

Repository files navigation

Personal Website

Welcome! This repository contains the source code for my personal website: www.loganfarci.com.

This site is the central entrypoint to my online presence and the content I share. Here, you'll find my latest articles, technical notes, and resources, as well as a comprehensive overview of my professional profile—including work experience, education, and certifications.

Prerequisites

Note

This project includes a pre-configured  devcontainer  for fast onboarding and consistent development environments. Don't know how to use it? Check the VS Code tutorial.

Before you begin, ensure you have the following tools installed on your workstation:

  • Node.js (v18+ recommended): JavaScript runtime for running and building the app. Download Node.js
  • npm (comes with Node.js): Package manager for JavaScript.
  • Terraform (v1.5+ recommended): Infrastructure as code tool for provisioning Azure resources. Install Terraform
  • Azure CLI: Command-line tool for managing Azure resources. Install Azure CLI
  • Docker: (Optional, for local container builds) Install Docker

Getting Started

  1. Install dependencies:

    cd src
    npm install
  2. (Optional) Configure environment variables:

    Copy the example environment file and customize it if needed:

    cp .env.local.example .env.local

    The application works out of the box with default values. Environment variables are only needed if you want to customize paths or run in special configurations.

  3. Start development server:

    npm run dev
  4. Build for production:

    npm run build
  5. Lint code:

    npm run lint
  6. Format code:

    npm run format

    To verify formatting without changing files, run npm run format:check. The same check runs in CI.

Agent workflow validation

Before running a live Product Owner -> Orchestrator -> Developer test, validate the workflow contract locally from the repository root:

node scripts/validate-delivery-contract.mjs

This dependency-free check verifies the agent profiles, approval and dispatch boundaries, independent main-based Developer branches, publication preconditions, and the two-cycle quality-gate repair policy. It does not access GitHub or create sessions, branches, or pull requests. Run one minimal live test after an App-runtime or credential-boundary change.

Smoke tests (deployment validation)

Run smoke tests from src/ against a deployed URL:

npm run smoke -- https://<your-swa-hostname>

You can also pass the hostname without protocol and the script normalizes it:

npm run smoke -- <your-swa-hostname>

What the smoke checks validate:

  • HTML routes (/, /about, /articles, and one discovered /articles/{slug} from sitemap.xml) return 200 with text/html.
  • Prerendered HTML content exists in <main> or #root (not blank output).
  • SEO metadata exists on HTML routes: non-empty <title>, <meta name="description">, canonical <link>, og:title, og:description, and JSON-LD.
  • Machine files (/sitemap.xml, /robots.txt, /llms.txt, /llms-full.txt) return 200 with expected content-types and file-specific markers (to reject HTML fallback pages).
  • A random unknown route serves the custom not-found fallback page (status 404, or 200 with custom fallback markers).

Further reading

  • Repository specs — source-of-truth specs for architecture, quality bars, data contracts, content style, and non-goals.
  • Analytics — Azure Application Insights setup, cost guardrails, and how to disable telemetry.
  • Lighthouse accessibility checks — run the accessibility gate locally and download CI reports.

Technology stack

Name Description Type Link
Vite Build tool bundling the React SPA, with a custom SSR + prerender step for static HTML Web Vite
React JavaScript library for building user interfaces Web React
TypeScript Typed superset of JavaScript Web TypeScript
Tailwind CSS Utility-first CSS framework for rapid UI development Web Tailwind CSS
shadcn/ui + Radix UI Local component primitives with accessible Radix behavior Web shadcn/ui
Azure Static Web Apps Azure service for hosting static web applications Cloud Azure Static Web Apps
Terraform Infrastructure as Code tool for provisioning cloud resources IaC Terraform
Azure CLI Command-line tool for managing Azure resources Cloud Azure CLI
GitHub Actions CI/CD platform for automating workflows and deployments CI/CD GitHub Actions

About

Personal website.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages