A premium, high-performance portfolio website for Simon Foster, a Technical Leader and Full-Stack Engineer. Built with a modern, minimalist aesthetic and optimised for speed and responsiveness.
- Responsive Design: Fluid layout that adapts seamlessly to desktop, tablet, and mobile devices.
- Accessibility (A11y): WCAG AA compliant with full ARIA landmark support, "Skip to Content" links, and high-contrast
:focus-visiblestates. - Micro-Animations: Sophisticated CSS-native staggered reveal effects for a high-end, synchronous user experience.
- Modern Tech Stack: Leveraging Vite for high-performance builds and Tailwind CSS v4 for a cutting-edge CSS architecture.
- Premium Glassmorphism: High-fidelity design with saturated glassmorphic cards and dynamic, animated background gradients.
- UK English Standard: Localised throughout for regional consistency and professional clarity.
- SEO Optimised: Includes semantic HTML, meta descriptions, and structured data for maximum search engine visibility.
- Framework: Vite
- Styling: Tailwind CSS v4
- Logic: Vanilla JavaScript (ES Module)
- Testing: Playwright & Axe-core
- Animations: CSS Transitions & JavaScript Intersection Observer API
├── dist/ # Production build output
├── public/ # Static assets (images, favicon, etc.)
├── src/ # Project source files (if applicable)
├── index.html # Main entry point and site structure
├── index.css # Global styles and Tailwind configuration
├── main.js # Core client-side logic and animations
├── vite.config.js # Vite configuration
└── package.json # Project metadata and dependencies
-
Clone the repository:
git clone <repository-url> cd simonfoster
-
Install dependencies:
npm install
Run the development server:
npm run devThe site will be available at http://localhost:5173.
Generate the production-ready assets in the dist folder:
npm run buildPreview the production build locally:
npm run previewThis project is pre-configured with a unified CI/CD pipeline in .github/workflows/deploy.yml.
- Push to GitHub: Push your local changes to a new repository.
- Enable GitHub Actions Deployment:
- Go to your repository Settings.
- Navigate to Pages in the sidebar.
- Under Build and deployment > Source, select "GitHub Actions" instead of "Deploy from a branch".
- Automatic Updates: Every time you push to the
mainbranch, your tests will run. If they pass, the site will automatically redeploy.
This project includes a professional-grade automated testing suite to ensure high uptime and accessibility standards.
# Run all smoke and functional tests
npm run test
# Run the automated accessibility audit (WCAG AA)
npm run test:accessibility- Smoke Tests: Verifies that hero content, experience cards, and all main sections are present.
- Navigation: Confirmed section-scrolling and deep-linking via URL hashes.
- External Links: Safety check for all social links (
rel="noopener noreferrer"). - Accessibility: Continuous automated audits for contrast, semantic roles, and landmarks.
© 2026 Simon Foster. All rights reserved.