Skip to content

Repository files navigation

Fluxora — project site

Live: https://fluxora-website.vercel.app

The public site for Fluxora, a continuous payment streaming primitive for Soroban.

Static output, no backend, no runtime chain calls. It is meant to still be the right site in a year when an integrator arrives from a docs link.

npm install
npm run dev      # local
npm run build    # -> dist/

What is here

page contents
/ What Fluxora is, the stream lifecycle, what you build on it, a quickstart against the deployed contract, what has been verified and how, known limitations, and status
/abi/ Function surface, the Stream struct, invariants I1–I5, accrual semantics including pause and cliff, and error codes
/limitations/ KNOWN-LIMITATIONS.md reproduced in full

How the content stays true

Every number on the site comes from src/data/contract.ts, and every value there was taken from the contracts repository or a live network query. Nothing is estimated. If a figure could not be verified it does not appear.

The ABI page does not transcribe the contract. src/data/generated/interface.rs is the verbatim output of

stellar contract info interface --id <CONTRACT> --network testnet

and src/data/parseInterface.ts parses it at build time. The function signatures rendered on the page are the ones the chain reports. Hand-written encoding against this contract is exactly what broke the previous frontend, so the site does not do it.

src/data/generated/KNOWN-LIMITATIONS.md is vendored from the contracts repo, minus only its title line, which the page supplies.

To refresh after a contract change, re-run the command above into src/data/generated/interface.rs, re-copy the two markdown files, and update the hashes in src/data/contract.ts.

Design

Ground: the marine chronometer and its almanac — the instrument built to hold exact time continuously, well enough to settle a position. Same pair of ideas as the contract.

Five tokens. Two accents, each with exactly one job, so colour carries meaning: brass is movement (accrual, and only accrual), verdigris is proof (verified facts, and only verified facts). Dark mode is the same instrument illuminated at night, not a second palette.

Type: Libre Caslon Display for display — the Nautical Almanac was set in Caslon, which is a better fit for the almanac direction than a contemporary variable serif; IBM Plex Sans for body; IBM Plex Mono for every quantity, with tabular figures so digits do not jitter while the gauge accrues. All three are self-hosted, so no network request can blank the text.

The one bold element is the settlement gauge in the hero. It shows both halves of the thesis at once: a figure that visibly moves, and the identity vested + refundable = deposited that visibly stays true while its terms change. It is client-side arithmetic over fixed numbers, labelled as an illustration inside the component itself so the disclaimer cannot be separated from the figure by a layout change.

Motion is spent there and nowhere else. Under prefers-reduced-motion the gauge settles to a static mid-schedule value with the identity satisfied, rather than freezing mid-transition.

Accessibility

  • AA contrast verified for every foreground/background pair in both themes, including 12px labels — which are normal-size text by WCAG, not large.
  • The signature element works at 380px rather than degrading; the illustration disclaimer stays legible and unclipped there.
  • One h1 per page, headings in order, visible focus on every focusable, skip link, no horizontal overflow.

Deployment

Vercel is the live targethttps://fluxora-website.vercel.app. Deploys from this directory with vercel deploy --prod; settings are in vercel.json.

GitHub Pages is also wired up via .github/workflows/deploy.yml and works once Pages is enabled with source "GitHub Actions" in repository settings.

One thing to know before switching targets

Vercel serves from the domain root; GitHub Pages serves this as a project site under /Fluxora-Website/, which needs a base. astro.config.mjs reads DEPLOY_TARGET and applies the base only for pages. Getting this wrong is silent and total — every internal link and asset URL resolves to the wrong place — so the Pages workflow sets DEPLOY_TARGET: pages explicitly and everything else (Vercel, local dev) defaults to root.

Set SITE_URL to override the canonical/OG origin for a non-default domain.

About

Fluxora — a continuous payment streaming primitive for Soroban. Project site and ABI reference.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages