AI in my practice

Building my own tools.

I used AI to help write the code for six tools I wanted at work. In two of them, AI is also part of the tool: Trace summarises the reasoning behind decisions, and Help Page Creator drafts help text from a walkthrough.

For some, I wanted to avoid another subscription. Others needed to work with our ticket format or keep data on the user's computer. I decided what each tool should do, used AI to help write the code, and worked through the details as I built it.

Ticket Submitter

Front-end stack
  • TypeScript
  • HTML
  • CSS
  • Chrome MV3

Seeing a bug is often easier than explaining how to reproduce it. I wanted anyone testing our product to be able to send a useful report, without having to know what to collect from the browser.

Ticket Submitter sits beside the application and records the steps. While recording, it automatically captures browser console errors and attaches them to the active issue. The reporter can add screenshots or a short GIF and explain what they expected to happen. It then creates a report in our existing Author-e format, ready to copy into the ticket editor.

That format was a reason to build it ourselves. We could include the build, test instance, test user, date and test status developers need, while keeping the captured information local until the reporter shares it.

I also worked on keeping the steps readable. A click followed by a page change becomes one step. Clicks with no useful label are left out.

Steps + browser console errors

Reviewed by the reporter before sharing.

Complete Ticket Submitter form with test context, recorded steps and browser console errors

HTML → Figma

Front-end stack
  • TypeScript
  • HTML
  • CSS
  • Figma Plugin API

I tried an HTML-to-Figma tool, but it required a monthly subscription fee. I wanted to bring my coded prototypes back into Figma for editing, so I tried building an importer myself.

Getting the page into Figma was only part of it. The layers also needed to be usable. I worked on preserving the layout, bringing across design tokens and removing unnecessary wrappers.

Auto layout could change where things ended up. I added a check against the original positions: if the inferred layout moved things too far, the importer kept them in fixed positions.

HTML to Figma importer previewing a LearningBox screen

Time Tracker

Desktop UI stack
  • C#
  • .NET
  • Windows Forms

We wanted to see where our working time went without sending activity logs to an external service. Those logs can include page titles, URLs and meeting details.

I built a Windows tracker that keeps its database and reports on the user's computer. Users can pause recording and choose what to share. An “End day” action opens the report and pauses tracking until the next morning.

I tailored the report around project time, meetings and a timeline of the day. The grouping rules can change without rewriting the original records, so past work can be regrouped later.

Daily report with time combined by category
Daily report with individual activities under each category
Monthly report showing varied daily totals

Mockup Studio

Front-end stack
  • TypeScript
  • HTML
  • CSS

I kept doing the same work for portfolio visuals: put a screen in a device frame, adjust the background and add annotations. I wanted to save that setup without another subscription.

Mockup Studio lets me arrange the devices, change their angle and export the image. I can keep several canvases in one project and come back to them later. The product screens shown here are loaded into the tool itself.

Mockup Studio with a LearningBox screen inside a laptop mockup

Trace

Front-end stack
  • React
  • TypeScript

A decision can be easy to find while the reason behind it is buried in a discussion.

Trace uses AI to help retrieve that reasoning. I wanted to see who disagreed, what led to the final call and whether a newer decision had replaced it.

I kept the original discussion below the AI summary so the reader can check it. A weak match gets a less prominent answer and a prompt to read the source. I'm using sample decision threads to work through these states; the quality of the retrieval still needs testing.

Sample scenario · Sales, Engineering, Design, Support and Product weigh a full export against timeouts and access controls. The people and discussion shown are fictional.

Trace decision summary with a source discussion about export permissions and a limited pilot

Help Page Creator

Front-end stack
  • TypeScript
  • HTML
  • CSS

I was already making walkthroughs to explain the product. Turning the same flow into a help article meant writing the instructions again.

Help Page Creator uses AI to draft that text from the walkthrough. The system administrator checks the steps against the product, edits the wording and places the screenshot annotations before publishing.

I built it around our existing help pages so the draft can be edited and rendered in one place. AI produces the first version; the administrator decides what is ready to publish.

  1. 01Walk through the product
  2. 02AI drafts the instructions
  3. 03Administrator reviews & publishes
Help Page Creator editor concept with AI draft controls, editable instructions and annotated LearningBox screenshot

A design system AI can follow

I also work on the LearningBox design system, including rules that AI can follow when helping build an interface. Components sit alongside their design tokens, usage rules and notes, so the guidance is part of the system.

That gives AI something specific to work from: which component to use, what a status colour means, and which spacing and border values belong in the product. The aim is to spend less time correcting basic inconsistencies and more time on the interaction itself.

LearningBox design system showing status colours, spacing and border tokens, with tabs for component rules, notes and where each component is used.