Skip to content

Commit 9d3ede0

Browse files
Merge pull request #34 from ThomasJButler/v3.5-CSS-Enhance-Final
V3.5 - Final Release
2 parents 7ef4481 + 19c722b commit 9d3ede0

File tree

353 files changed

+35247
-108130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

353 files changed

+35247
-108130
lines changed

.DS_Store

2 KB
Binary file not shown.

.eslintrc.json

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,44 @@
99
},
1010
"extends": [
1111
"eslint:recommended",
12-
"plugin:@typescript-eslint/recommended"
12+
"plugin:@typescript-eslint/recommended",
13+
"plugin:react/recommended",
14+
"plugin:react-hooks/recommended"
1315
],
14-
"plugins": ["@typescript-eslint"],
16+
"plugins": ["@typescript-eslint", "react", "react-hooks"],
17+
"settings": {
18+
"react": {
19+
"version": "detect"
20+
}
21+
},
1522
"env": {
1623
"browser": true,
1724
"es2020": true,
1825
"node": true
1926
},
2027
"rules": {
28+
"react/react-in-jsx-scope": "off",
29+
"react/prop-types": "off",
2130
"@typescript-eslint/no-explicit-any": "warn",
2231
"@typescript-eslint/explicit-module-boundary-types": "off",
23-
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
24-
"no-console": ["warn", { "allow": ["warn", "error"] }]
25-
}
32+
"@typescript-eslint/no-unused-vars": ["warn", {
33+
"argsIgnorePattern": "^_",
34+
"varsIgnorePattern": "^_|revealText|glitchInterval|hoverAnimation"
35+
}],
36+
"@typescript-eslint/no-unused-expressions": "warn",
37+
"no-console": ["warn", { "allow": ["warn", "error", "log"] }],
38+
"no-empty": "warn",
39+
"prefer-const": "warn",
40+
"no-alert": "off",
41+
"react-hooks/exhaustive-deps": "warn"
42+
},
43+
"ignorePatterns": [
44+
"dist/",
45+
"build/",
46+
"node_modules/",
47+
"*.config.js",
48+
"*.config.ts",
49+
"vite.config.js",
50+
"vitest.config.ts"
51+
]
2652
}

.github/workflows/deploy.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build-and-deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v3
15+
16+
- name: Setup Node.js
17+
uses: actions/setup-node@v3
18+
with:
19+
node-version: '18'
20+
cache: 'npm'
21+
22+
- name: Install dependencies
23+
run: npm ci
24+
25+
- name: Build
26+
run: npm run build
27+
28+
- name: Deploy to GitHub Pages
29+
run: npm run deploy
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/snake.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
steps:
2525
- name: Checkout repository
2626
uses: actions/checkout@v4
27+
with:
28+
fetch-depth: 0
2729

2830
- name: Generate GitHub Contribution Snake
2931
uses: Platane/snk/svg-only@v3
@@ -33,10 +35,11 @@ jobs:
3335
snake/github-contribution-grid-snake.svg
3436
snake/github-contribution-grid-snake-dark.svg?palette=github-dark
3537
36-
- name: Push to GitHub
37-
uses: EndBug/add-and-commit@v9
38-
with:
39-
new_branch: output
40-
add: 'snake'
41-
message: 'Generate contribution snake'
42-
default_author: github_actions
38+
- name: Push snake to output branch
39+
run: |
40+
git config --local user.email "[email protected]"
41+
git config --local user.name "GitHub Action"
42+
git checkout -B output
43+
git add snake/
44+
git commit -m "Generate contribution snake" || exit 0
45+
git push --force origin output

.gitignore

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,7 @@
2323
.DS_Store
2424
Thumbs.db
2525

26-
# Project specific
27-
/tommyprompts website
28-
/add to website
29-
CLAUDE.md
30-
/Website Video mp4 Banners
31-
3226
# Temporary files
3327
*.log
3428
*.tmp
3529
*.temp
36-
improvements.md
37-
animejssetup.md
38-
projectcheck.md
39-
v3.0-content-update-plan.md
40-
plan.md
41-
/.claude

README.md

Lines changed: 157 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,190 @@
1-
# 🌌 Thomas J Butler
2-
```
1+
# Thomas J Butler
2+
<div align="center">
3+
<pre>
34
███╗ ███╗ █████╗ ████████╗██████╗ ██╗██╗ ██╗
45
████╗ ████║██╔══██╗╚══██╔══╝██╔══██╗██║╚██╗██╔╝
56
██╔████╔██║███████║ ██║ ██████╔╝██║ ╚███╔╝
67
██║╚██╔╝██║██╔══██║ ██║ ██╔══██╗██║ ██╔██╗
78
██║ ╚═╝ ██║██║ ██║ ██║ ██║ ██║██║██╔╝ ██╗
89
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
9-
```
10+
</pre>
11+
</div>
1012

11-
**`Full-Stack Developer | AI Integration Specialist | York, UK 🇬🇧`**
13+
<div align="center">
1214

13-
[![Portfolio](https://img.shields.io/badge/Portfolio-thomasjbutler.me-00FF00?style=for-the-badge&logo=matrix&logoColor=black)](https://thomasjbutler.me)
14-
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/thomasbutleruk/)
15-
[![GitHub followers](https://img.shields.io/github/followers/ThomasJButler?style=for-the-badge&color=00FF00)](https://github.com/ThomasJButler)
16-
[![CodePen](https://img.shields.io/badge/CodePen-Follow-1e1e1e?style=for-the-badge&logo=codepen&logoColor=white)](https://codepen.io/thomasbutler)
17-
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Support-FFB000?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ojrwoqkgmv)
15+
**Full-Stack Web Developer | AI Engineer | York, UK**
16+
17+
[![Commercial Portfolio](https://img.shields.io/badge/Commercial%20Portfolio-thomasjbutler.me-006400?style=for-the-badge&logo=matrix&logoColor=white)](https://thomasjbutler.me)
18+
[![Personal Portfolio](https://img.shields.io/badge/Personal%20Portfolio-thomasjbutler.github.io-006400?style=for-the-badge&logo=matrix&logoColor=white)](https://thomasjbutler.github.io/ThomasJButler/)
1819

19-
<div align="center">
20-
21-
![Trophy](https://github-profile-trophy.vercel.app/?username=ThomasJButler&theme=matrix&no-frame=true&row=1&column=6)
2220

2321
</div>
2422

23+
<!-- Table of Contents -->
24+
- [About Me](#about-me)
25+
- [My Tech Stacks](#my-tech-stacks)
26+
- [Credentials & Specialisations](#credentials--specialisations)
27+
- [Focus Areas](#focus-areas)
28+
- [Featured Projects](#featured-projects)
29+
- [Get in Touch](#get-in-touch)
30+
2531
## About Me
2632

27-
Hey! I'm a **Full-Stack Developer** and **AI Integration Specialist** originally from Liverpool, and I'm genuinely passionate about **making technology more human**. You know that feeling when you use an app and it just feels natural? That's what I'm after.
33+
A Full-stack web developer and AI Engineer from York, UK.
2834

29-
I've got this slightly obsessive thing about building tech to empower people rather than replacing them. It has to be a joyful experience too.
30-
Whether I'm working on AI applications for neurodiversity support (which I'm really excited about) or creating those Matrix-themed interfaces, I'm always asking: "Will this actually make someone's day better? Is it safe and designed purely with the end user's UX in mind?"
35+
My passion is to build human orientated applications that feel natural and joyful to use, and empower humanity by harnessing the power of AI, by saving time and energy on day to day tasks.
3136

32-
I love the technical challenges too and solving problems with code but what really gets me up in the morning is knowing that something I built one day, may help someone feel more confident, more included, or just have a bit more fun with technology. In an AI world, it's more important than ever to build friendly tech to make life easier for humans.
37+
I'm currently focused on creating AI integrated systems, building ethical AI models, and Next.js/React web applications as a secure front-end.
3338

3439
<p align="center">
3540
<img width="1005" src="https://raw.githubusercontent.com/ThomasJButler/ThomasJButler/output/snake/github-contribution-grid-snake.svg" alt="snake"/>
3641
</p>
3742

38-
<div align="center">
39-
<img src="https://capsule-render.vercel.app/api?type=waving&color=00FF00&height=100&section=footer" width="100%" />
40-
</div>
41-
42-
## ⚡ My Tech Stacks & Credentials
43-
44-
### **Modern Web Stack**
45-
React | Vite | TypeScript | Supabase | Vercel | Tailwind
46-
47-
---
48-
49-
### **AI-Powered Applications, Automations, MCP**
50-
Python | Django | PostgreSQL | OpenAI API | Docker | AWS
51-
52-
---
53-
54-
### **Enterprise Solutions**
55-
C# | .NET | Azure | SQL Server | Umbraco | AWS
56-
57-
---
58-
59-
## **Qualifications**
60-
- AWS Qualified | Azure Qualified | Cisco Qualified | HubSpot Qualified
61-
- Level 4 Software Developer Apprenticeship (Completed 2024)
62-
- City & Guilds Level 2 ICT Systems Support (July 2025)
63-
- *Machine Learning: Mastering Generative AI & Agents* (Aug–Sep 2025)
64-
65-
---
66-
67-
## **Specialisations**
68-
- **AI Model Building** → custom models, LLM training, prompt engineering (weird hobby), performance testing
69-
- **Advanced CSS** → GSAP animations, 3D transforms, matrix effects
70-
- **Full-Stack Architecture** → end-to-end application development
71-
- **Cross-Platform Development** → Mac, Windows, iOS (currently learning)
72-
- **Automation** → n8n workflows + API integrations + MCP creation
73-
74-
---
75-
76-
## 📊 GitHub Statistics
43+
## My Tech Stacks
44+
45+
<table align="center">
46+
<tr>
47+
<td align="center" width="96">
48+
<img src="https://skillicons.dev/icons?i=react" width="48" height="48" alt="React" />
49+
<br>React
50+
</td>
51+
<td align="center" width="96">
52+
<img src="https://skillicons.dev/icons?i=typescript" width="48" height="48" alt="TypeScript" />
53+
<br>TypeScript
54+
</td>
55+
<td align="center" width="96">
56+
<img src="https://skillicons.dev/icons?i=vite" width="48" height="48" alt="Vite" />
57+
<br>Vite
58+
</td>
59+
<td align="center" width="96">
60+
<img src="https://skillicons.dev/icons?i=python" width="48" height="48" alt="Python" />
61+
<br>Python
62+
</td>
63+
<td align="center" width="96">
64+
<img src="https://skillicons.dev/icons?i=django" width="48" height="48" alt="Django" />
65+
<br>Django
66+
</td>
67+
<td align="center" width="96">
68+
<img src="https://skillicons.dev/icons?i=nodejs" width="48" height="48" alt="Node.js" />
69+
<br>Node.js
70+
</td>
71+
<td align="center" width="96">
72+
<img src="https://skillicons.dev/icons?i=dotnet" width="48" height="48" alt=".NET" />
73+
<br>.NET
74+
</td>
75+
<td align="center" width="96">
76+
<img src="https://skillicons.dev/icons?i=cs" width="48" height="48" alt="C#" />
77+
<br>C#
78+
</td>
79+
</tr>
80+
<tr>
81+
<td align="center" width="96">
82+
<img src="https://skillicons.dev/icons?i=postgresql" width="48" height="48" alt="PostgreSQL" />
83+
<br>PostgreSQL
84+
</td>
85+
<td align="center" width="96">
86+
<img src="https://skillicons.dev/icons?i=mongodb" width="48" height="48" alt="MongoDB" />
87+
<br>MongoDB
88+
</td>
89+
<td align="center" width="96">
90+
<img src="https://skillicons.dev/icons?i=supabase" width="48" height="48" alt="Supabase" />
91+
<br>Supabase
92+
</td>
93+
<td align="center" width="96">
94+
<img src="https://skillicons.dev/icons?i=docker" width="48" height="48" alt="Docker" />
95+
<br>Docker
96+
</td>
97+
<td align="center" width="96">
98+
<img src="https://skillicons.dev/icons?i=aws" width="48" height="48" alt="AWS" />
99+
<br>AWS
100+
</td>
101+
<td align="center" width="96">
102+
<img src="https://skillicons.dev/icons?i=azure" width="48" height="48" alt="Azure" />
103+
<br>Azure
104+
</td>
105+
<td align="center" width="96">
106+
<img src="https://skillicons.dev/icons?i=vercel" width="48" height="48" alt="Vercel" />
107+
<br>Vercel
108+
</td>
109+
<td align="center" width="96">
110+
<img src="https://skillicons.dev/icons?i=tailwind" width="48" height="48" alt="Tailwind" />
111+
<br>Tailwind
112+
</td>
113+
</tr>
114+
<tr>
115+
<td align="center" width="96">
116+
<img src="https://skillicons.dev/icons?i=tensorflow" width="48" height="48" alt="TensorFlow" />
117+
<br>TensorFlow
118+
</td>
119+
<td align="center" width="96">
120+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/scikitlearn/scikitlearn-original.svg" width="48" height="48" alt="Scikit-learn" />
121+
<br>Scikit-learn
122+
</td>
123+
<td align="center" width="96">
124+
<img src="https://www.svgrepo.com/show/306500/openai.svg" width="48" height="48" alt="OpenAI" />
125+
<br>OpenAI
126+
</td>
127+
<td align="center" width="96">
128+
<img src="https://cdn.worldvectorlogo.com/logos/langchain.svg" width="48" height="48" alt="LangChain" />
129+
<br>LangChain
130+
</td>
131+
<td align="center" width="96">
132+
<img src="https://skillicons.dev/icons?i=css" width="48" height="48" alt="CSS3" />
133+
<br>CSS3
134+
</td>
135+
<td align="center" width="96">
136+
<img src="https://skillicons.dev/icons?i=html" width="48" height="48" alt="HTML5" />
137+
<br>HTML5
138+
</td>
139+
<td align="center" width="96">
140+
<img src="https://skillicons.dev/icons?i=git" width="48" height="48" alt="Git" />
141+
<br>Git
142+
</td>
143+
<td align="center" width="96">
144+
<img src="https://skillicons.dev/icons?i=vscode" width="48" height="48" alt="VS Code" />
145+
<br>VS Code
146+
</td>
147+
</tr>
148+
</table>
149+
150+
## Credentials & Specialisations
151+
152+
### Qualifications
153+
- **AWS Qualified** | **Azure Qualified** | **Cisco Qualified** | **HubSpot Qualified**
154+
- Level 4 Software Developer Apprenticeship (2023-2024)
155+
- City & Guilds Level 2 ICT Systems Support (May 2025)
156+
- Machine Learning: Mastering Generative AI & Agents (September 2025)
157+
158+
### Areas of Focus
159+
- **AI & ML** → Custom models, LLM training, prompt engineering, performance testing
160+
- **Automation** → n8n workflows, API integrations, MCP creation, custom AI models
161+
- **CSS** → GSAP animations, 3D transforms, Matrix effects
162+
- **Full-Stack** → End-to-end application development
163+
164+
## Featured Projects
165+
166+
- **SQL-Ball** – RAG-powered NL-to-SQL using a custom collated dataset of European football results. [GitHub →](https://github.com/ThomasJButler/SQL-Ball)
167+
- **AgenticAICoursePortfolio** – Portfolio of web apps from the Generative AI & Agents Bootcamp. [GitHub →](https://github.com/ThomasJButler/AgenticAICoursePortfolio)
168+
- **The Matrix Arcade** – Collection of custom-built games in the style of “The Matrix.” [GitHub →](https://github.com/ThomasJButler/The-Matrix-Arcade)
169+
170+
## GitHub Stats
77171

78172
<div align="center">
79173

80174
![Thomas's GitHub stats](https://github-readme-stats.vercel.app/api?username=ThomasJButler&show_icons=true&theme=chartreuse-dark&border_color=00FF00&bg_color=0D1117&title_color=00FF00&icon_color=00FF00&text_color=FFFFFF)
81175

82-
</div>
83-
84-
<div align="center">
85-
86176
![Activity Graph](https://github-readme-activity-graph.vercel.app/graph?username=ThomasJButler&theme=react-dark&bg_color=0D1117&color=00FF00&line=00FF00&point=FFFFFF&area_color=00FF00&area=true&hide_border=true)
87177

88178
</div>
89179

90-
---
180+
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/thomasbutleruk/)
181+
[![CodePen](https://img.shields.io/badge/CodePen-Follow-1e1e1e?style=for-the-badge&logo=codepen&logoColor=white)](https://codepen.io/thomasbutler)
182+
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Support-FFB000?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ojrwoqkgmv)
183+
184+
## Get in Touch
185+
186+
- **Email:** [[email protected]](mailto:[email protected])
187+
- **Resume:** [Download Resume (PDF)](https://cvgenius.com/uk/cv-link/ca1e2690-125c-4422-804d-b68c1935f598/449d6614-8209-4741-bd30-2fc12fe4f8e8)
91188

92189
<div align="center">
93190
<img src="https://capsule-render.vercel.app/api?type=waving&color=00FF00&height=100&section=footer" width="100%" />

ThomasJButler.code-workspace

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)