Two days ago I shipped 100 document parsers with one command. Yesterday I did 100 finance validators. Same playbook.
The pattern
- Build a small API (Cloudflare Worker)
- Write a JSON list of 100 keywords
- Template + generator script → 100 SEO pages
- Sitemap + IndexNow → 527 URLs pinged to Bing/Yandex
- Landing page with a live demo
- Pricing via Suby (crypto + card)
This works because:
- Each of the 100 pages targets a specific search query
- Each page has unique content (own examples, own FAQ, own schema)
- Zero cost per page — Cloudflare Workers free tier handles everything
- Total build time: ~2 hours
What I built this time
Finance Tools — 5 validators behind one API:
- IBAN (80+ countries, mod-97 checksum)
- EU VAT (format for 28 countries)
- SWIFT/BIC (bank + country + location + branch)
- LEI (ISO 17442, mod-97-10)
- Credit cards (Luhn + brand detection: Visa, Mastercard, Amex, Discover, JCB, Diners, Maestro, UnionPay)
Live landing: https://boring-saas-infra.pages.dev/finance-tools
Try it (no signup):
curl "https://finance-validators.boring-saas-infra.workers.dev/iban?value=DE89370400440532013000"
→
{
"valid": true,
"iban": "DE89370400440532013000",
"country_code": "DE",
"check_digits": "89",
"bban": "370400440532013000",
"length": 22
}
The 100 pages
Each of these has its own page at /validate/{slug}:
- 30 IBAN validators — one per country (Germany, France, UK, Spain, Italy, Netherlands, Belgium, Switzerland, Poland, …)
- 20 VAT validators — Germany, France, UK, Italy, Spain, Netherlands, Belgium, Austria, Poland, …
- 20 SWIFT validators — USA, UK, Germany, France, Switzerland, Japan, China, Singapore, Hong Kong, …
- 15 LEI validators — bank, corporation, fund, insurance, broker, government, nonprofit, …
- 15 card validators — Visa, Mastercard, Amex, Discover, JCB, Diners, Maestro, UnionPay, Luhn, …
Example pages:
- https://boring-saas-infra.pages.dev/validate/validate-iban
- https://boring-saas-infra.pages.dev/validate/validate-vat-germany
- https://boring-saas-infra.pages.dev/validate/validate-visa
Each page has:
- Unique
<title>+ meta description - Its own sample input and sample JSON output
- cURL example customized to that validator
- 5 FAQ items
- Schema.org
Product+BreadcrumbList+FAQPage - Working live demo hitting the real API
- Related validator chips
The generator
products-finance.json (excerpt):
[
{"slug":"validate-iban","name":"IBAN","type":"iban","category":"IBAN"},
{"slug":"validate-iban-germany","name":"German IBAN","type":"iban","category":"IBAN","country":"DE","sample":"DE89370400440532013000"},
{"slug":"validate-vat-germany","name":"German VAT","type":"vat","category":"VAT","country":"DE","sample":"DE123456789"},
{"slug":"validate-visa","name":"Visa","type":"card","category":"Card","sample":"4111111111111111"}
]
generator-finance.cjs does the rest:
node generator-finance.cjs
→
Generated 100 pages in output/validate/
sitemap.xml updated — 527 URLs total
llms.txt updated — 100 validators
The Worker
Single Cloudflare Worker, 5 endpoints. Core IBAN mod-97:
function mod97(str) {
const rearranged = str.slice(4) + str.slice(0, 4);
let expanded = "";
for (const ch of rearranged) {
const code = ch.charCodeAt(0);
expanded += (code >= 48 && code <= 57) ? ch : (code - 55).toString();
}
let remainder = 0;
for (const ch of expanded) {
remainder = (remainder * 10 + parseInt(ch, 10)) % 97;
}
return remainder;
}
LEI uses a slightly different algorithm (mod-97-10), cards use Luhn, SWIFT is length + format. Whole worker is ~250 lines.
Pricing
- Free — 50 validations/day, no API key
- Pro — $19.99/mo, 5,000 validations, batch, VIES lookup for VAT
Stripe alternative: Suby. Crypto + card. Live in 5 minutes.
Stack
- Cloudflare Workers (API)
- Cloudflare Pages (static pages)
- Node.js generators (no deps)
- IndexNow (ping Bing/Yandex)
- Suby (payments)
Total cost: $0.
What's next
- Google Sheets add-on:
=VALIDATE_IBAN(A1) - Bulk validation endpoint
- VIES integration for Pro tier
- Two more programmatic streams: Monitoring, Compliance
Try
- Landing: https://boring-saas-infra.pages.dev/finance-tools
- Example page: https://boring-saas-infra.pages.dev/validate/validate-iban
- API: https://finance-validators.boring-saas-infra.workers.dev
If you're building KYC, SEPA, VAT, or checkout flows — the free tier is genuinely free.
Happy to answer questions about the programmatic SEO setup, the generators, or the Worker code.
Top comments (2)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.