Hill Tech Labs Contact

EXP-01Standards

Seven standards / How we check each / Sources cited

Standards you can hold us to.

Quality is easier to promise than to prove. These are the published standards and the habits we build to, what each one means in practice, and how we check it before a release.

A laptop screen showing four variations of a button style
Fig. 01Four variations of one button, side by side for review.

STD-1 / Accessibility

Usable by everyone who needs it.

WCAG 2.2, Level AA

What it is

The Web Content Accessibility Guidelines are the W3C's standard for accessible digital content. Version 2.2 became a W3C Recommendation on October 5, 2023, and the current edition is dated December 12, 2024. It has three conformance levels, A, AA, and AAA. We build to AA.

WCAG 2.2 added nine success criteria to 2.1, including a minimum target size of 24 by 24 CSS pixels, focus that is not hidden behind sticky headers, an alternative to dragging, and sign-in that does not depend on memory tests.

What we do

  • Semantic HTML, with every feature reachable by keyboard and a visible focus state
  • Text contrast of at least 4.5:1, or 3:1 for large text, and 3:1 for controls and graphics
  • Layouts that reflow at 320 CSS pixels wide and text that resizes to 200 percent
  • Labeled form fields and error messages that say how to fix the problem
  • A single-pointer alternative for anything that uses dragging

How we check

  • Automated accessibility rules run in the build pipeline
  • A keyboard-only pass through every flow before release
  • Screen reader checks with VoiceOver on Apple devices and TalkBack or NVDA elsewhere
  • Zoom, reflow, and contrast measurements on real pages

SourceW3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation, 12 December 2024. w3.org/TR/WCAG22

EXP-02Contrast checker

The WCAG contrast ratio, computed live with the formula from the standard: relative luminance L = 0.2126 R + 0.7152 G + 0.0722 B, and ratio = (L1 + 0.05) / (L2 + 0.05).

Try our own palette

A lab for working software.

Body text at 15.5 pixels, the size most of this site uses.

16.72:1Contrast ratio

  • Normal text, AA (4.5:1)
  • Large text, AA (3:1)
  • Normal text, AAA (7:1)
  • Large text, AAA (4.5:1)
  • Controls and graphics (3:1)
  • Large means 18 pt, or 14 pt boldWCAG

STD-2 / Performance

Fast where it counts: on real phones.

LCP ≤ 2.5 s INP ≤ 200 ms CLS ≤ 0.1

What it is

Core Web Vitals are Google's measures of loading, responsiveness, and visual stability. A page is rated good when Largest Contentful Paint is 2.5 seconds or less, Interaction to Next Paint is 200 milliseconds or less, and Cumulative Layout Shift is 0.1 or less.

Each is assessed at the 75th percentile of page loads, segmented across mobile and desktop. INP replaced First Input Delay as a Core Web Vital on March 12, 2024.

What we do

  • A performance budget for each key page, agreed in design
  • Images sized and compressed for each screen, with dimensions set so nothing jumps
  • Only the code a page needs, loaded when it needs it
  • Long tasks broken up so taps and clicks answer quickly
  • Caching and a content delivery network in front of the app

How we check

  • Lab tests on throttled mobile settings for every release
  • Field data from real users once traffic allows it
  • Performance results included in the release checklist

LCPLoading

GoodNeeds workPoor 2.5 s4.0 s

INPResponsiveness

GoodNeeds workPoor 200 ms500 ms

CLSVisual stability

GoodNeeds workPoor 0.10.25
A hand holding a phone above a laptop keyboard
Fig. 03A phone held over a laptop: performance is measured on the device, not the desk.

Sourcesweb.dev, "Largest Contentful Paint (LCP)", "Interaction to Next Paint (INP)", and "Cumulative Layout Shift (CLS)"; web.dev blog, "Interaction to Next Paint becomes a Core Web Vital on March 12" (2024).

STD-3 / Security

Security as a checklist, not a feeling.

OWASP ASVS 5.0

What it is

The OWASP Application Security Verification Standard is an open list of security requirements for web applications and services. Version 5.0.0 was released on May 30, 2025, with around 350 requirements in 17 chapters, sorted into three levels: Level 1 is the minimum starting point, Level 2 is the level most applications should aim for, and Level 3 is for the highest assurance.

For passwords we follow NIST SP 800-63B-4 (July 2025): at least 15 characters when a password is the only factor, no forced composition rules, and a check against known compromised passwords.

What we do

  • Level 1 as the floor for every app; Level 2 for apps that handle personal, financial, or health data
  • A short threat model during discovery
  • Least-privilege access, multi-factor sign-in for admins, and secrets kept out of code
  • Encryption in transit and at rest, logging, and tested backups
  • Dependencies kept current and scanned for known vulnerabilities

How we check

  • The ASVS requirements for the chosen level, reviewed before release
  • Dependency and vulnerability scans on every build
  • Security questions built into code review
  • An independent penetration test recommended for high-risk apps

SourcesOWASP, Application Security Verification Standard 5.0.0 (May 2025); OWASP Top 10:2025; NIST Special Publication 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management (July 2025).

STD-4 / Testing

Tested on every change, and on real devices.

Automated + manual

What we do

  • Unit tests for business rules, written alongside the feature
  • Integration tests for APIs, databases, and third-party services
  • End-to-end tests for the flows that make or lose money
  • Exploratory testing on a device matrix of recent iOS and Android versions and current browsers
  • A staging environment with realistic test data

How we check

  • Tests run on every change; nothing merges while they fail
  • A release checklist and a short test report for each release
A tablet and a phone side by side on a marble surface
Fig. 02A tablet and a phone: two of the screen sizes every build is checked on.

STD-5 / Code handoff

Yours from the first commit.

Your repo, your accounts

What it means

The repository, cloud hosting, domain, and app store accounts belong to you from the start, and we work in them as collaborators. Nothing important lives on our laptops or in our accounts.

What we do

  • Everything in version control, including infrastructure settings where practical
  • Secrets stored in a secrets manager, never in the code
  • Releases tagged with Semantic Versioning 2.0.0
  • Licenses of third-party libraries listed

How we check

  • A handover checklist covering access, credentials, and billing
  • A fresh-clone test: someone who did not write the code builds and deploys it from the README alone

SourceSemantic Versioning 2.0.0, semver.org.

STD-6 / Documentation

Written as we go, not at the end.

README + ADRs + API + runbook

What we write

  • A README that gets a new developer running in an afternoon
  • Architecture decision records: short notes on each significant choice, its context, and its consequences, a format described by Michael Nygard in 2011
  • An API reference written as an OpenAPI description
  • A runbook for deploys, backups, and incidents

Why it matters

Documentation is what lets your team, or another studio, maintain the software without us. It is part of the definition of done for every feature, so it is never a separate phase that gets cut.

How we check

  • Docs reviewed in the same pull request as the code they describe
  • The API description validated in the build

SourcesMichael Nygard, "Documenting Architecture Decisions" (Cognitect blog, November 15, 2011); OpenAPI Initiative, OpenAPI Specification 3.2.

STD-7 / Privacy by design

Collect less, keep less, protect the rest.

Privacy by design

What it is

Privacy by design means building privacy in from the start rather than adding it later. Ann Cavoukian set out seven foundational principles for it, including privacy as the default setting and end-to-end security across the data's whole life. The EU's GDPR writes the idea into law as data protection by design and by default.

US state laws are moving the same way. Kentucky's Consumer Data Protection Act took effect on January 1, 2026, for businesses that handle personal data of at least 100,000 Kentucky consumers in a year, or 25,000 consumers if over half their gross revenue comes from selling personal data.

What we do

  • Collect only the data a feature needs, and say why
  • Privacy-friendly defaults, with tracking off until someone opts in
  • Retention periods, with old data deleted on a schedule
  • Access limited to the people and services that need it
  • Export and deletion built in when a law or your policy requires it

How we check

  • A data inventory in discovery: what is collected, where it lives, who can see it
  • A privacy review before launch, with your legal advisor where the law applies

SourcesAnn Cavoukian, "Privacy by Design: The 7 Foundational Principles" (Information and Privacy Commissioner of Ontario); Regulation (EU) 2016/679 (GDPR), Articles 5 and 25; Kentucky General Assembly, 2024 Regular Session, House Bill 15 (KRS 367.3611 to 367.3629).

Build it to standard from day one.

Tell us about your project, or about the app that needs an accessibility, performance, or security review.

contact@hilltechlabs.com