# Fjf2or partner preview

English static demonstration, isolated from production. Evidence date: 10 October 2026.

## Open locally — no server or port

Copy/extract the reviewed public bundle to a desktop computer. Open `index.html` directly in a modern browser; keep all sibling files together. This uses a local `file://` document and requires no install, network, wallet extension or RPC. On a remote server, use your existing file-transfer mechanism; do not expose the project directory. Some mobile file viewers disable JavaScript; use a full browser and the same directory, or arrange an approved static HTTPS preview later.

Walkthrough: read readiness badges → validate public inputs → switch to archived response → inspect synthetic settlement records → open `api.html` for the rendered API/OpenAPI documentation or the printable partner brief. Launch inputs are never persisted or transmitted. The unsigned artifact is an archived fixture independent of edited inputs. To make a PDF, open `partner-brief.html`, Print → Save as PDF, choose A4 and disable browser headers/footers. The print layout is designed for one page; pagination must be verified in your browser before sharing a PDF.

Contact: `Contact us` / `Become a Partner` lead to the form and `partners@fjf2or.com`, supplied by the project owner. The form opens a correctly addressed `mailto:` draft in your configured email app, with encoded subject/body. Contact details are passed to that email app only after you click the button. The page does not send mail, call a backend or store your details; you must review and send yourself. If the browser/app cannot handle mailto, use the fallback link or address manually. Mailbox provisioning and delivery were not checked. Do not include secrets or private keys.

Final Cloudflare Pages Direct Upload package: `fjf2or-cloudflare-pages-final.zip`. The ZIP has `index.html` at its root, with no enclosing directory. Earlier version ZIPs are historical and should not be uploaded. It includes `api.html` and `docs.css`; `API.md` remains a downloadable source reference, not the primary documentation view.

## New presentation tests

From `/opt/stonk-copy-analysis`:

```sh
node analysis/partner-demo/test-demo.js
```

This tests only the new presentation, safety boundary and asset consistency. It does not repeat the existing launch/API/ledger suites or import the production builder, RPC, signer or dotenv. Results: `test-results.json`. Existing 27 API and 36 pilot test results are historical evidence, not rerun here.

Browser rendering tooling is unavailable in the build environment; desktop/mobile screenshot checks remain required on an actual browser. The tests check responsive rules and UI behavior in a minimal DOM harness; they do not prove visual appearance or print pagination.

## Public deployment plan — approval required

No deployment or listener was started. If publication is approved:

1. Choose an operator-controlled domain/subdomain and static hosting account. Verify ownership and DNS. No domain or TLS certificate was purchased/configured by this task.
2. Upload **only** reviewed files from `public-manifest.json` or `fjf2or-partner-preview.zip`. Never upload the repository, parent analysis directory, dotfiles, node_modules, RPC config or production state. The ZIP is a static public allowlist; no backend modules.
3. Serve static HTTPS, redirect HTTP to HTTPS, disable directory listing and enable caching with versioned asset updates. Keep all demo badges and production limitations visible.
4. Configure headers: CSP matching the HTML policy (`connect-src 'none'`), `frame-ancestors 'none'` at HTTP header level, `X-Content-Type-Options: nosniff`, `Referrer-Policy: no-referrer`, `Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()`. Use HSTS after HTTPS is validated; do not preload/include all subdomains without reviewing the domain's other services. `frame-ancestors` cannot be enforced through a meta tag.
5. Validate desktop/mobile, keyboard navigation, file downloads and print preview on the approved domain. Verify no network connections other than static same-origin assets. External links are user-initiated only.
6. Keep the transaction API separate and disabled. Publishing this site is not authorization to publish `/v1` endpoints, add RPC access, connect wallets or enable signing.

No local-server command is needed or included. Local binding is also a port opening and must not be performed under the current instruction. Hosting/domain costs require a provider quote; this package does not advertise a free or fixed-price hosting service.

## Showing partners

The reviewed ZIP and one-page brief can be shown as an **offline technical review**. Contacting or sharing with a partner still requires the user's consent. Do not claim a live endpoint, new users, actual revenue, guaranteed liquidity or commercial share. Start with the LaunchBlitz / J7 / Uxento sequence recorded in `analysis/PARTNER-CONTACTS.md`; that contact report is intentionally not exported in the public ZIP.

## Final release for fjf2or.com

Upload `fjf2or-cloudflare-pages-final.zip` using the Cloudflare Pages dashboard Direct Upload / drag-and-drop option. No build step or backend is required. `_headers` applies the static CSP and security headers after deployment. JSON and Markdown remain optional downloads; `api.html` is the partner-facing API/OpenAPI reference. Do not upload this working directory: it also contains tests, old ZIPs and release evidence. Use only the final archive.

Publishing is not performed by this package. Domain association, DNS and email configuration must be handled separately by the authorized operator; this task changes none of them. After an authorized upload, verify the HTTPS homepage, API navigation, downloads and mailto on the actual domain. The website may be published as a DEMO/OFFLINE partner preview; the transaction platform/API is not production-approved.

Source: [Cloudflare Direct Upload](https://developers.cloudflare.com/pages/get-started/direct-upload/) and [static headers](https://developers.cloudflare.com/pages/configuration/headers/). ZIP upload is supported through dashboard drag-and-drop, not the Wrangler ZIP path.
