Bitsocial Web is the public web monorepo for Bitsocial.
It currently serves:
https://bitsocial.net/for the public Bitsocial landing/about sitehttps://bitsocial.net/docs/for Docusaurus docshttps://bitsocial.net/stats/for the Grafana-backed stats dashboard
The public URL strategy is route-first, not subdomain-first. Until the flagship web client takes over bitsocial.net, docs and stats stay under the main domain for SEO and brand consolidation.
about/ Public Bitsocial landing/about site
docs/ Docusaurus docs, i18n files, and contributor playbooks
stats/ Grafana, Prometheus, Docker Compose, deploy config, and monitor package
scripts/ Shared repo scripts and agent hooks
Each top-level subproject has its own local documentation:
The repo root remains the orchestration layer for installs, verification, and cross-project commands.
Use the pinned Node.js version from .nvmrc and Yarn 4 via Corepack.
nvm install && nvm use
corepack enable
corepack yarn installThe main local URL is:
https://bitsocial.localhost
Portless keeps a stable named local URL. On non-master branches, the repo can fall back to a branch-scoped *.bitsocial.localhost route so parallel worktrees do not collide.
corepack yarn start
corepack yarn start:android-usb
corepack yarn start:ios-sim
corepack yarn llms:generate
corepack yarn build:verify
corepack yarn build
corepack yarn docs:build:verify
corepack yarn lint
corepack yarn typecheck
corepack yarn format:check
corepack yarn doctor
corepack yarn build:stats-dashboards
corepack yarn stats:up
corepack yarn stats:down
corepack yarn stats:logsBefore committing code changes, run:
corepack yarn build:verify
corepack yarn lint
corepack yarn typecheck
corepack yarn format:checkUse corepack yarn build only when you intentionally need the full production build, including
the multi-locale docs output.
If you changed React UI logic in about/src/**, also run:
corepack yarn doctorIf dependencies or manifests changed, also run:
corepack yarn deps:check-pinned
corepack yarn deps:check-hardened
corepack yarn knipIf public-facing English content changed, regenerate the LLM indexes:
corepack yarn llms:generateThis keeps about/public/llms*.txt and docs/static/llms*.txt aligned with the landing page,
docs pages, app directory data, public README text, and the generator itself.
- Contains the Bitsocial landing/about site
- Currently also contains the public
/appscatalog and app detail routes - Keeps static assets and translations in
about/public/ - Should not be treated as the long-term home for the apps catalog or the blog
- Contains the canonical Docusaurus project
- Translation source lives in
docs/i18n/ - Contributor playbooks and long-running agent state also live here
- Contains the Grafana/Prometheus stack and deployment files
- The executable monitor service lives in
stats/monitor/ - Public traffic still lands on
bitsocial.net/stats/, with Vercel proxying to the VPS-hosted Grafana origin
- The existing app catalog at
/appsis expected to be extracted fromabout/into its own subproject, and later may move toapps.bitsocial.net. - The blog is also expected to become its own subproject rather than continue to live under
about/. about/should stay focused on explaining Bitsocial as a whole.
Landing-site translations live under:
about/public/translations/{lang}/default.json
Docs translations live under:
docs/i18n/{lang}/...
For translation workflow details, see docs/agent-playbooks/translations.md.
This repo uses tracked AI workflow files and instructions. Read AGENTS.md before making changes.
Relevant local rules also live in:
bitsocial.netis served by Vercel/docsis served from the docs build/statsis routed through Vercel to the VPS-hosted Grafana stacknewsletter.bitsocial.netremains separate
The /apps catalog can show a verified check next to app mirrors when a mirror serves
the same HTML entrypoint hash as an official GitHub release artifact. This is meant to
attest release parity, not domain ownership.
For 5chan and Seedit verified web links, the Vercel 5chan and seedit projects are
configured so Git pushes do not automatically create deployments:
gitProviderOptions.createDeployments = "disabled"
Production domains such as 5chan.cc, 5channel.org, 5chan.app, seedit.app,
www.seedit.app, and p2p.seedit.app should only be updated from a GitHub release
or tag deployment. Do not point those domains at a raw master deployment unless
that deployment has first been promoted into an official release and its static HTML
artifact hash has been checked.
When adding or updating mirror verification metadata in about/src/lib/apps-data.ts,
verify the live mirror HTML against the matching release ZIP before showing the badge.
If the live hash does not match a GitHub release artifact, leave the mirror unverified
until the mirror is redeployed from the release or a new release is cut for the served
artifact.
This repo uses Commitizen for Conventional Commits.
- Interactive:
corepack yarn commit - Non-interactive:
git commit -m "type(scope): message"
The Husky Commitizen hook may print a /dev/tty warning in non-interactive shells, but the commit
can still succeed when the message is already provided. Use --no-verify only when you explicitly
need to bypass local hooks.