A 180-page reference site for the price of a domain (Astro + Cloudflare Workers)
I built steelweight-calculator.com , a reference site for steel section weights: one page per beam, channel and angle, weight charts, pipe schedules, rebar and sheet gauges, plus calculators. It has about 180 pages and 570 files today and costs nothing to run apart from the domain. Here is the setup and a few things I would do the same way again. Everything is generated from data The site is…
I developed steelweight-calculator.com, a comprehensive reference site containing detailed information on steel section weights. The site features one page per beam, channel, and angle, along with weight charts, pipe schedules, rebar, and sheet gauge information. The entire site is generated from data, with 180 pages and 570 files requiring no ongoing expenses beyond the domain registration.
The website is built using Astro in fully static mode. A set of Python scripts convert various sources, like standards, spreadsheets, and open-source libraries, into JSON files stored in the src/data/ folder. Each JSON row becomes a separate page through getStaticPaths(), generating all the pages needed for the site.
The page layout displays weight in kg/m and lb/ft, standard lengths, surface area for painting, equivalents in other standards, and an SVG cross-section drawn to scale from the dimensions. No images are maintained separately; instead, the data changes automatically update every drawing. The calculators are simple TypeScript modules that Astro bundles into the page, sharing the same weight functions used in the backend.
Hosting is provided through Cloudflare's Workers static assets, with no additional Worker code required. The domain itself covers all costs, and the site is served through Cloudflare Workers without any script execution. SEO optimization is achieved by setting workers_dev to false and preview_urls to false, ensuring the site isn't indexed on a *.workers.dev address. Custom domain and www → apex redirect configurations are set once in the Cloudflare dashboard.
The site employs a release process that builds only the first N sections, starting with N set to 222. This number increases by 50 pages weekly, with each batch covering all three primary markets (Indian, European, and American). Links on other pages use an isPublished() check to ensure they only point to built pages, and a link checker runs after every deployment.
Additional features include automatically generated social previews for pages using Playwright, PDFs for chart pages, and Pinterest pins based on the generated images. An RSS feed lists the images, ensuring they remain up-to-date with new releases. The data used for the site was meticulously checked and cleaned, with derived columns recalculated for every row to find and correct errors in the original standards. All data is available on GitHub as CSV and JSON files.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.