ai newsDo., 5. Nov.
EilmeldungClaude Reads Screenshots at 2,576px Now. The Same PNG Can Cost 3x the Tokens

I Built a Six-Language B2B Site With AI. Checking the Result Was the Hard Part.

Disclosure: this article was written with AI assistance and checked against the project files and recorded implementation work. I am the website owner; this is a project-owner retrospective. I used AI assistance to build a website for a small B2B mold-supply business. The stack is React and Vite, w

dev.toDonnerstag 04:31 · 05.11.4 Min. Lesezeit
Bild: dev.to

Disclosure: this article was written with AI assistance and checked against the project files and recorded implementation work. I am the website owner; this is a project-owner retrospective.

I used AI assistance to build a website for a small B2B mold-supply business. The stack is React and Vite, with prerendered public pages and a Cloudflare Worker backend. The site now has English, Simplified Chinese, Thai, Vietnamese, Arabic, and Korean versions.

The work that needed the most attention happened after a feature first appeared to be finished: translated states still contained English, images disappeared from a section, navigation spacing looked wrong, and an analytics integration was collecting data without a project card appearing in its dashboard.

The site is EXACTMEC, used here as the concrete case behind these lessons. Its purpose is to help visitors understand a mold project and make an inquiry. This article covers the website implementation, not manufacturing advice.

Illustrative visual from the project website, not a photograph of a delivered customer project.

The first Chinese version exposed an easy mistake: translating the main page copy while missing text generated by application states.

The customer area still showed labels such as “Need information” and an English empty-state heading. Another page retained “We do.” Those strings were short, easy to overlook, and visible during ordinary use.

The useful unit of review became a route × state × language combination:

Dynamic messages also need translation before inserting their changing values. Translating a static list of complete sentences cannot reliably cover a countdown or a heading with an appended status.

Arabic added another dimension: right-to-left layout. Logical spacing properties helped, but account controls, arrows, numbers, and language switching still needed actual inspection. A translated string did not prove that the surrounding layout worked.

The navigation went through several revisions. At one point it passed checks for horizontal overflow, yet the menu still looked too spread out.

The cause was a mismatch between the layout rule and the intended appearance. Fixed gaps inside the menu were combined with automatic distribution of spare space elsewhere in the header. Changing one gap did not control the entire row.

The eventual desktop direction was specific: keep the logo at the left, push the continuous sequence of menu and account controls toward the right, slightly reduce the text size, and increase its weight.

Here is a simplified version of that rule, without the project's selector and breakpoint overrides:

.header-inner { display: flex; align-items: center; gap: 20px; }.wordmark { margin-inline-end: auto; }.main-navigation { display: flex; flex: 0 0 auto; gap: 24px; font-size: 15px; font-weight: 600; } Enter fullscreen mode Exit fullscreen mode The important part was deciding where extra space should go. The auto margin puts it after the logo; it does not stretch the distances between the five content categories.

The final desktop check covered six languages at four widths. That gave evidence about overlap and overflow. The visual decision still came from looking at the rendered header, including the longer English and Thai labels.

A generic 3D rendering looked attractive, but did not explain what product information a visitor should prepare. The examples became more useful when they showed dimensions, units, and revision information.

AI-generated reference example. Not a customer drawing or a drawing approved for manufacturing.

AI-generated reference example. The labels explain what information a reference might contain; the image does not establish engineering correctness.

That distinction matters in the interface. A parameter table drawn into an image is not a validated CAD model. These examples need explicit labeling, and a visitor's actual project files need their own review.

The website also provides enlarged views, a fit-to-screen option, and scrolling at original size. Those interactions matter more than simply placing a detailed image inside a small card.

For localization, image text deserves its own inventory. Translating the caption does not translate words embedded in the image.

A conventional sales dashboard was not the right starting point for this site. The useful questions were simpler:

The labels need to stay precise. A WhatsApp click does not prove that a message was sent. A daily deduplicated network IP is not a verified person: multiple people can share a connection, and an address can change. Location is an estimate.

Keeping those distinctions in the dashboard prevents a clean-looking number from promising more than the measurement supports.

Ahrefs was the clearest example. Its setup screen reported that visitors were already being counted. However, the website still had no card in the workspace's project list.

The remaining work was in the account workflow: finish creating the project, verify ownership through a public DNS TXT record, and complete the final settings. After that, the Web Analytics card appeared and showed existing data. The website's tracking code did not need to be replaced.

That experience changed the acceptance checklist:

A script tag, a successful request, and a visible dashboard are different pieces of evidence.

AI assistance made implementation faster, but it did not make “finished” a reliable visual or operational judgment. The project still needed concrete checks:

For this project, a useful acceptance question became: Can I point to the rendered state or provider result that proves this particular part works?

Quelle: dev.to (dev.to). Original öffnen