John CarpenterDeveloper & independent maker
A developer's notebook

Small tools.
Thoughtful
details.

I'm John, an independent web developer exploring clear interfaces and software with a practical purpose.

Explore the projects
AI-generated portrait of John, a fictional developer, in a softly lit workspace
John CarpenterFictional developer persona
Independent ideas, built for the browserWeb development / Interface design / Everyday utilities

Curiosity, with a practical side.

I enjoy turning loosely defined ideas into simple, understandable interfaces.

I started with small websites and personal scripts. What kept me interested was figuring out what a tool actually needed: a readable screen, a predictable interaction, a useful default.

These days, I'm especially interested in personal utilities, writing tools, and lightweight web applications. I like working close to the browser and thinking through the interface before choosing the framework.

Away from the screen, I enjoy photography, secondhand bookshops, and long walks without a particular destination. A notebook usually comes along.

Ideas worth exploring.

Three self-directed project studies. These are concepts and intended behaviours, rather than released products or client engagements.

01 / Writing tool

Field Notes

A quiet place for short observations, without turning every note into a form to fill out.

Writing flowSearchTypography
Inside the concept

Quick ideas are easy to capture and surprisingly difficult to find again. The concept centres on a single writing view, a chronological list, and optional tags. Titles are optional.

The design question: how much organisation helps before maintaining the system becomes another task?

Next step: build a local-first prototype with plain-text export.

Self-directed concept / Not yet released
02 / Information design

Local Weather

A forecast organised around everyday decisions, with the next few hours first.

Data hierarchyResponsive UI
Inside the concept

What should a forecast show when someone simply wants to decide when to leave the house? Rain timing, temperature changes, and the age of the latest update take priority.

The interface should also make it clear when information is stale or unavailable. The preview above uses illustrative data.

Next step: connect a weather data source and test real forecast variations.

Self-directed concept / Not yet released
03 / Everyday utility

Focus Timer

A simple work session that begins with a duration and an optional task name.

Interaction statesLocal storage
Inside the concept

The interface keeps the remaining time visible and makes pausing or ending a session straightforward. Session history is intended to stay on the device, with no account required.

The technical question is how to recover after a sleeping device or inactive browser tab, using elapsed time rather than a perfectly regular countdown.

Next step: test a working prototype across desktop and mobile browsers.

Self-directed concept / Not yet released

Start small. Think it through.

A few principles that guide the work.

01 / Understand

Begin with the real task.

What does someone bring to the tool, what do they do, and what should they leave with? Get that journey clear before growing the feature list.

02 / Design

Work through the quiet details.

Empty lists, missing information, failed requests, keyboard navigation. These states deserve as much attention as the main screen.

03 / Refine

Make the return visit easy.

Use familiar patterns, useful defaults, and straightforward language so someone can return after a few weeks and find their way.

A few things on my mind.

Short notes on making software a little easier to use.

01

Start with one complete task

Before adding settings, describe the smallest useful journey through a tool. That description is often more useful than an early feature list.

02

Empty states are part of the interface

A tool's first screen often has no content. It still needs to explain what belongs there and make the next action obvious. A short sentence and a clear button can do a lot.

03

Build for the return visit

An interface can feel obvious while you're building it. The better test is coming back after a few weeks. Labels, defaults, and saved state should help someone resume.