findsyou.work · a Factory Zero venture
This repository is the marketing site for FindsYou: one page, one stylesheet
and one script, served by Cloudflare Pages. There is no framework, no bundler,
no build step and no runtime dependency except Cloudflare Turnstile, the human
check on the waitlist form. It was designed in Claude Design
(FindsYou Landing.dc.html) and ported to static HTML.
Stop looking. It finds you work.
Nothing is released. The scan, the eligibility filter and the profile exist as code in the private product repository, but no module is mounted on the public Worker, so nothing here is usable. The only working thing on the site is the waitlist. Every capability carries one of two labels, and the label sets the tense of the sentence around it.
- Shipping: built, deployed, usable now. Present tense allowed only here. Today that is: this page, and the waitlist.
- Planned: named, unbuilt. Conditional tense, and a
plannedchip wherever it appears on the page.
A banner at the top of the page says so in the first sentence a visitor reads,
and llms.txt repeats it for machine readers, so an answer engine
cannot describe a planned feature as available.
The numbers on the page (483 scanned, 34 eligible, 18 worth it, 5 applied) are an illustration of the intended shape, labelled as such in the section itself. They are not measured output, because there is nothing to measure yet.
| Anchor | Section | Job |
|---|---|---|
/ |
Hero | The claim, and a rain of listings where most fall through |
#number |
01 / the number | 483 counts down to 18 as you scroll |
#wall |
02 / the wall of no | The signature screen. Rejected listings, each stamped with the reason |
#remote |
03 / why "remote" is a lie | The six eligibility questions, and a world map that dims as each is answered |
#how |
04 / how it works | Three steps and the funnel |
#trust |
05 / it won't make things up | The provenance refusal: "2 years" rejected against a CV that says "two years" |
#docs |
06 / what you get | The CV and cover letter as objects |
#compare |
07 / the comparison | Everyone else optimises for more. This optimises for fewer |
#price |
08 / price | Free to scan. Paid documents are planned, not chargeable |
#waitlist |
Waitlist | The only form, and the only thing here that works |
Plus 404.html, llms.txt, sitemap.xml, robots.txt, site.webmanifest and
.well-known/security.txt.
.
├── index.html the page, GENERATED, see below
├── 404.html
├── assets/
│ ├── findsyou.css the whole design system, tokens at the top
│ ├── findsyou.js reveal, the three scroll scenes, the waitlist
│ ├── world.svg GENERATED, projected at build time, inlined into the page
│ ├── favicon.svg the mark: things fall, one is caught
│ ├── org-avatar.png GitHub org avatar, uploaded by hand
│ └── readme-banner.png the banner above, GitHub only, not served
├── llms.txt the structured summary for machine readers
├── robots.txt AI crawlers welcomed by name
├── _headers _redirects Cloudflare Pages
└── tools/
├── build-page.py emits index.html
├── build-map.py emits assets/world.svg
└── build-dist.sh assembles dist/ for deploy
index.html and assets/world.svg are written by the scripts in tools/. The
output is committed, so a deploy ships exactly what the repository holds and
the site itself still has no build step. Re-run them only when the copy, the
card decks or the projection change:
python3 tools/build-map.py # world.svg (only when the projection changes)
python3 tools/build-page.py # index.html (after any copy change)build-map.py projects Natural Earth to plain SVG paths in about sixty lines of
Python, so the page ships no d3, no topojson and no CDN call. The design
canvas loaded ~300 KB of mapping libraries at runtime; this does the same work
once, at build time, for 27 KB gzipped.
The footer line naming what findsyou.work is built with (Cratefield, live: the
waitlist Worker; Owlpost, Stripe, SupportGenius and Keep Shipping, planned;
Cloudflare, live) comes from the Factory Zero registry: this venture's uses
in Factory-Zero/website assets/fz-data.js, published as
https://factory0.ventures/stack.json and vendored in tools/built-with.json.
tools/built-with.py writes it between the built-with markers, and
build-page.py runs it after every rebuild. When the registry changes, run
python3 tools/built-with.py --pull; never edit the strip or the JSON by hand.
Planned entries carry "(planned)", the same rule as the rest of the page.
There is no build step and no server requirement beyond static files:
python3 -m http.server 8000 # then open http://localhost:8000The form posts to https://api.findsyou.work/v1/waitlist with
product: "findsyou": a separate Cloudflare Worker in
FindsYou-Work/waitlist-backend,
running the Cratefield harness waitlist module with a
D1 database of its own.
The form is rendered hidden and revealed by JavaScript. A browser without JS
is shown a mail fallback instead of a control that cannot work. A honeypot field
catches bots, and tells them nothing.
Every join also carries a Cloudflare Turnstile
token, sent as captchaToken. The widget (site key 0x4AAAAAAFM4KC2DoEjSoBx_,
action waitlist, rendered explicitly by assets/findsyou.js) sits under the
address field; the Worker verifies the token against findsyou.work and that
action, and refuses a join without one (400, problem type captcha-failed).
The page says so in words when the check is refused, and when the Turnstile
script cannot load (a content blocker, usually), pointing at the mail address
instead. The widget is reset after every attempt: a token is good once.
Content-Security-Policy. _headers sends a strict policy with no
'unsafe-inline': default-src 'self', frame-ancestors 'none',
object-src 'none', base-uri 'self', and every other directive limited to
what the pages actually load (see the comments in _headers). Turnstile is the
only third party in script-src and frame-src, and connect-src is the
waitlist Worker alone. Two things keep it that way, and
tools/build-dist.sh refuses to build when either drifts:
- an inline
<script>is allowed only by its sha256 in_headers; and - no page may carry a
style=""attribute. Write the style, then runpython3 tools/build-page.py(it runstools/csp-inline-styles.pylast): it moves every attribute intoassets/findsyou-inline.cssas a class. Each rule weighs as much as the inline style did, so the look does not change.
www. The Worker binds one hostname, the apex. A check solved on
www.findsyou.work is refused as hostname-mismatch until www redirects to
the apex (a Cloudflare Redirect Rule on the zone).
./tools/build-dist.sh
npx wrangler pages deploy dist --project-name=findsyouUse an API token for the Cloudflare account that owns findsyou.work. The
default wrangler login may be a different account, and the deploy then fails
with Authentication error [code: 10000].
Motion is decoration. Under prefers-reduced-motion every scroll scene
collapses to an ordinary block, the stamps are already landed, and the page
reads as a plain document. Nothing is hidden until JavaScript runs, so a blocked
or failing script can never leave a section invisible.
The code in this repository is MIT. The FindsYou name and mark are not.
