Three sites, one directory each
flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until
October 2026, serving four audiences from a single dated list, which is the only
format that can hold unrelated things at once.
flux.vision is recovered from the Wayback Machine, where it had sat since being
deleted in 2021: 90 articles, closed and maintained rather than updated.
tobias.raayoni-last.com is the professional record, 97 articles back to 1999.
randogoth.com is the technical work, 41 articles across six areas, served as an
ANSI bulletin board.
History starts here deliberately. The development history, the 266-row inventory
that records why each article went where it did, the Wayback pipelines, the
pruned articles, the source archives and the full-size images are kept beside
the repo rather than in it, so a clone is the web presence and not the argument
that produced it. REFACTOR.md is gitignored for the same reason. See README.md
for where that material lives, and keep it: the sort is not reproducible from
these three directories alone.
Each site documents itself in its own README, including the traps that cost time
and look like nothing when you get them wrong.
2026-10-05 20:54:17 +03:00
{% extends "base.html" %}
{% block title %}{{ article.title|striptags }} · {{ SITENAME }}{% endblock %}
{% block content %}
< pre class = "rule" > ════════════════════════════════════════════════════════════════════════════════< / pre >
2026-10-06 08:45:13 +03:00
< pre class = "msghdr desktop-only" > Msg : < b > {{ "%-44s"|format(article.slug) }}< / b > Area : < b > {{ article.category }}< / b >
Three sites, one directory each
flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until
October 2026, serving four audiences from a single dated list, which is the only
format that can hold unrelated things at once.
flux.vision is recovered from the Wayback Machine, where it had sat since being
deleted in 2021: 90 articles, closed and maintained rather than updated.
tobias.raayoni-last.com is the professional record, 97 articles back to 1999.
randogoth.com is the technical work, 41 articles across six areas, served as an
ANSI bulletin board.
History starts here deliberately. The development history, the 266-row inventory
that records why each article went where it did, the Wayback pipelines, the
pruned articles, the source archives and the full-size images are kept beside
the repo rather than in it, so a clone is the web presence and not the argument
that produced it. REFACTOR.md is gitignored for the same reason. See README.md
for where that material lives, and keep it: the sort is not reproducible from
these three directories alone.
Each site documents itself in its own README, including the traps that cost time
and look like nothing when you get them wrong.
2026-10-05 20:54:17 +03:00
From : < b > {{ "%-44s"|format(article.author|default(AUTHOR, true)|string) }}< / b > Date : < b > {{ article.date.strftime('%d %b %Y') }}< / b >
Subj : < span class = "subj" > {{ article.title|striptags }}< / span > {% if article.tags %}
Keys : {% for t in article.tags %}< a href = "{{ SITEURL }}/{{ t.url }}" > {{ t }}< / a > {% if not loop.last %}, {% endif %}{% endfor %}{% endif %}< / pre >
2026-10-06 08:45:13 +03:00
< pre class = "msghdr mobile-only" > Msg : < b > {{ article.slug }}< / b > < / pre >
< pre class = "msghdr mobile-only" > Area : < b > {{ article.category }}< / b > < / pre >
< pre class = "msghdr mobile-only" > From : < b > {{ article.author|default(AUTHOR, true)|string }}< / b > < / pre >
< pre class = "msghdr mobile-only" > Date : < b > {{ article.date.strftime('%d %b %Y') }}< / b > < / pre >
< pre class = "msghdr mobile-only" > Subj : < span class = "subj" > {{ article.title|striptags }}< / span > < / pre >
{%- if article.tags %}
< pre class = "msghdr mobile-only" > Keys : {% for t in article.tags %}< a href = "{{ SITEURL }}/{{ t.url }}" > {{ t }}< / a > {% if not loop.last %}, {% endif %}{% endfor %}< / pre >
{%- endif %}
Three sites, one directory each
flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until
October 2026, serving four audiences from a single dated list, which is the only
format that can hold unrelated things at once.
flux.vision is recovered from the Wayback Machine, where it had sat since being
deleted in 2021: 90 articles, closed and maintained rather than updated.
tobias.raayoni-last.com is the professional record, 97 articles back to 1999.
randogoth.com is the technical work, 41 articles across six areas, served as an
ANSI bulletin board.
History starts here deliberately. The development history, the 266-row inventory
that records why each article went where it did, the Wayback pipelines, the
pruned articles, the source archives and the full-size images are kept beside
the repo rather than in it, so a clone is the web presence and not the argument
that produced it. REFACTOR.md is gitignored for the same reason. See README.md
for where that material lives, and keep it: the sort is not reproducible from
these three directories alone.
Each site documents itself in its own README, including the traps that cost time
and look like nothing when you get them wrong.
2026-10-05 20:54:17 +03:00
< pre class = "rule" > ════════════════════════════════════════════════════════════════════════════════< / pre >
< div class = "msgbody" > {{ article.content }}< / div >
< pre class = "tagline" > --- {{ SITENAME }} BBS
< span class = "origin" > * Origin:< / span > randogoth.com < span class = "origin" > (1:1/1)< / span > < / pre >
feat: replies on every article, in the board's own chrome
A message base is a thing people answer, and until now this one could only be
read. The site already calls its articles messages in areas, so replies are the
feature the metaphor was asking for rather than a comment box bolted onto it.
Talks to the comment server's API directly instead of loading its widget. The
widget is a React app in an iframe and would arrive with its own fonts, spacing
and avatars; an iframe cannot inherit the page's font in any case. Rules are
drawn the way the guestbook draws them, padded to exactly 80 cells, so a reply
is indistinguishable from any other row on the board. All five pre elements in
the section measure 80 in a real browser.
Two things this surfaced, both verified by driving a browser rather than curl:
The command handler took every letter key as a command, which was harmless when
there was nothing on the board to type into. With a message box, typing `i`
navigated to the index mid-sentence. It now ignores keys aimed at an input or
textarea.
bbs.js already says the bracket chrome is a promise rather than decoration, and
[P]ost was drawn without wiring P to anything. P now focuses the message box.
Handles are checked here as well as at the server, since remark42 wants three
or more characters and only letters, numbers, underscores and spaces; failing
in the page is better than a refusal with no explanation.
Without JS the section is simply absent, which is honest, and the capsule never
sees it since Gemini has no way to render it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-06 18:10:23 +03:00
{#- Replies. A message base is a thing people answer, which is the one feature
the metaphor was missing. Filled by bbs.js from the comment server; without
JS the section simply is not there, which is honest, and the capsule never
sees it at all since Gemini has no way to render it. -#}
{%- if COMMENTS_HOST %}
2026-10-06 18:14:23 +03:00
< div id = "replies" data-host = "{{ COMMENTS_HOST }}" data-site = "{{ COMMENTS_SITE }}" > < / div >
feat: replies on every article, in the board's own chrome
A message base is a thing people answer, and until now this one could only be
read. The site already calls its articles messages in areas, so replies are the
feature the metaphor was asking for rather than a comment box bolted onto it.
Talks to the comment server's API directly instead of loading its widget. The
widget is a React app in an iframe and would arrive with its own fonts, spacing
and avatars; an iframe cannot inherit the page's font in any case. Rules are
drawn the way the guestbook draws them, padded to exactly 80 cells, so a reply
is indistinguishable from any other row on the board. All five pre elements in
the section measure 80 in a real browser.
Two things this surfaced, both verified by driving a browser rather than curl:
The command handler took every letter key as a command, which was harmless when
there was nothing on the board to type into. With a message box, typing `i`
navigated to the index mid-sentence. It now ignores keys aimed at an input or
textarea.
bbs.js already says the bracket chrome is a promise rather than decoration, and
[P]ost was drawn without wiring P to anything. P now focuses the message box.
Handles are checked here as well as at the server, since remark42 wants three
or more characters and only letters, numbers, underscores and spaces; failing
in the page is better than a refusal with no explanation.
Without JS the section is simply absent, which is honest, and the capsule never
sees it since Gemini has no way to render it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-06 18:10:23 +03:00
{%- endif %}
Three sites, one directory each
flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until
October 2026, serving four audiences from a single dated list, which is the only
format that can hold unrelated things at once.
flux.vision is recovered from the Wayback Machine, where it had sat since being
deleted in 2021: 90 articles, closed and maintained rather than updated.
tobias.raayoni-last.com is the professional record, 97 articles back to 1999.
randogoth.com is the technical work, 41 articles across six areas, served as an
ANSI bulletin board.
History starts here deliberately. The development history, the 266-row inventory
that records why each article went where it did, the Wayback pipelines, the
pruned articles, the source archives and the full-size images are kept beside
the repo rather than in it, so a clone is the web presence and not the argument
that produced it. REFACTOR.md is gitignored for the same reason. See README.md
for where that material lives, and keep it: the sort is not reproducible from
these three directories alone.
Each site documents itself in its own README, including the traps that cost time
and look like nothing when you get them wrong.
2026-10-05 20:54:17 +03:00
{% endblock %}