newsence
來源篩選

Reviving bettertyping.org with AI Coding Agents

Hacker News

The author details how AI coding agents were successfully used to upgrade and revive a long-stalled Elixir project, bettertyping.org, by automating complex tasks like dependency management and frontend framework migration.

newsence

利用AI編碼代理重振bettertyping.org

Hacker News
大約 1 個月前

AI 生成摘要

作者詳細闡述了如何利用AI編碼代理,透過自動化依賴管理和前端框架遷移等複雜任務,成功升級並重振了一個長期停滯的Elixir專案bettertyping.org。

Reviving bettertyping.org with AI Coding Agents | David Schillings Blog

Reviving bettertyping.org with AI Coding Agents

Jan 11, 2026

bettertyping.org is a typing practice site I built years ago. You can type quotes to measure your speed, and there’s a multiplayer mode where you race others in real time. The entire project is written in Elixir — a language I didn’t know when I started and learned along the way.

Over time, the project stalled. The Elixir version was badly outdated, the frontend was still built with Webpack, and I no longer had a working development setup. I tried once to upgrade everything manually, but between limited time and limited Elixir experience, I failed. From that point on, the codebase was effectively frozen.

Recently, I decided to try again — this time using AI coding agents.

Initial state

Before starting:

In short, I couldn’t confidently run, build, or deploy the project.

Tooling

I mainly used AMP, and switched to Cursor whenever I hit AMP’s usage limits.
AMP uses Claude Opus 4.5. The usage allowance is roughly $10 per day — currently free, and for the amount of work completed this turned out to be extremely generous.

Upgrading the Elixir project

The first task was upgrading the Elixir and Phoenix stack.

This is usually where older Elixir projects die: dependency conflicts, breaking changes, cryptic errors, and a lot of guesswork. I gave AMP a clear description of the project state and asked it to upgrade step by step.

Here are the first two threads that kicked off the revival:

Most of the upgrade worked one-shot. When it didn’t, the agent diagnosed failures correctly and proposed concrete fixes. After a small number of iterations, the project compiled and ran again.

At this point, I had something I hadn’t had in years: a working baseline.

Frontend: Webpack → Vite

Next, I replaced Webpack with Vite.

I didn’t want to manually reason through legacy Webpack config, so I let the agent handle the migration. AMP converted the build pipeline, updated asset handling, and integrated everything with Phoenix.

The result built cleanly. I made a few stylistic adjustments afterward, but the hard part — getting off Webpack — was done entirely by the agent.

Dockerization and deployment

With backend and frontend working, I dockerized the project and deployed it to my server.

AMP generated the Docker setup, and with minimal adjustments I was able to deploy a new version of bettertyping.org for the first time in a long while.

At this point, the project was alive again.

Building new features

Once the foundation was stable, I continued using AMP and Cursor to build new features.

Importantly, the agent did most of the implementation work. I rarely wrote code myself. My role was mostly to:

New features include:

What worked well

A few patterns consistently produced good results:

This made the agent far more autonomous than I expected.

What didn’t work well

Some pitfalls became obvious:

Conclusion

The agents were better than I expected.

They worked well in an existing, non-trivial codebase. They handled upgrades, refactors, and feature development without needing constant guidance. Claude Opus 4.5 is a very strong model, and AMP and Cursor are effective agentic tools when used with the right workflow.

This didn’t feel like “AI-assisted autocomplete.”
It felt closer to delegating real implementation work — and reviewing the results.

For an old project that was effectively abandoned, that made all the difference.

I am excited to continue improving bettertyping.org with AI coding agents, and I am looking forward to seeing how these tools evolve.

David Schillings Blog

Website and blog of David Schilling. Covering technical topics and everything else that interests me.