From 064c88a3c23ad69e75adc512cae721c35b64f655 Mon Sep 17 00:00:00 2001 From: JesseMarkowitz Date: Sun, 27 Sep 2026 12:21:10 -0400 Subject: [PATCH] Add the Independent Proof LLC holding page A one-page "notice of preparation" in a certificate style: the company is in preparation, there is nothing to do yet, the domain is not for sale, and unsolicited inquiries are not accepted. It carries no contact details of any kind, and search engines are told to stay away (noindex meta and robots.txt). Fonts are self-hosted with their OFL licences, and the seal and guilloche border are static SVG, so the page makes no third-party requests and needs no script. The build copies public/ to dist/, and the Start9 Pages deploy uses the same NextExplorer script as the YPBA site. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_012NBdmeSPq4bFCSE1urk99W --- .gitignore | 10 + README.md | 69 +++ TODO.md | 21 + deploy.local.env.example | 13 + package.json | 10 + public/fonts/OFL-cinzel.txt | 93 ++++ public/fonts/OFL-ebgaramond.txt | 93 ++++ public/fonts/OFL-pinyonscript.txt | 93 ++++ public/fonts/cinzel-latin.woff2 | Bin 0 -> 25904 bytes public/fonts/eb-garamond-italic-latin.woff2 | Bin 0 -> 25388 bytes public/fonts/eb-garamond-latin.woff2 | Bin 0 -> 44336 bytes public/fonts/pinyon-script-latin.woff2 | Bin 0 -> 39044 bytes public/index.html | 164 ++++++++ public/robots.txt | 2 + scripts/build.mjs | 13 + scripts/nextexplorer.mjs | 445 ++++++++++++++++++++ 16 files changed, 1026 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 TODO.md create mode 100644 deploy.local.env.example create mode 100644 package.json create mode 100644 public/fonts/OFL-cinzel.txt create mode 100644 public/fonts/OFL-ebgaramond.txt create mode 100644 public/fonts/OFL-pinyonscript.txt create mode 100644 public/fonts/cinzel-latin.woff2 create mode 100644 public/fonts/eb-garamond-italic-latin.woff2 create mode 100644 public/fonts/eb-garamond-latin.woff2 create mode 100644 public/fonts/pinyon-script-latin.woff2 create mode 100644 public/index.html create mode 100644 public/robots.txt create mode 100644 scripts/build.mjs create mode 100644 scripts/nextexplorer.mjs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a44ef4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Deploy targets and credentials: server hostnames, users, API keys +*.local.env +.env +.env.* +!.env.example + +# Build output and tooling +dist/ +node_modules/ +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..abe976a --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# Independent Proof LLC website + +Source for independentproofllc.com. independentproofllc.org serves the same site. + +Today the site is a single holding page. It says the company is in preparation, that there is +nothing to do yet, that the domain is not for sale, and that unsolicited inquiries are not accepted. +It deliberately carries no email address, phone number, postal address, form, social links or +names, so there is nothing on it for a scraper to harvest. Search engines are told to stay away, +both in the page (`noindex`) and in `robots.txt`. + +## Working on it + +```bash +npm run build # copies public/ to dist/, which is what every deploy sends +``` + +There are no dependencies to install. Open `public/index.html` in a browser to preview it. + +| To change | Edit | +| --- | --- | +| The page's wording, layout or seal | `public/index.html` (the styles are at the top) | +| Whether search engines may index it | the `robots` meta tag in `public/index.html`, and `public/robots.txt` | +| Fonts | `public/fonts/`: Cinzel, EB Garamond and Pinyon Script, latin subset, self-hosted so a visit makes no third-party request. Each font's licence (SIL OFL 1.1) sits beside it. | + +The seal's scalloped edge, rosette and the page's guilloche border are generated geometry, pasted +into the page as static SVG so it needs no script. + +## Deploying + +### Start9 Pages (StartOS test server) + +The same method as the YPBA site: the files live in **NextExplorer**, and Start9 Pages serves them +from there. `scripts/nextexplorer.mjs` talks to NextExplorer's API, and its `deploy` command +publishes the site. + +1. Copy `deploy.local.env.example` to `deploy.local.env` (git-ignored) and fill it in. The password + goes in its own mode-600 file, never in that file. +2. Deploy: + + ```bash + npm run deploy:pages # build and publish + npm run deploy:pages -- --dry-run # show what would be sent + npm run nx -- rollback # put the previous version back + ``` + +3. After the first deploy only: in StartOS, open Start9 Pages → Actions → **Manage Websites**, and + add a site with source NextExplorer and the path that `deploy` prints. + +NextExplorer never overwrites on upload, so `deploy` uploads the build into a fresh folder and then +swaps it into place. One previous version is kept as `.previous`. + +### Public host + +Not chosen yet. See `TODO.md`. + +## Layout + +| Path | What | +| --- | --- | +| `public/` | The site, served as it is | +| `scripts/build.mjs` | Builds `dist/` | +| `scripts/nextexplorer.mjs` | NextExplorer file access and the Start9 Pages deploy (shared with the YPBA site's repo) | +| `TODO.md` | What's left | + +## Rules for this repo + +- Server hostnames, LAN addresses, usernames and passwords go only in git-ignored files + (`deploy.local.env`). The public domains are the site's content and belong here. +- Keep the page free of contact details of any kind until that is a deliberate decision. diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..244b75c --- /dev/null +++ b/TODO.md @@ -0,0 +1,21 @@ +# TODO + +## Before the public launch of the holding page + +- [ ] Choose the cloud host. Deploy to it the same way for this site and the YPBA site: each repo + builds `dist/`, and one deploy command per host sends it (for example rsync or SFTP over SSH, + with the host and user in the git-ignored `deploy.local.env`). +- [ ] Point independentproofllc.com (apex and `www`) at the host, with HTTPS. +- [ ] Make independentproofllc.org and `www.independentproofllc.org` answer with a permanent (301) + redirect to https://independentproofllc.com, so the site has one address. +- [ ] Before either domain gets mail records, decide on email. Avoid a catch-all mailbox: spammers + guess addresses like `info@`. + +## Later + +- [ ] Brand: logo, colours and typefaces. The seal on the holding page is a placeholder. +- [ ] Favicon (the page currently tells browsers there is none). +- [ ] Build out the real site in this repo. Its output still goes to `dist/`, so the deploy + commands keep working. +- [ ] Decide when search engines may index the site; then remove the `robots` meta tag and change + `public/robots.txt`. diff --git a/deploy.local.env.example b/deploy.local.env.example new file mode 100644 index 0000000..bae5a3f --- /dev/null +++ b/deploy.local.env.example @@ -0,0 +1,13 @@ +# Copy to deploy.local.env (git-ignored) and fill in. Used by scripts/nextexplorer.mjs. +NX_URL=https://.local: +NX_USER= +# The password goes in its own file, mode 600, never here: +# ~/.config/nextexplorer/.password (or point NX_PASS_FILE elsewhere) +# The StartOS server's root CA, so TLS is verified: +NX_CA_FILE=~/.config/nextexplorer/-root-ca.crt +# Folder to publish to: /independentproof, or share:/independentproof +NX_DEST=share: