Selected work
Each engagement is scoped, built, verified, and handed off. What follows describes what we built and why — and, where a build is far enough along to measure, what the measurements say.
A framework that gives a small organization the build quality of an enterprise site, and the measurements to show it
It is built for organizations that answer to someone else for their website: townships, boroughs, authorities and school districts working toward the 2027 and 2028 federal accessibility dates; libraries and colleges; and firms whose work is judged from photographs, such as architects and builders. It was first deployed for a private client with a large photographic portfolio and is now the base of every Igloofire build.
Challenge
Small organizations are held to the same standards as large ones: the same accessibility rule, and the same visitor on a phone who leaves when a page jumps while it loads. Most have no web team to meet them. The usual choices are a template platform, or an agency engagement sized for a larger budget.
Approach
- Every item an organization offers, whether a project, a facility or a program, gets its own page, generated from one structured source with its own title, description and address.
- Every image needs a description before the build will run, and the framework carries photographer credit and copyright in structured data, so attribution can travel with the work instead of living in an email.
- 77 check scripts run with every build and can stop a deploy, including one that refuses a photograph still carrying the location where it was taken.
- Static files with the security headers written into the source: no server software to patch, and the site can be handed over without handing over an account.
Result
- 19 pages, each with its own title, description and canonical address
- 1,163 images, every one with an alt attribute. The 325 left deliberately empty sit inside links that already name the picture, so a screen reader does not read it twice
- Zero cumulative layout shift on all five long-form pages, measured at phone size
- 53 credit entries in structured data, covering 50 distinct photographs
- 5,578 bytes of JavaScript on the home page, across four modules, and two third-party scripts on the whole site
- An address that does not exist returns a real 404 and a page written for the person who reached it
- The photographs and the words arrive in the HTML the server sends. With JavaScript turned off, the pages still read
igloofire.com runs on the same framework
This site is the framework's working reference: a set of static files we own, deployable to any static host without modification, with nothing running in front of it.
Challenge
A practice that sells portability should be able to show it on its own site, where anyone can inspect it. That meant no software running in the request path, no hosting arrangement that could not be moved, and no settings that live only in a dashboard.
Approach
- Built as a static site, with no content management software in the request path on any page. What the visitor requests is a file, not the output of software executing on a server.
- DNS and hosting with a single provider, with deployment as a plain upload of the build output. The same files would serve from any static host without modification.
- Self-hosted fonts and no third-party analytics, so nothing is collected from someone who is only reading. The contact form says what a message carries and how long it is kept.
- Security headers and content security policy written into the source, so they ship with the build and are regenerated on every deploy rather than configured by hand in a dashboard.
Result
- Static files only, images and video included, movable to another host without a rebuild
- Every deploy is reproducible from source, and the headers travel with it rather than living in a control panel
- Two clean builds from the same source produce 172 files with identical SHA-256 hashes — every file compared, not a sample
- Every page prints what it cost you to load, in its own footer, measured at render rather than typed in
Have a project in mind?
We scope every engagement before committing to it. Send us your situation and we'll tell you what we see.