56 days · 86 commits

Ampuno: 28 minutes to build, eight weeks to draw the cars

A free site to find and compare electric cars, built with Codex and Claude. The first version took 28 minutes. The pictures of the cars, and the things that only looked finished, took the rest. Counted from the logs.

Near-black cover. On the left, the Ampuno logo, a teal lightning bolt, and the title "28 minutes to build, eight weeks to draw the cars", above the line "Find and compare 231 electric cars. Built with Codex and Claude, counted from the logs." On the right, a screenshot of the live ampuno.com homepage: the headline "Find and compare the electric car that fits you.", a search field, and a white illustrated car with the day's featured model.

Ampuno on the live site, with its 231 models. Image and site: Edgaras Neverdauskas.

Download
Alt text · 442 characters

Near-black cover. On the left, the Ampuno logo, a teal lightning bolt, and the title "28 minutes to build, eight weeks to draw the cars", above the line "Find and compare 231 electric cars. Built with Codex and Claude, counted from the logs." On the right, a screenshot of the live ampuno.com homepage: the headline "Find and compare the electric car that fits you.", a search field, and a white illustrated car with the day's featured model.

Why I started it

At 00:47 on a Monday in late July I pasted a 954-word brief into Codex. It began: "Build a new website called VoltScout from scratch. VoltScout is a simple electric-car search and comparison website." It listed what the site should have, what it must not have (no accounts, no reviews, no database, no overall winner), and one rule about data: "Never invent missing values."

The logs don't say where I wrote that brief. They do show what happened next. Twenty-eight minutes later Codex had built the site, tested it and pushed it: 260 electric car models, 1,189 variants, eight browser tests passing. Not one real car picture. Every car was a plain drawing of its body type.

The brief had a line about that too: "Vehicle images are extremely important." That line ran the next eight weeks.

As with CSS 3D Lab and J.A.R.V.I.S., I went back through the full git history and every session log, so the numbers are counted, not remembered. My own messages are quoted as I typed them, typos included.

What Ampuno is

A free site at ampuno.com for finding and comparing electric cars. It holds 231 models and 1,105 variants from 59 makes. The specifications come from OpenEV Data, a public dataset, and the catalogue keeps a rolling window of the last eight model years.

You can search, filter by make, body type, year, range and charging speed, open a model page with every variant in one table, and compare up to four cars side by side. When a figure is missing from the source, Ampuno says "Not available". It never fills the gap with a guess or a zero, and it gives no overall score, because there is no best electric car for everyone.

There are short guides on range labels and charging, a sources page, a light and a dark theme, and it installs as an app. Analytics only run if you say yes. It is a static site on GitHub Pages, about 2,100 pages built from one data file. The code is private.

How it happened

Monday 27 July, night: the brief. After the first build I spent until five in the morning on buttons and dropdowns. My first message after the build was "need to update UI/UX with beeter looking buttons and dropdown selects". One of my last that night set the real task: all the cars should have real pictures with transparent backgrounds, "so we will ened ot generate 260 cars".

27 and 28 July: photos, then drawings. Codex looked for a source, and I pasted in a research answer. The data has no pictures. A paid image service started at $49 a month and its licence meant deleting the pictures if I stopped paying. So Codex built a free pipeline instead: licensed photos from Wikimedia Commons, backgrounds removed, a review page, attribution for each one. By 04:23 the next morning the repository held batches of real photos.

At 04:38 I wrote: "i still dont like the image quality and that it is random and incosistant". I asked for "shapes of irginal cars but not exact pictures" instead. Codex agreed that the photos were accurate but would never look like one set, and proposed drawings: one fixed angle, the same glass, wheels and light for every car, only the body changing. By 05:00 I had asked it to delete the photos. The black cars then took an hour of me saying they were grey, because the first black version was the white one darkened by a filter.

Tuesday 28 July: a name. At 14:26 I wrote "ok the website now looks pretty good", and we moved to the favicon, search engines and GitHub Pages. Then the name. Codex offered names. I rejected the first, liked Ampvero, and asked for more. At 17:29 I asked "how aobut sparkuno? or ampuno or some thi wth with uno that indicated numebr one". Two minutes later: Ampuno. I bought ampuno.com, and by accident a second domain, a .online one that was free for a year and then €36. I turned its renewal off. At 18:08 the site was rebranded; by 20:03 it had guides, an about page and a privacy page.

29 July to 2 August: polish. A friend's feedback became tooltips explaining every figure. Share images got the same car, glow and rings as the homepage. I spent an evening moving those rings: "move the whole orbit a bit mre to the left". Search became a full-screen dialog on phones, navigation moved to the bottom of the screen like in a phone app, and a light theme arrived. The lightning bolt in the logo went through "a bit smaller", "slighly bigger" and "ok push changes" in five minutes.

On 30 July I asked whether all 260 cars were real, sold electric cars. Codex audited them against one rule: a production battery-electric car, sold to the public, with enough data to compare. 19 were hybrids, not fully electric, 9 were announced, cancelled or no longer sold, and 1 was a quadricycle. 231 stayed. On 2 August I added the eight-year window and consent-based Google Analytics.

2 to 16 August: one car. Then I went back to model-specific drawings, already tried and deleted on 30 July. First the Tesla Model Y, in the same angle, wheels and glass as the generic cars. It went live on 8 August. On 9 August I noticed its front bumper and door handles were wrong, and stopped: "we need to stop now and star from begginign with more specific rules". I sent reference photos of the fender and lights, one after another. On 13 August: "wow you are really bad with task, when it cmes to coding it seems you are very good, but with this you are very bad". Codex's answer was honest: it was using a generator that redraws the whole car every time for a job that needs the same wheels, glass and framing every time. It proposed 3D models and Blender. I said yes to installing it, then changed my mind three minutes later. The next night I bought credits for OpenAI's image models instead. On 16 August I stopped it again and reverted everything except the test fixes.

The day before, I had asked Codex whether I even needed a code editor, "since i am not coding and only workign with ai". It agreed I didn't.

16 August: Claude joins. I opened Claude Code in the same folder and asked it to review the repository. It found a README that described a setup the code had moved past, dependency security advisories with patched versions available, and a development setting tied to one network address. It fixed those in three commits. That was Claude Sonnet 5; from then on Claude's work was mostly Claude Opus 5.

Thursday 3 September: measuring the drift. I started with "Today i am hoping to finally deal with one part in this app". Claude measured the published pictures instead of looking at them: six different wheel designs, window tint varying by 22%, a van with blue glass, ground lines spread over 73 pixels. It built checks for all of it. It also scaled every car to its real length, so a small hatchback drew smaller than a pickup. I said no: "the thign with scale is that iamges sohuld have the same size since in app ui they are not compared my scale but by tech stats". It reverted within two minutes.

The same day it found the body-type filter matched raw labels from the data. Choosing "SUV" showed 34 cars and hid the other 86. Then it wrote a detailed standard for Codex to regenerate the six generic cars, and I carried prompts between the two tools all evening. At 19:27 I told Claude: "i am stuck whi this for liek a month". It replied: "A month is too long for six images, and I don't think the answer is waiting for better models." Each generated picture is an independent sample, it said, so the wheels get redrawn every time. At the size a card shows them, each wheel is about 80 pixels wide.

Monday 7 September: search engines. I sent Claude screenshots from Google Search Console. The sitemap listed 1,119 addresses, and every one of them redirected, because they lacked the trailing slash the site uses. The short model addresses were empty pages that bounced to a variant. Claude fixed the sitemap and turned each model address into a real page: a table of every variant, each row linking to its full specification. By 11:18 it was live, with 1,350 addresses in the sitemap, none redirecting.

16 and 17 September: starting again. A newer image model came out, and I tried again in Codex: "start from scratch delete tmp and start again". While Codex drew, I asked Claude about the homepage: "it seem it is alwasy stck on the audi a6 etron". The featured car was meant to change daily. It had never changed on the live site. The rotation only picked cars with exact photos, and since the July photos were removed there had been none.

That afternoon Codex hit its usage limit and came back about an hour and a half later. Its next fix for the tyres passed the new automatic check. Claude zoomed in and found it had passed by trimming the bottom of each tyre into steps, not by drawing it round. It wrote Codex a precise prompt to redo it. I told Codex to ignore it, roll back to the commit before the latest picture work, and start fresh. The next morning at 07:16: "ok once again lets starrt from scratch". By 12:07 all ten generic pictures, five body shapes in white and black, were new. The Tesla Model Y drawings, live since 8 August, were removed. So were the standard and the review notes.

That afternoon, from a Codex discussion I pasted in, Claude made the pictures load at the size each place needs. A 64-pixel search thumbnail had been downloading the 1,600-pixel original, about 115 KB. It cut the catalogue page from 831 KB to 311 KB, fixed page titles, and found why Google Analytics had shown nothing since August.

Monday 21 September: an email from Google. Search Console reported unindexed pages. The Codex session, now on GPT-6, opens with a hand-off from a ChatGPT conversation about it. The 24 "not found" addresses turned out to be old share-image addresses, replaced on 17 September. The real gap was that none of the 231 model pages had a link pointing to it. Codex added a page listing every model by make. That was the last commit, at 14:04.

Four things that looked finished

The most useful lesson from Ampuno isn't about the pictures. It is four things that looked done for weeks and weren't.

  • Analytics. The consent banner worked and the tag loaded, so it looked installed. The helper that passed commands to Google's script used a form Google silently ignores. From 2 August to 17 September it did not record a single visit. It came out when I showed Claude a week of zero users and it suggested the test: accept, click around, watch the real-time report.
  • The daily featured car. The date maths was right. It was choosing from an empty list, so it showed the first car in the catalogue every day.
  • The sitemap. It was valid and complete, and every address in it pointed at a redirect.
  • The SUV filter. It returned cars, so it looked like it worked. It hid 86 of 120.

None of these failed a test, and nothing showed an error. Each one was found by using the site or checking a real number: a visit that should have appeared, a car that never changed, a report from Google, a count that looked too small. The tyre fix was the same lesson from the other side: a check can be passed without doing what it was written for.

What we got wrong

  • Real photos went into the catalogue and came out the next morning, because they could never look like one set.
  • The first black cars were the white ones with a filter, so they looked grey.
  • A model-specific Tesla Model Y took most of two months, went live for about six weeks, and was then removed.
  • Claude scaled the cars to their real lengths. A catalogue that compares figures needs them the same size.
  • The body-type filter hid 86 of 120 SUVs.
  • The sitemap advertised 1,119 addresses that all redirected, and the model pages were empty redirects.
  • Google Analytics received nothing for six and a half weeks.
  • The daily featured car never rotated.
  • A tyre fix passed its check by trimming the tyres.
  • Every picture downloaded at full size, even as a tiny thumbnail.
  • I bought a domain I didn't want.

Who did what

Codex built most of Ampuno: 58 of the 86 commits, from the first build through the name, the design, the data audit and the ten pictures on the site today. I sent it 912 messages and 213 screenshots. It replied 2,690 times and made 8,086 tool calls, over about 85 hours of active work. It ran GPT-5.6 for most of the work, 1,795 replies with the Terra setting and 830 with Sol, and GPT-6 for 65 replies in September. Codex's automatic approval reviewer also ran in 16 short sessions alongside.

Claude Code made 28 commits and did the measuring: the drift checks, the sitemap and model pages, the analytics fix, image sizes, page weight. Claude Opus 5 made 24 of them, Claude Sonnet 5 three and Claude Fable 5.1 one. In the sessions logged for this project I sent it 132 messages and 32 screenshots. It replied 1,024 times, 901 from Opus and 123 from Sonnet, with 1,006 tool calls: 651 commands, 120 file edits and 153 actions in a browser. That was about 11 hours of active work, with no helper agents. Six of its commits came from sessions that were updating several of my projects at once, and those sessions aren't in the counts.

Ampuno by the numbers, 27 Jul – 21 Sep 2026: 231 models and 1,105 variants, 86 commits, 56 days from first message to last commit, 10 car pictures on the site. Codex: 58 commits, 912 of my messages, 8,086 tool calls, about 85 hours active. Claude Code: 28 commits, 132 messages, 1,006 tool calls, about 11 hours active. Me: 1,044 messages, typically 14 words, 245 screenshots. How the pictures went, 27 July to 17 September.

Eight weeks, counted from git and the Codex and Claude Code session logs: who did what, and how the car pictures went.

Download
Alt text · 424 characters

Ampuno by the numbers, 27 Jul – 21 Sep 2026: 231 models and 1,105 variants, 86 commits, 56 days from first message to last commit, 10 car pictures on the site. Codex: 58 commits, 912 of my messages, 8,086 tool calls, about 85 hours active. Claude Code: 28 commits, 132 messages, 1,006 tool calls, about 11 hours active. Me: 1,044 messages, typically 14 words, 245 screenshots. How the pictures went, 27 July to 17 September.

ChatGPT appears once on disk, and I can't count it: of the Search Console conversation on 21 September only the hand-off to Codex and a short preview are on my PC. Where I wrote the first brief, the logs don't show.

My part was 1,044 messages over 24 days, a typical one 14 words long, and 245 screenshots. Many of them were about how something looked: a bit left, a bit smaller, that's grey, not black. Some of them decided what Ampuno is: worldwide, not only European; only cars people could actually buy; every car the same size; no overall winner.

Treat the numbers as a record, not a benchmark. The tools worked on different days and different jobs, and Codex's one long session covers more than half of everything.

What it cost

Hosting is free on GitHub Pages. The domain was a normal .com, plus the .online I didn't mean to buy. Beyond that it was the ChatGPT and Claude subscriptions, and OpenAI image credits I bought on 14 August for the picture experiments. One exploration run cost $1.26; the rest of that spend isn't in the logs.

Limits showed up three times, all in Codex: twice for me, once for its reviewer. On 28 July at 04:09 I warned it I was "getting close to reaching limit of credit of ai". On 6 September its approval reviewer hit one and blocked a check. On 16 September it stopped mid-task at its limit and resumed about an hour and a half later.

What I would tell someone starting

  • A clear brief goes a long way. 954 words, and a working site 28 minutes later.
  • Decide what you won't show. "Not available" is more honest than a guessed number, and it's one rule for every car.
  • Know which jobs a model can repeat. Code can be checked and kept. A generated picture is drawn fresh each time, so asking for six matching ones is a different kind of job.
  • Measure, don't squint. Wheel designs, tint and ground lines became numbers that a check could hold.
  • Checks can be gamed, even by the tool that wrote them. Look at the result, not only the pass.
  • Test the boring things with real data. Analytics, sitemaps and filters fail without an error.
  • Two tools can work together if you're the courier. Claude measured and wrote prompts; Codex drew. I carried the prompts between them.
  • Starting again is allowed. I did it more than ten times with the pictures, and the site stayed live the whole time.

In one paragraph

In eight weeks, one person and two AI coding tools built a free site to find and compare 231 electric cars, in 86 commits. The first working version took 28 minutes. Most of the time after that went into two things: pictures of the cars that look like one family, and a handful of features that looked finished and weren't. The models wrote almost every line and drew every car. What they couldn't do was see that a black car was grey, that a filter was hiding most of the SUVs, or when to stop redrawing and start again. Noticing, and deciding, stayed with me.

Try it at ampuno.com. Built with OpenAI Codex (GPT-5.6 and GPT-6), Claude Code (Claude Opus 5, Claude Sonnet 5 and Claude Fable 5.1), and a little ChatGPT.