• Websites
  • 2026

Oniyanma Dōjō: WordPress to Next.js website migration

Every word of the old site kept, and a training calendar the owner updates himself.

The Oniyanma Dōjō website

At a glance

Client
Ninjutsu school for children and adults in Kirchberg ob der Donau and Linz, Upper Austria.
Role
Elenion: the build, Railway and Cloudflare; the dojo owner supplied the texts, the calendar sheet and the imagery.
Services
  • Website rebuild
  • WordPress migration
  • Accessibility
  • Lead forms and email
  • Custom integrations
Timeline
2026

Results

  • His words kept

    the old texts carried as written, 30 suspected typos put to the owner

    Source: The second pass's migration rule; the question sheet to the owner, 2026-11-10

  • His calendar

    the site reads the Google Sheet he already keeps and shows the dates

    Source: The calendar design in the project's plan, ratified 2026-11-10

  • Accessibility

    audit passed on every page, desktop and phone, on the release build

    Source: Playwright and axe-core plus four further checks, 18 pages, local build, 2026-11-12

  • Old links work

    old addresses reach their new pages in one hop, on the release build

    Source: curl check of the hosted release build after the push, 2026-11-12

The problem

Oniyanma Dōjō teaches Bujinkan Ninpō Budō Taijutsu, Ninjutsu, to children, adults and advanced students in Kirchberg ob der Donau and Linz, Upper Austria. It opened in Linz in 2013 and extended its training to the Rohrbach district in early 2023; its instructor, Aleksandar Milošević, is a Bujinkan Shihan, 14. Dan. The WordPress site exported as 20 pages, 13 seminar posts, a directory of ten partner dōjō and two locations, in German, and it still serves oniyanma.at today. A first rebuild in the summer went up on a hosting preview with every page answering, and the dojo's owner compared it with the live site and sent it back: texts had been rewritten and shortened, images were small and wrong, every inner page sat on one template. The cutover was halted before DNS was touched. The second pass began in November with one rule: this is a migration, not a rewrite, and the old site's words are the content.

What we did

Eighteen pages: twelve German pages and three training programs, plus three seminar pages in English (the Gasshuku stays German, as on the old site). Every text from the old site is carried word for word, wording, sentence order and list structure included; only navigation, buttons, form labels, messages and metadata are new. Thirty suspected typos in the old texts were listed on one question sheet for the dojo owner, who ruled on each; nothing was corrected silently. He also chose du throughout, with Sie kept for the legal texts.

The training calendar is his published Google Sheet. The server reads it once an hour and renders the dates as the site's own tables: the next sessions on the homepage, the full list by month on its own page. No embedded spreadsheet, no request from the visitor's browser to Google. If the read fails, the last good copy stays; with none, a link to the document. A check in the build holds the published opening hours equal to the sheet.

Two forms: a German contact form, which also serves the free trial training page, and an English seminar registration. Both run a honeypot, field validation and a bot check, then send through Postmark to the dojo and a confirmation to the sender; a failure to reach the dojo is an error, not a silent success. The WordPress addresses (programs, the instructor page, seminars, partners and locations) redirect to their new homes in one hop. Photographs in flow are black and white, one treatment; the three program illustrations and the instructor's likeness are the owner's. An accessibility check with four further checks (form method, autocomplete, hover and focus contrast, page overflow) runs across all 18 pages at desktop and phone widths, and a second guard scans the finished pages for the dashes the owner banned.

The hard part

A calendar that belongs to the owner and not to the code. Training days, times and places change through the year, and the one thing a dojo owner will keep current is the sheet he already keeps. The template answer is an embedded Google Sheet, which hands every visitor's page view to Google before any consent and looks like a spreadsheet. The site instead reads the published sheet on the server, caches it for an hour, maps the sheet's place words to the venue labels the owner named and renders the result as the site's own tables, with the last good copy held if Google is unreachable. The owner's one recurring duty is to add the 2027 dates to the same sheet before mid-December; nothing changes in code.

What changed

The rebuilt site is built and in release: it runs on its hosting, 18 pages answer, the old addresses reach their new pages in one hop and the accessibility check is clean on every page at desktop and phone widths. It is not yet on oniyanma.at, which still serves the WordPress site, and no cutover date exists; the domain comes last, after the mail sending and the bot check have been proven on the release build. Nothing has been measured on the live domain, and this study claims no result there. What the dojo owner gets is a site whose words are his, whose calendar he already edits and whose inquiries reach him with a confirmation to the sender.

← All work

Systems built to last. Start with a conversation.

No shortcuts, no fluff. Tell us what you're running and where it hurts.

Start a project