Main page. Just simple HTML, CSS and JS. https://asxp.io
  • Ruby 66.9%
  • HTML 23.5%
  • CSS 5.9%
  • JavaScript 2.7%
  • Nix 0.4%
  • Other 0.6%
Find a file
Sergei Poljanski feac965d02
bingo: a page per datacenter
Everything lived on one URL per language, with each datacenter's
details and incidents inside a <dialog>. That page can rank for the
brand and a couple of head terms, but not for searches like
"Yandex Sasovo drone strike".

Add /:locale/dc/:slug for every datacenter, reserve included. Each page
has its own title (naming the latest incident when there is one), a
description built from the facts, canonical and hreflang links, the
photo as og:image, and JSON-LD Place + BreadcrumbList. It shows the
facts in a sentence or two, the incident list with sources, and
prev/next links by position. The slug never changes, so the URLs are
stable.

The card cells are now links to these pages. A plain click still opens
the dialog, while modified clicks open the page. The dialog and the
incident log link to the page too, and the sitemap lists every page in
all three languages. The layout takes title, description, alternates
and JSON-LD from the route, and the dialog and the page share the meta
and incident partials.

Assisted-by: Claude:opus-5
2026-10-10 09:40:16 +04:00
.forgejo/workflows bingo: stop serving bingo.asxp.io 2026-10-10 06:07:37 +04:00
assets/bingo bingo: serve real favicon files 2026-10-10 09:27:44 +04:00
bin tests: minitest + rack-test suite, bin/test with ephemeral Postgres 2026-07-02 17:32:14 +04:00
db bingo: lastmod from the last edit, not the last insert 2026-10-10 09:30:37 +04:00
lib bingo: a page per datacenter 2026-10-10 09:40:16 +04:00
public invoices: self-contained payout addresses 2026-10-10 09:17:09 +04:00
test bingo: a page per datacenter 2026-10-10 09:40:16 +04:00
views bingo: a page per datacenter 2026-10-10 09:40:16 +04:00
.dockerignore tests: minitest + rack-test suite, bin/test with ephemeral Postgres 2026-07-02 17:32:14 +04:00
.env.example bingo: serve bingo.asxp.io too, credit asxp.io in footer 2026-10-10 06:00:39 +04:00
.gitignore ltc payments 2026-06-08 18:43:01 +03:00
asxpio.rb invoices: self-contained payout addresses 2026-10-10 09:17:09 +04:00
bingo_web.rb bingo: a page per datacenter 2026-10-10 09:40:16 +04:00
CLAUDE.md CLAUDE.md: document the bingo SEO changes 2026-10-10 09:31:25 +04:00
config.ru bingo: serve bingo.asxp.io too, credit asxp.io in footer 2026-10-10 06:00:39 +04:00
docker-compose.yml bingo: stop serving bingo.asxp.io 2026-10-10 06:07:37 +04:00
Dockerfile bingo: SEO pass and resized photos 2026-10-10 06:26:03 +04:00
flake.lock ruby rework with contact form 2026-05-05 00:45:27 +04:00
flake.nix gems: add pg, sequel, prawn, aws-sdk-s3 for invoicing 2026-05-26 17:29:21 +03:00
Gemfile tests: minitest + rack-test suite, bin/test with ephemeral Postgres 2026-07-02 17:32:14 +04:00
Gemfile.lock tests: minitest + rack-test suite, bin/test with ephemeral Postgres 2026-07-02 17:32:14 +04:00
Rakefile tests: minitest + rack-test suite, bin/test with ephemeral Postgres 2026-07-02 17:32:14 +04:00