ForumOne · 2019

South Carolina LLR

Licensing and workplace safety for a whole state, on a Grav CMS build that keeps hundreds of boards, permits and services findable.

Sector

State government

Role

Front-End Developer

Stack

Grav CMS · HTML/CSS · JS

South Carolina's Department of Labor, Licensing and Regulation is the agency behind almost every licensed profession in the state, plus workplace safety, fire, and elevator and amusement-ride inspection. Its site has to serve a barber renewing a license and a contractor filing a complaint equally well.

Overview

LLR is not one service, it is dozens: apply for a license, check an application, renew, verify someone else's license, print a card, file a complaint, look up a board's calendar. Each belongs to a different division, and most visitors arrive knowing what they want to do rather than which division owns it.

The front end's job was to make that surface navigable without flattening it. Built on Grav CMS, a flat-file system with no database behind it, which suits an agency site that is mostly structured content and needs to stay fast and cheap to host.

What I built

  • Built the Grav templates and the front-end component set shared across divisions, boards and service pages
  • Developed the task-led landing patterns that route visitors by what they want to do rather than by which division owns it
  • Coded the responsive layouts for license lookup, application status and complaint flows
  • Implemented accessible navigation for a site whose audience is the entire adult population of a state

Organized by task, not by org chart

The natural way to structure a government site is by department, because that is how the organization understands itself. It is also the least useful structure for a visitor, who arrives wanting to renew a license and has no idea which of the divisions owns that. The primary navigation leads with the verbs (apply, renew, verify, look up, file) and lets the divisional structure sit behind it for the people who do think that way.

Flat files, on purpose

Grav keeps content as files on disk rather than rows in a database. For an agency site that is overwhelmingly structured pages (boards, professions, forms, notices), that trade is a good one: nothing to keep patched, nothing to fall over under a traffic spike when a license deadline lands, and a content model that a non-developer can reason about.

Accessibility as the baseline, not the audit

A state agency's site is not optional for the people using it: if you cannot renew your license, you cannot work. That puts keyboard paths, focus order, contrast and screen-reader labelling in the same category as whether the page loads at all, rather than in the category of things you check before launch.