jamescarty.co.uk
JC

Site History

Documenting progress since June 2016 - from an S3 bucket to a multi-site ecosystem.


2026

Vercel Paradigm Shift Mailgun Cloudflare GitHub Linear

6th April 2026

Added this history page. Reskinned from the old site's timeline into the current design system. Added back-bar navigation to the dashboard.

1st April 2026

Dashboard goes dynamic - live API endpoint fetching from GitHub, Linear and Vercel in parallel, replacing the static data.json. CDN caching via Cache-Control headers. Added Build Tracker section to portfolio linking to dashboard.

25th March 2026

Security fixes. Added Cloudflare Turnstile verification to the portfolio contact form and blog login/register pages.

19th March 2026

Blog (projects.jamescarty.co.uk) deployed. Flask app on Vercel with Neon PostgreSQL. Reskinned to match Paradigm Shift design system - mint accent, Raleway + Source Sans Pro, dark mode.

17th March 2026

Site rebuilt on Vercel

Complete migration from S3/CloudFront to Vercel. New Paradigm Shift template replacing Bootstrap. Mailgun contact form. Vercel Analytics and Speed Insights added. First PR merged same day.

2025

AWS Tetris AI

19th July 2025

Added two projects. Tetris: deployed on AWS via GitHub Actions CI/CD, functionally tested by an AI bot built with Claude Code and Gemini. AI Training: concept site testing AI-driven research and content creation using Claude, Gemini, Gamma, and Synthesia.

2024

Bootstrap 4 GitHub Actions jQuery 3

28th November 2024

Added various draft pages to the projects section. All completed - just needed publishing in a repo.

20th November 2024

First pass at a new Projects page with sidebar filtering and articles rendered from Markdown documents.

New projects page

new projects page

19th November 2024

Added draft project pages for the Website Deployment GitHub Action and using IaC to build the website on K8S with Azure or AWS.

15th November 2024

Created initial project page template that renders from Markdown files. Tested by porting the old Contact Form project write-up into the new format.

13th November 2024

Updated Google Analytics to v4 (old version deprecated). Fixed GitHub Action for S3 sync and published it to the GitHub Marketplace.

12th November 2024

History page redesigned

New timeline style with search functionality, image placement, and lightbox. Split JS into modular files for better maintainability.

History page redesign

history page redesign

9th November 2024

Changed main page to flip boxes instead of linking to the old Tools page. Required the Bootstrap 4 upgrade to work.

Flip box update

flip boxes

7th November 2024

Jenkins to GitHub Actions

Replaced Jenkins CI/CD pipeline with GitHub Actions. OIDC auth to AWS, S3 file sync, CloudFront invalidation.

1st-5th November 2024

Updated Bootstrap to v4 across all pages. Fixed navbar anchor link issues. Split header and footer into shared components. Updated history page header graphic.

31st October 2024

Patched jQuery to 3.x - old version had known CVEs. Updated footer for the new year. Start of a big burst of activity after years of quiet.

2022

5th January 2022

Updated footer to reflect the new year.

2021

23rd December 2021

Updated Lambda function to Python 3.9 - AWS deprecated 2.7 back in July. A few library changes made it trickier than expected. Updated homepage content for current Cisco role.

2019

9th January 2019

Updated the main page image to add some colour for 2019. Involved learning basic Adobe Illustrator. Changed copyright date across pages.

2019 colour update

2019 colour update

2017

Python reCAPTCHA London region

9th November 2017

Fixed Ajax code to stop the contact form resetting under certain circumstances.

6th April 2017

Added site to Google search and index. Modified contact form return field to appear above reCAPTCHA box.

5th April 2017

Server-side reCAPTCHA verification

Added server-side verification to Google reCAPTCHA. Required changes to jQuery, JSON output, API Gateway config, and Lambda function to call Google's verification API. Updated Bootstrap to 3.3.7.

20th March 2017

Recreated Lambda contact form function in Python 2.7 (was Node.js). Migrated Lambda and API Gateway to the new London region (eu-west-2). Updated tools page to include Python.

2016

S3 CloudFront Lambda Route 53 Jenkins

15th December 2016

Migrated website to the new AWS London region. More effort than planned - had to recreate S3 buckets, update Route 53, and modify CloudFront elements.

14th December 2016

Updated homepage to reflect new role at Cisco.

11th-12th November 2016

Updated header, footer and menu links to use root-relative paths for subdirectory support. Verified IPv6 connectivity.

7th October 2016

Added AAAA record in Route 53 and IPv6-enabled CloudFront in anticipation of Route 53 supporting IPv6.

1st August 2016

Jenkins CI/CD and reCAPTCHA

Set up Jenkins for automated deployment from local Git branches. Created dev branch, updated S3 sync scripts with exclusions. Added Google reCAPTCHA to the contact form with client-side validation before API Gateway submission.

27th July 2016

Added return-to-top button to improve mobile experience.

9th-12th July 2016

Created S3 test subdomain and Route 53 zone for release testing. Published Contact Form code to GitHub. Updated Tools page. Removed some ScrollReveal animations.

7th July 2016

Started using Git for version control. Completed Udacity's "How to Use Git and GitHub" course. Created local repository with baseline commit.

28th June 2016

Created SSL certificate and enabled HTTPS with CloudFront.

19th-24th June 2016

Updated contact form jQuery/AJAX to clear after submission and return status. Configured email hosting on the domain registrar and created MX records in Route 53. Enabled Google Analytics. Created Tools page. Updated CSS colour scheme.

Original learning section

original learning section

18th June 2016

Contact form works

The contact form finally works. AWS API Gateway + Lambda + SES. Took about a week of tinkering - HTML form, jQuery/AJAX, API Gateway with mapping template, Lambda to validate and call SES.

6th-8th June 2016

Migrated DNS to Route 53. Fixed navbar collapse on mobile anchor links. Updated ScrollReveal and jQuery to 3.x. Added this history page.

5th June 2016

Website boot

Initial website built in an afternoon using an HTML/CSS template. Hosted on AWS S3 with Route 53 for DNS. Contact form broken by design - S3 only serves static content. Shipped it MVP fashion.