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 (0)