Skip to content

ianalloway/ian-web-forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

253 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ian-web-forge

Matrix-themed developer portfolio — ML, sports analytics, AI agents.

Live Site CI License: MIT React TypeScript Vite

Features

  • Matrix rain — Canvas-based digital rain effect with HiDPI/retina support
  • Terminal aesthetic — Monospace typography, green-on-black, scanline glow
  • Selected work — Filterable project showcase (Sports ML, AI Agents, MLOps, Tools, Web3)
  • Live demos — Kelly criterion calculator, odds converter, Streamlit app links
  • Agent tools — Copy-paste install commands for SOLVENT, juryrig, OpenClaw skills
  • Mobile-first — Responsive breakpoints, accessible navigation, reduced-motion support
  • Accessibility — WCAG AA contrast, ARIA landmarks, keyboard navigation, skip-to-content

Stack

  • Framework: React 19 + TypeScript + Vite
  • Styling: Tailwind CSS + shadcn/ui
  • Animation: Canvas 2D (MatrixRain), CSS transitions
  • Routing: React Router (lazy-loaded routes)
  • SEO: react-helmet-async, OpenGraph, structured data

Local development

git clone https://github.com/ianalloway/ian-web-forge.git
cd ian-web-forge
npm install
npm run dev      # http://localhost:8080
npm run build    # production build → dist/
npm run lint     # ESLint
npm test         # eslint . && tsc --noEmit

Content updates

Adding academic papers

  1. Add the PDF to /public/papers/ with a clean filename.
  2. Update the academicPapers array in src/pages/Index.tsx.
  3. Commit and deploy.

Newsletter form

The newsletter signup on the homepage submits directly to Netlify Forms (ianalloway-newsletter, declared as a hidden form in index.html) — no backend, no API keys, no environment variables.

Deployment

Netlify only (netlify.toml): builds with npm run build and publishes dist/, with a catch-all SPA rewrite to index.html so client-side routes like /now, /hireme, and /toolkit don't 404.

Notes

  • Keep the homepage current and minimal.
  • This repo should feel like a polished landing page, not a feature dump.

Built with ❤️ by Ian Alloway

About

Matrix-themed portfolio site — data science, AI, sports analytics. Testimonials, project showcase, live Substack RSS.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors