Skip to content
Pulley Labs

Pulley Labs — a web design and build studio

Small sites that carry more than they look like they should.

Static HTML, with no framework runtime to boot. Contrast measured against AA rather than eyeballed, and every page readable with JavaScript off.

An 1816 engraving, Rigging Plate II, showing single, double and triple pulley blocks, a snatch block and rope slings.
Rigging Plate II, 1816. A block adds no force of its own.
0 KB
of framework JavaScript reaches your browser
17.2:1
contrast on body text, where AA asks for 4.5:1
0
cookies set, which is why nothing asked you to accept any

What we do

Design, build, hand over.

One offering, scoped in writing before anything is built. It is narrow on purpose: a studio that claims everything has specialised in nothing.

Design

Structure before surface. What the page has to do, who lands on it, what they need to decide.

  • Site structure
  • Visual system
  • Copy hierarchy

Build

Static first, so the page is a file rather than a program that has to run before anything appears.

  • Hand-written HTML
  • No framework runtime
  • Real content

Hardening

A strict policy from the first commit, so a third-party script added later has to be a decision somebody makes.

  • Content-Security-Policy
  • Response headers
  • Verified forms

Handover

The repository, the hosting and the domain move to you, with a written record of every decision.

  • Repo transfer
  • Written README
  • Thirty days of fixes

How a project runs

Four stages, all visible.

A fixed scope and a fixed price, agreed before anything is built. You see the work as it happens, so there is nothing to reveal at the end. Timings are typical for a small site and are agreed per project.

  1. Scope

    A call, then a written scope: the pages, the features, what is explicitly not included, and a fixed price. If the scope is wrong, this is the cheapest possible place to find out.

    Week one

  2. Design

    Designed in the browser rather than in a static mockup, so what you review is the real thing at real widths. Changes happen while they are still cheap.

    Weeks one to three

  3. Build

    Content, forms, metadata, performance and the accessibility pass. Deployed to a preview URL from the first week, so there is never a reveal at the end.

    Weeks two to five

  4. Handover

    Transfer of the repository, hosting and domain, a written README, a recorded walkthrough, and thirty days to find anything that was missed.

    Final week

Proof

No client logos. This page instead.

A new studio asking you to take its standards on trust is asking a lot. Every figure here is true of the page you are reading, and you can check all of them in a minute.

Workers standing on a steel girder suspended from cables during the construction of the Story Bridge, Brisbane, about 1937.
A load carried by rigging: the Story Bridge under construction, about 1937.
0 KB
React reaches your browser. It renders at build time and never ships.
1
inline script on the whole site, allowed by its hash. A build fails if it drifts.
17.2:1
contrast on body text. AA asks for 4.5:1.
0
cookies set, which is why nothing asked you to accept any.
6
response headers sent on every route, listed in full below.

The headers this page was served with

Read from the response your browser received a moment ago, not from a screenshot. Every site we build is handed over configured this way.


          content-security-policy: default-src 'self'; script-src 'self' 'sha256-nBHdSgxP97BbONHl5eJBoLWuDihotU1HsdIdMoxu0wA=' https://challenges.cloudflare.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; media-src 'self'; connect-src 'self' https://cloudflareinsights.com; form-action 'self'; frame-src https://challenges.cloudflare.com; object-src 'none'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; frame-ancestors 'none'; upgrade-insecure-requests


          strict-transport-security: max-age=63072000; includeSubDomains


          x-content-type-options: nosniff


          x-frame-options: DENY


          referrer-policy: strict-origin-when-cross-origin


          cross-origin-opener-policy: same-origin

Showing the policy committed in this site’s repository.

Handover

What you own afterwards.

A site you cannot edit, move or understand is not an asset. None of this depends on us still being around.

What transfers to the client at handover
ItemWhenOwned by
The repositoryAt handoverYou
HostingAt handoverYou
The domainAt handoverYou
A written READMEAt handoverYou
A recorded walkthroughAt handoverYou
Thirty days of fixesAfter launchUs

What needs building?

You will get a straight answer within two business days: whether it is a fit, what it would involve, and roughly what it would cost. If it is not a fit, we say so.