OPEN TO PROJECTS, CONTRACTS & FULL-STACK ROLESPORTFOLIO / 2026

Hey, I’m James

Web apps.
Built with
care.

I’m James Timms, a full-stack developer based in Dartford, UK. I build websites, web applications, and APIs with Laravel, React, and Next.js — with care for how a product feels as well as how it works.

James TimmsBuilding for the web since 2021.Laravel, React, Next.js and Vue.
James Timms
FULL-STACK DEVELOPERJames Timms ↗
IDEAS → INTERFACES → REAL-WORLD PRODUCTSScroll to discover
LaravelReactTypeScriptVueNext.jsPHPAWS

01 / SELECTED WORK

Built with purpose.
Made to be used.

Live sites and open-source tools, with a look at what goes into making them.

ASH Esports live homepage, with its red and black identity, team navigation, and competitive gaming introduction.
THE LIVE SITETake a look around

LIVE / FULL-STACK PLATFORM

ASH Esports.

A home for the community. A working platform for the organisation. Public teams, results, and broadcasts sit alongside the tools players, coaches, and staff use behind the scenes.

  • Team dashboards, recruitment, and roster management
  • Match planning, champion pools, and coaching tools
  • Discord, Riot Games, and Twitch integrations
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Prisma
  • PostgreSQL
Behind the build

Next.js and React power the public site and authenticated workspaces. Prisma models the organisation’s data in PostgreSQL, while NextAuth and server-side role and team checks control access. External integrations connect community accounts, player data, and live streams.

Visit live site (opens in a new tab)
ClipHatch live homepage, with its warm cream and orange design, creator introduction, and chick mascot emerging from an eggshell.
THE LIVE SITETake a look around

LIVE / CREATOR PLATFORM · PRIVATE BETA

ClipHatch.

Give the best moments in a stream a life beyond the broadcast. A creator platform in private beta, bringing Twitch recordings, highlight suggestions, and a browser-based video editor into one workspace.

  • Recording library and opt-in transcription with highlight suggestions
  • Multi-track editing, captions, music, and private MP4 exports
  • Saved clip projects and team workspaces with member roles
  • Next.js
  • React
  • TypeScript
  • Go
  • PostgreSQL
  • Vercel Sandbox
Behind the build

Next.js powers the public site and creator studio, while a separate Go API owns accounts, workspaces, and media jobs. PostgreSQL stores project revisions and job leases; isolated Sandbox workers handle media processing away from web requests. Original branding carries the same identity from the landing page into the editor.

Visit live site (opens in a new tab)
FEATURED REPOSITORYPublic repository

Relay Intelligence

An incident triage workbench that classifies operational alerts, retrieves relevant runbooks, and records an engineer’s review. Evidence accompanies each suggestion, with abstention when the model cannot support a direction.

Django REST Framework and a Vue workspace sit around an inspectable Python model. MongoDB stores incidents and durable outgoing events; Celery handles background work, with duplicate-safe delivery and version checks protecting concurrent reviews. AWS deployment templates cover Lambda, SQS, and DynamoDB leases.

  • Python
  • Django REST Framework
  • Vue
  • TypeScript
  • MongoDB
  • Celery
  • AWS
Explore on GitHub (opens in a new tab)

Uptivra

A self-hostable uptime monitor for public HTTP and HTTPS services. Track service health, response times, and incidents in a web workspace, receive webhook and Discord alerts, and share selected monitors on a public status page.

A Go engine runs checks and delivers alerts, with PostgreSQL storing monitoring history and durable notification retries. Next.js powers the operator workspace, with Docker and Vercel deployment options and a temporary demo for trying the interface.

  • Go
  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Docker
Explore on GitHub (opens in a new tab)

Ultimate League ToolKit

A desktop companion for League of Legends, built around the local client API. Track ranks and match history, build and import rune pages, and manage everyday client tasks with notifications and handy utilities.

Open source under the MIT licence, with contributions welcome. Explore the code, learn from it, or help shape what comes next.

  • Electron
  • React
  • TypeScript
  • Vite
  • LCU API
Explore on GitHub (opens in a new tab)
FEATURED REPOSITORYPublic repository

Riot Match Analytics

A League of Legends analytics service that turns Riot API match data into player profiles, match summaries, and performance trends. Look up players by Riot ID, with account resolution handled behind the scenes.

Built with FastAPI and independently testable analytics functions. Constrained concurrency and retry handling respect Riot’s API limits, while Pytest checks run locally and in CI, with Docker keeping the workflow consistent.

  • Python
  • FastAPI
  • HTTPX
  • Pytest
  • Docker
  • Riot API
Explore on GitHub (opens in a new tab)

PiltoverClient

A reusable PHP client for the Riot Games API, ready for standalone projects and Laravel applications. Resolve players by Riot ID, retrieve summoner profiles, and explore match histories with regional routing handled automatically.

Guzzle powers the requests, with a Laravel facade and helper for straightforward integration. Bundled OpenAPI documentation and a ReDoc viewer make the API easier to explore, while PHPUnit covers the client and Laravel integration.

  • PHP
  • Laravel
  • Guzzle
  • Composer
  • PHPUnit
  • OpenAPI
Explore on GitHub (opens in a new tab)

RiftJS

A TypeScript-first Node.js library for building with League of Legends data. Retrieve player profiles, ranked summaries, match histories, and timelines, alongside champion and item data through built-in Data Dragon support.

Published on npm with TypeScript declarations and CommonJS support. Regional routing, paginated match fetching, and optional request pacing help developers connect their tools to Riot’s APIs with less setup.

  • TypeScript
  • Node.js
  • Axios
  • npm
  • Riot API
  • Data Dragon
Explore on GitHub (opens in a new tab)

02 / THE CRAFT

The whole picture.
Down to the details.

I like connecting the dots — from the first interaction to the query behind it.

The interface

Responsive layouts, thoughtful interactions, and a component system that stays consistent as a product grows.

ReactNext.jsVueTypeScriptTailwindFramer Motion
A TOOLKIT, NOT A CHECKLIST.
01

Make it clear.

Readable code. Understandable interfaces. Fewer surprises for everyone.

02

Make it hold up.

Test the important paths. Watch performance. Build for what comes next.

03

Make it feel right.

Motion with a purpose. Feedback at the right moment. Details that earn their place.

James Timms
JAMES TIMMSDARTFORD, UK ↗

03 / A BIT ABOUT ME

A developer.
Always a builder.

I’ve worked as a software engineer since 2021, building web applications and APIs, migrating existing platforms, and leading small development teams.

Most of my work is with Laravel, React and Vue. I like getting to grips with how a business works, then building software that’s easy to use and maintain.

Outside work, I help run an esports organisation, play League of Legends and make music. A few of my side projects come from those interests.

5+YEARS BUILDING
Full-stackFROM UI TO INFRASTRUCTURE
View my experience and CV
OPEN TO THE RIGHT OPPORTUNITYGOT SOMETHING IN MIND?

Let’s build
something good.

jtimms1998@gmail.com

Need a web application, an API, or help with an existing codebase? Get in touch about freelance projects, contracts, and frontend or full-stack roles.