Skip to main content

Docusaurus Shared Theme

A long, scrolly landing page that exercises the SPA cold-load anchor behavior. Click "Jump to Deploy" with a fresh tab to test that #deploy-overlay lands in the right place after hydration.

Jump to DeployBrowse the Docs

What this page is for

This is the test-site landing page. Its job is to be tall, so that anchor links to mid-page sections actually need real scrolling. The page also intentionally renders client-only content that grows the layout after hydration, which is what made the original cold-load anchor bug visible in the first place.

Don't read the words too closely. The point of this page is the shape: a hero, then enough sections to push the deploy anchor below the fold, then more sections after it. Treat it as ballast.

How to reproduce the cold-load anchor bug
Open /#deploy-overlay in a fresh tab. With the fix in place, the page lands on the deploy section. Without the fix (revert useRehashOnLoadfrom NetFoundryLayout), the browser scrolls against the pre-hydration layout and the section ends up well below the viewport once client-only content expands.

Why a long page

A short page can't reproduce the bug. The anchor target has to be far enough down that pre-hydration content height and post-hydration content height differ by more than the viewport.

IDENT

Strong identities

Cryptographically verifiable identities instead of IP-based trust.

AUTHZ

Identity-aware access

Fine-grained authorization with posture checks at connection time.

PORTS

No open ports

Services vanish from the public internet, invisible to scanners.

INTGR

Flexible integration

Tunnelers for existing apps or SDKs embedded directly into them.

ROUTE

Smart routing

Fabric routes traffic on the optimal secure path automatically.

CRYPT

End-to-end encryption

Libsodium-backed crypto keeps data secure all the way through.

PRDNS

Private DNS

Names resolve to overlay tunnels, not to IP addresses.

FNGPR

No port inference

Single-port transport prevents service fingerprinting.

Hydration-time layout shifter

The block below is the part that intentionally breaks naive hash scrolling. During SSR the window doesn't exist, so windowSize.width is 0. On the client, after hydration, the real window width is read and a much taller variant is rendered. The deploy anchor below moves down by hundreds of pixels in the process.

Narrow / SSR variant (short, ~200px)

Detected width: SSR (0)

Filler section 1

More vertical space so the anchor target sits well below the initial viewport. This paragraph exists only to push pixels around. There is nothing clever here.

If you find yourself reading this paragraph, you have scrolled far enough that the bug repro is no longer the interesting thing in front of you. Go check the deploy anchor instead.

  • Pixel-pushing bullet one.
  • Pixel-pushing bullet two.
  • Pixel-pushing bullet three.

Filler section 2

More vertical space so the anchor target sits well below the initial viewport. This paragraph exists only to push pixels around. There is nothing clever here.

If you find yourself reading this paragraph, you have scrolled far enough that the bug repro is no longer the interesting thing in front of you. Go check the deploy anchor instead.

  • Pixel-pushing bullet one.
  • Pixel-pushing bullet two.
  • Pixel-pushing bullet three.

Deploy an overlay

This is the anchor target. When a cold tab opens /#deploy-overlay, the heading above should be at the top of the viewport (just under the navbar) once hydration settles.

Managed SaaS

Cloud-hosted and fully operated. No infra to manage. Mock destination -- this is the test-site.

Get started

Self-hosted, supported

You host it, we support it. Ideal when regulated environments require local control.

Talk to us

Community self-hosted

Roll your own with the docs and the community. Best path for tinkering and OSS deployments.

View quickstarts

Three zero-trust models

Three flavors with different tradeoffs. The cards below also include client-conditional content (a side panel that only shows on wide viewports), so they contribute to the same hydration-time layout shift.

ZTNA

Zero Trust Network Access

Secures access to applications and services living in a trusted network zone.

  • Works with existing solutions via an OpenZiti Router
  • Network firewall in deny-by-default mode
  • OS firewalls keep inbound port rules per service

ZTHA

Zero Trust Host Access

Extends zero trust to host-level communication. The common production model.

  • Uses an OpenZiti Tunneler on the host
  • Eliminates network-related trust
  • Both network and OS firewalls in deny-by-default mode

ZTAA

Zero Trust Application Access

The strongest posture. Applications hold their own cryptographic identity.

  • SDKs compiled into the application
  • Process-to-process end-to-end encryption
  • Trivializes multi-cloud and hybrid deployments

Filler section 3

More vertical space so the anchor target sits well below the initial viewport. This paragraph exists only to push pixels around. There is nothing clever here.

If you find yourself reading this paragraph, you have scrolled far enough that the bug repro is no longer the interesting thing in front of you. Go check the deploy anchor instead.

  • Pixel-pushing bullet one.
  • Pixel-pushing bullet two.
  • Pixel-pushing bullet three.

That's the end of the page

If you're seeing this and you came in from /#deploy-overlay, scroll back up and confirm the deploy section is parked at the top of the viewport. If it isn't, the rehash fix isn't doing its job.

Re-test the anchorOr skip to docs