Skip to content

docs: redesign the README and GitHub presence for 1.2.0 - #2

Merged
iitzSeriZdev merged 7 commits into
mainfrom
claude/tender-maxwell-quxfys
Sep 24, 2026
Merged

iitzSeriZdev merged 7 commits into
mainfrom
claude/tender-maxwell-quxfys

Conversation

@iitzSeriZdev

@iitzSeriZdev iitzSeriZdev commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

What this changes

Documentation, the docs deployment and community files only. No application code, installer behaviour or VERSION changes: git diff main -- src installer tools tests template VERSION package.json is empty.

Important

Merge #3 first, and don't publish 1.2.0 without it. While preparing this I found a release blocker in the packaging: a release built from main could not be installed, and updating from 1.1.0 left row-template unable to start. #3 fixes it and tests both paths against the real tarball and the real v1.1.0 updater. Merge this PR when 1.2.0 is published, since the README describes 1.2.0.

README (all five languages)

  • Structure: redesigned around 1.2.0 in this order: hero with quick links, what it is, why, design gallery (15 designs, from the existing preview captures), features, supported panels, architecture (Mermaid diagram and repository layout), installation, usage, development, testing, roadmap, contributing, security, support, license.
  • Corrected claims (every claim was checked against the code):
    • Activation does change a panel setting (subThemeDir). It's the only setting any shell code writes, and automatic activation briefly stops and restarts the panel.
    • Uninstall clears subThemeDir when it points at Row-Template.
    • version shows the installed, minimum-supported and detected 3X-UI versions.
    • The embedded Vazirmatn font is under the OFL.
  • Panels: 3X-UI is supported. PasarGuard and Rebecca are research, with no installation path, matching the docs site. Marzban and Marzneshin are removed (nothing in the repo mentions them).
  • Translations: Persian, Arabic, Russian and Chinese follow the same structure. Code blocks, the diagram, commands, paths, URLs and wallet addresses are byte-identical to English. Unchanged passages reuse the existing translations word for word, and doc-site links go to the Persian and Arabic pages where they exist. A native-speaker review of the new passages is recommended.

Docs site: GitHub Pages (.github/workflows/docs.yml)

  • Workflow: builds on PRs that touch docs/ and deploys from main only. Minimal permissions: pages/id-token write only on the deploy job.
  • Base path: site and base are /Row-Template/. Content keeps its root-relative links; docs/plugins/base-links.mjs (a small plugin with no dependencies) adds the base at build time, and the preview components use BASE_URL.
  • Dependency: @astrojs/markdown-satteri@0.4.1 is now declared explicitly. It's the exact version Astro 7.3.3 already pins and installs, and the lockfile gains one line.
  • Other fixes: adds the favicon.svg every page already linked (a 404 on main too), plus the GitHub link and "Edit page" links.

Other files

  • docs/design/: the 26 planning and audit documents move here from the repo root (git mv, history kept), with an index grouped by area. Nothing reads them; code comments cite them by bare file name, and those names are unchanged.
  • CHANGELOG.md: a [1.2.0] - Unreleased entry covering the 48 commits since v1.1.0, each line checked against the code. It includes the two-step upgrade from 1.1.0, which fix(release): ship the installer's companions so 1.2.0 installs and upgrades from 1.1.0 #3 makes possible and tests.
  • PROVENANCE.md: now lists the actual tarball contents (templates/, shells/, panels/, checksums).
  • CONTRIBUTING.md: adds translations, designs, the docs site and design records.
  • New: CODE_OF_CONDUCT.md (Contributor Covenant 2.1, reports via GitHub "Report content"), .github/pull_request_template.md, and .github/FUNDING.yml (the NOWPayments link).

Settings only you can change

  • Pages: Settings → Pages → Source: GitHub Actions. The site then publishes at https://iitzseridev.github.io/Row-Template/.
  • Homepage: set to https://iitzseridev.github.io/Row-Template/.
  • Description: Self-contained, white-label subscription page for 3X-UI panels: 15 designs, each one HTML file, no CDNs or external requests, 5 languages, checksum-verified installer with rollback. (It currently has a trailing space.)
  • Topics:
    • Remove pasarguard, rebecca and automation.
    • Keep 3x-ui, subscription, subscription-template and template.
    • Add xray, subscription-page, white-label, self-hosted, i18n, rtl and qr-code.
  • Social preview: upload docs/assets/row-template-banner.png (2560×1280, 311 KB). ⚠️ The banner is stamped v1.1.0, so consider re-exporting it for 1.2.0; it's also the README hero.
  • Moderation: Settings → Moderation → allow reported content to reach maintainers (the code of conduct points there).
  • Wiki: it's enabled but empty; turn it off.

Draft release notes for v1.2.0

**Row-Template v1.2.0 — Fifteen designs**

A minor release. Row stays the default design, and 3X-UI (>= 3.6.0) stays the only supported panel.

### Added
- **Fifteen designs** — Row plus Editorial, Canvas, Prism, Terminal, Pulse, Brutal, Arcade, Sketch, Signature, Saffron, Pulse Nova, Prism Nova, Terminal Nova and Arcade Nova. Choose one in the install chooser, with `RT_TEMPLATE=<id>`, or later from the manager (Reconfigure branding → Template). Updates keep your choice.
- Each design ships with its own SHA-256 checksum; `row-template verify` checks them.
- Flags for DE, FR, NL, JP, SE and US are drawn with CSS, so they show on Windows in Chromium-based browsers.
- Documentation site in English, Persian and Arabic: https://iitzseridev.github.io/Row-Template/

### Changed
- Panel database detection fails closed on a file that is not SQLite, instead of silently using another database.
- Live refresh ignores a response that lacks the page's own fields.

### Updating from 1.1.0
Run `row-template update` **twice**. The first run is carried out by 1.1.0's own updater: it installs 1.2.0 and keeps your branding, but only Row is available. The second run, carried out by 1.2.0, installs every design and the remaining installer files. `row-template verify` tells you if the second run is still needed.

### Install / update
    bash <(curl -fsSL https://github.com/iitzSeriZdev/Row-Template/releases/latest/download/install.sh)

Add the artifact's SHA-256 and a "validated against" 3X-UI version once they're known. The validation claim is still left out because I can't verify it.

How it was checked

  • npm test: 639/639 pass
  • npm run verify passes
  • npm run build leaves the tree clean (no source changed)
  • npm run lint:sh: 9 scripts clean
  • cd docs && npm ci && npm run build: 37 pages, the same as main. The 36 Vite MODULE_LEVEL_DIRECTIVE warnings are identical on main.
  • The Docs workflow passed in CI on this PR (run feat(installer): complete P5A hardening and validation #1, GitHub-hosted runner)
  • Built-site link check: all 1,072 internal href/src/srcset URLs resolve under /Row-Template/ (0 problems; main had 37, the favicon)
  • actionlint passes on the workflow
  • All 193 relative links in the repository's 39 Markdown files resolve. One more hit, data:,, is example text inside inline code in a historical document.
  • README parity (all five languages): code blocks, inline code, URLs, images, heading structure and table rows match English, and there are no invisible characters
  • All five READMEs rendered in Chromium: the Mermaid diagram renders, all 16 local images load, and every in-page anchor resolves

Before you submit

  • No secrets: no subscription URLs, subId, UUIDs, credentials, tokens, keys or real server addresses
  • User-facing changes are noted in CHANGELOG.md under 1.2.0
  • The translated READMEs keep the same commands, paths, URLs and wallet addresses

🤖 Generated with Claude Code

https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3

Twenty-six audits, designs, decision records and plans sat at the
repository root, so GitHub listed them ahead of the README. They move,
unchanged, to docs/design/ (git mv keeps their history), and
docs/design/README.md indexes them by area: templates, country flags,
panel compatibility, installer, documentation platform.

The index says plainly that these are historical records: their own
"Status" lines describe the project when they were written, and several
marked "proposal only" have since been implemented.

Nothing reads these files. The six code and test files that mention
them do so in comments, by bare file name, so the names are kept as
they were and no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The Starlight site under docs/ built but was published nowhere: no
site URL, no deployment, and nothing linked to it.

- .github/workflows/docs.yml builds the site on pull requests that
  touch docs/ and deploys it from main (push or manual run) with
  actions/deploy-pages. Least privilege: contents: read, and pages /
  id-token write only on the deploy job, which runs only on main.
  One-time setup: Settings -> Pages -> Source: GitHub Actions.
- A project site is served under /Row-Template/, so astro.config.mjs
  sets site and base. Content keeps its root-relative links
  (/installation/, /fa/branding/): plugins/base-links.mjs, a
  dependency-free Satteri mdast plugin, adds the base at build time,
  and the two preview components prefix import.meta.env.BASE_URL.
  Moving the site later only means changing `base`.
- @astrojs/markdown-satteri is declared at 0.4.1, the exact version
  astro 7.3.3 already pins and installs; the lockfile gains one line.
- public/favicon.svg: every page linked /favicon.svg, which never
  existed (a 404 on each page load, also on main). It redraws the
  banner's mark in the site's accent colour.
- Starlight gets the repository's GitHub link and "Edit page" links.
- docs/README.md: documents publishing and the base-link rule, points
  at design/ for the ADR it cited at the old root path, and replaces a
  `brand/` directory that never existed with the real layout.

Checked: npm ci and npm run build pass (37 pages, as before; the 36
Vite MODULE_LEVEL_DIRECTIVE warnings are identical on main). Every one
of the 1,072 internal href/src/srcset URLs in the build resolves under
/Row-Template/ to a built file. actionlint passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
CHANGELOG.md gains a [1.2.0] - Unreleased entry covering the 48 commits
since v1.1.0, each item checked against the code:

- Added: the fifteen designs and how to choose one (install chooser,
  RT_TEMPLATE, Reconfigure -> Template; kept across updates);
  per-design checksums that `row-template verify` checks; CSS-drawn
  flags for DE, FR, NL, JP, SE and US (Windows + Chromium shows the
  letters instead); the documentation site; panel shells packaged for
  research, which the installer does not place.
- Changed: panel database detection now fails closed on a file that is
  not SQLite (1.1.0 took the first file found); live refresh ignores a
  response without the page's own fields; the country-code table is a
  bitmap.
- Internal: the multi-panel groundwork, which no row-template command
  calls yet; backups and rollback keep the 1.1.0 format.

Deliberately left out until they can be verified: an upgrade-from-1.1.0
statement and a "validated against" 3X-UI version.

PROVENANCE.md described the tarball as template, VERSION, install.sh,
lib/ and bin/. It now lists what tools/make-release.sh actually packs,
checked against an extracted build: template.html, templates/<id>/ and
shells/<panel>/<id>/ with their checksum sidecars, and the inner
SHA256SUMS. Rebuilding a release now needs Node.js to build the designs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
- CODE_OF_CONDUCT.md: Contributor Covenant 2.1. Reports go through
  GitHub's "Report content" to the maintainers, matching SECURITY.md's
  use of GitHub's private channels; no email address is published.
- .github/pull_request_template.md: a checklist built from the
  repository's real commands (npm test, verify, build, lint:sh, the
  docs build), the no-secrets rule, the changelog, and README
  translation parity.
- .github/FUNDING.yml: the NOWPayments link the README already lists,
  so GitHub shows a Sponsor button.
- CONTRIBUTING.md: links the code of conduct and the PR checklist, and
  adds how translations work (the build rejects a locale catalogue
  whose keys differ from English), where designs live and the contract
  a new one must meet, how to work on and publish the docs site, and
  where the design records are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The README described 1.1.0 and made claims the code contradicts. It is
rebuilt around what Row-Template 1.2.0 does, every claim checked
against the code:

- Hero with a Documentation badge and quick links; a "What it is"
  section; Features grouped for subscribers, for operators, and privacy
  and safety.
- Designs: a gallery of the fifteen designs from the existing preview
  captures in docs/public/previews/, and the three ways to choose one
  (install chooser, RT_TEMPLATE, Reconfigure branding -> Template).
- Supported panels: 3X-UI supported; PasarGuard and Rebecca marked
  research with no installation path, as the docs site already says.
  Marzban and Marzneshin, which nothing in the repository mentions,
  are removed.
- Architecture: a Mermaid diagram of build -> release -> install ->
  subThemeDir -> render, and a repository layout table.
- Installation, Usage, Development, Testing, Roadmap (documented
  direction only), Contributing, Security, Support, License.

Corrected claims:
- "never touches your panel's own files": activation writes the
  panel's subThemeDir setting. It now says that is the only panel
  setting it changes (the only settings key any shell code writes),
  and that automatic activation briefly stops and restarts the panel.
- Uninstall "does not touch ... its database": it clears subThemeDir
  when it points at Row-Template. Now stated as such.
- `version` shows the installed, minimum-supported and detected 3X-UI
  versions, as `row-template help` says.
- The license section now also names the embedded Vazirmatn font
  subset (SIL OFL, src/fonts/OFL.txt).

README.fa.md, README.ar.md, README.ru.md and README.zh-CN.md follow
the same structure. Code blocks, the diagram, commands, paths, URLs
and wallet addresses are byte-identical to English; unchanged passages
(the OS note, the secrets warning, security, support) reuse the
existing translations verbatim; documentation links go to the Persian
and Arabic site locales where they exist. No invisible characters, as
before. Native-speaker review of the new passages is recommended.

Checked: for all five, code blocks, inline code, URLs, images, heading
structure and table rows match English, relative links resolve, the
Mermaid diagram parses and renders, and every in-page anchor resolves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The manager's main menu item is "Reconfigure branding", and Template is
entry 4 of its submenu; the 1.2.0 entry said "Reconfigure -> Template".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
Follows #3, which ships lib/transaction.sh and
panels/ in the release and lets an install that 1.1.0's updater left
incomplete be completed:

- CHANGELOG 1.2.0, Compatibility: updating from 1.1.0 takes two runs of
  `row-template update`. The first is 1.1.0's own updater, which copies
  only the library and the command; the second, by 1.2.0, installs every
  design and the remaining installer files. `verify` reports whether the
  second run is needed. (This statement was held back until it could be
  verified; #3's upgrade test drives exactly this path with the real
  v1.1.0 updater.)
- CHANGELOG 1.2.0, Internal: the release ships the companions, and an
  incomplete payload is refused.
- PROVENANCE.md: the payload table gains panels/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
@iitzSeriZdev
iitzSeriZdev merged commit c9ad71c into main Sep 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants