Websites for exporters: indexed by Google, readable by AI.
Components · Automation · Connectors · Auto parts · Thousands of part numbers
We build websites for exporters, manufacturers and distributors whose buyers search by exact part number. Pages are generated as plain HTML, so Google and AI assistants can read them without running JavaScript — and a buyer can find a specific part in about 20 milliseconds.
- 01Rendering and caching · Astro + Cloudflare + Redis
- So the site opens fast: fixed pages are generated ahead of time, and the many part pages are generated once when a buyer first opens them, then cached and reused instead of recomputed. A catalog with tens of thousands of parts opens as fast as a five-page site.
- 02Search and data · Meilisearch + PostgreSQL/Payload
- So buyers find parts fast: part numbers, brands and specifications sit in one index. Typing a code or ticking two filters returns a result in milliseconds instead of paging through a list. Your team edits products in the CMS and the change appears on the site.
- 03Publishing and isolation · Git CI/CD + one image per site
- So releases are uneventful: a push publishes the change and a rollback returns the previous version. Separate containers, databases and caches mean one site's release or failure does not touch the others.
Electronic components and turnkey BOM sourcing
Industrial automation spares: PLC, VFD, servo
Connectors and terminal blocks
We buy the stock, write the pages and answer the inquiries on all three. Measurements and case studies →
Two products, two starting prices.
A one-time build fee, quoted from the work in scope rather than from a fixed package. There is no second-year rebuild fee. The domain and hosting accounts are registered to your company.
| Business website | High-SKU catalog | |
|---|---|---|
| One-time build fee | From $999 | From $4,999 |
| Quote basis | Pages and features in scope | Search, CMS, data import and integrations |
| Part numbers | Up to ~300 | 300 to 1,000,000+ |
| Second year | No rebuild fee | No rebuild fee |
| Delivered | Core pages, inquiry forms, WhatsApp routing, Cloudflare deployment | Part search, parametric filters, BOM/RFQ upload, CMS, data import |
| Delivery time | 2 – 4 weeks | 4 – 8 weeks |
| Hosting | Cloudflare Pages, $0 per month | One VPS you control, billed to you at cost |
Part numbers decide which architecture you need, not the final price: the number is quoted from the actual work — data cleaning, integrations, languages and delivery date — and fixed in writing before work starts. Not included: templates under $999, free mockups, ranking or inquiry-volume guarantees, supplier data scraping, and day-to-day operations. Optional content and search advisory is $999 per year. Full scope and handover terms →
Seven capabilities, each with a measured number.
A capability is only worth something if the buyer can check it. Each card pairs the claim with the method, the production measurement and the test you can run.
Copy and part numbers in the HTML source
Buyers, search engines and AI assistants read the same complete HTML.
Pages are generated as whole HTML documents at build time or on first request. Part numbers, specification tables and body copy are written into the source; the rendered result is cached and later visits are not recomputed.
Measured: About 16 KB of first-load JavaScript and 2 external scripts; copy, part numbers and specifications all present in the HTML.
Check: Turn JavaScript off and open a product page; the copy and the specification table should still be readable.
Three cache layers, first byte at the edge
Most requests never reach a database, so crawlers and buyers do not compete for origin capacity.
Finished HTML goes to Cloudflare edge nodes first, then into an in-process cache; the data layer is Redis, namespaced per site. Paths that carry a session are never cached.
Measured: 14–22 ms edge TTFB on public pages, 20–41 ms origin render, 2.6–4.7 ms warm render inside the container.
Check: Run curl -I and read cf-cache-status and x-astro-cache in the response headers.
Part-number search through an index
Tens of thousands of part numbers return in milliseconds instead of scanning an array.
Part numbers go into a dedicated Meilisearch index with a tokenizer that keeps hyphens, slashes and package suffixes intact, so 6ES7214-1AG40-0XB0 is not split into fragments. Indexes are isolated per site and can be rebuilt one at a time.
Measured: Category × brand asset lookup in 118 ms; obsolete-part aggregation served from a 6-hour cache refreshed in the background.
Check: Search a full part number on icboms.com, then add a brand and a category filter.
A factual layer for AI assistants
AI assistants read structured facts, not a script they have to execute.
Each site publishes its own llms.txt with what the company sells and the facts a model can quote; page data is output as structured tables and JSON-LD rather than images or collapsible panels.
Measured: All three catalogs we operate score L5 (agent-ready) on isitagentready.com, measured 2026-10-24.
Check: Open any of the three sites at /llms.txt, then ask an assistant which China-based suppliers stock that category.
A quality gate on every page
The indexed surface is decided by each page's own information, not by template volume.
Only pages with independent copy and data enter the index and the sitemap, so crawl budget concentrates on pages that can earn an inquiry instead of on empty parameter shells.
Measured: On the catalogs we operate, product and brand pages without their own copy are deliberately left out of the sitemap.
Check: Open ten pages and compare their copy and data; then read the sitemap and see which URLs are declared.
Separate image, database and cache per site
A release or a failure on one site does not reach the others.
Each site runs its own container, PostgreSQL database, Redis database number and key prefix, with Caddy routing by domain. Releases, rollbacks and index rebuilds are done one site at a time.
Measured: Three catalogs share one machine; containers, databases and search indexes are separate, and releases are per site.
Check: The isolation boundaries and deploy procedure are on /architecture.
Code, data and accounts stay yours
There is no subscription to stop paying and nothing held back as a switching cost.
The repository, database export, domain, Cloudflare and hosting accounts are transferred to your company at delivery, with your people as owners.
Measured: One payment at delivery; the only recurring costs are the domain and, for a catalog, a VPS rented in your name.
Check: The delivery list, the quote and the contract all state the same set of items.
| Metric | Measured | Site and method |
|---|---|---|
| Edge TTFB | 14–22 ms | aoctrl.com public pages |
| Origin render | 20–41 ms | aoctrl.com, warm cache |
| Warm render in the container | 2.6–4.7 ms | icsourcedirect.com |
| Mobile Lighthouse | 0.97 | icboms.com home, 4G + 4× CPU |
| Largest Contentful Paint | 2.06 s | Same page and conditions |
| Total Blocking Time | 0 ms | Same page and conditions |
| Part-number search | Milliseconds | Meilisearch, dedicated index per site |
These are measurements on live production sites, taken in October 2026; the tools and locations are recorded on the architecture page. Cache status and response headers can be checked from your own network.
The layers, cache invalidation path and full measurement log are on Architecture. Why we chose Astro over WordPress and Next.js is on Tech choice. The four checks themselves are on Verify.
Four checks, run by you.
Public tools, public data. None of these require contacting us, and none of them is a ranking promise.
Ask ChatGPT or Perplexity which China-based suppliers stock a given category. See which domains come back. The prompt we use is on the Verify page.
Run the three live catalogs through isitagentready.com. It reports whether an AI can read the site and locate the facts it needs.
Run PageSpeed Insights on mobile, then curl -I from your own network. The second
number is the one your buyers in another country actually experience.
Search a real part number and apply two filters. A 200-product site and a 40,000-part catalog behave differently here; the home page will not show it.
Four conditions, stated up front.
The criteria are public and the verdict comes without a phone call. If the project does not match, we say why and what we would do instead.
There are three possible outcomes: a fit / a fit with one condition / not a fit. The third one is explained rather than quoted, and no contact details are required to get it.
Two lists: what is required, and what helps.
Completeness decides how accurate the quote and the timeline are. With the first list in hand, the first conversation can end with a fixed number.
The full version is a thirteen-item checklist that generates a project brief you can copy and send: Start checklist →
Send four lines.
What you sell, roughly how many part numbers, where your buyers are, and a budget range. You get a fixed scope, price and date — usually within one working day.
+86 159 8986 1989
Message us on WhatsApp. A person answers, usually within one working day.
- What you sell, and roughly how many part numbers.
- Where your buyers are.
- A link to your current site, if you have one.
Four lines are enough. You get a fixed scope, a fixed price and a delivery date — not a sales call.
Process: data review → structure and content → build and checks → handover. Non-disclosure is available before you share a catalog. Process, boundaries and questions →