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.
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
-
Install dependencies:
cd src npm install -
(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.
-
Start development server:
npm run dev
-
Build for production:
npm run build
-
Lint code:
npm run lint
-
Format code:
npm run format
To verify formatting without changing files, run
npm run format:check. The same check runs in CI.
Before running a live Product Owner -> Orchestrator -> Developer test, validate the workflow contract locally from the repository root:
node scripts/validate-delivery-contract.mjsThis 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.
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}fromsitemap.xml) return200withtext/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) return200with 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, or200with custom fallback markers).
- 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.
| 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 |