Why are so many government websites unusable for the constituents who need them most ? Civic technologists are building excellent playbooks for how governments can move past broken processes that produce outcomes that don’t serve users. But creating agile, empowered, and accountable delivery teams in the public sector isn’t enough—we also have to make the right technology choices. At Big Sky Dev…
Of the three proposals in the Triptych Project , my multi-year odyssey to add a few small-but-powerful features to HTML, the one that generates the most questions is Button Actions . The proposal itself is very straightforward: we want to add the action and method attributes to the button. < button action =" /begin " method =" GET ">Start</ button > Button Actions are such a simple primitive that…
Yesterday, the IRS announced the release of the project I’ve been engineering leading since this summer, its new Tax Withholding Estimator (TWE). Taxpayers enter in their income, expected deductions, and other relevant info to estimate what they’ll owe in taxes at the end of the year, and adjust the withholdings on their paycheck. It’s free, open source, and, in a major first for the IRS, open for…
.inline-figure { display: flex; justify-content: space-around; margin: 1rem; } .move { text-transform: lowercase; font-variant-caps: small-caps; } pre[data-name=top-level] { /* * Trust me I'm not proud of this, but Zola, the static-site generator I'm using, * inserts the code block background-color as a "style" attribute on the tag. * I can either break open my Zola syntax highlighting…
.languages { grid-template-columns: 1fr 1fr fit-content(60%); } Unplanned Obsolescence is a blog is about writing maintainable, long-lasting software. It also frequently touts—or is, at the very least, not inherently hostile to—writing software in dynamically-typed programming languages. These two positions are somewhat at odds. Static typing is better for maintainability Dynamically-typed…
iframe { display: block; margin: 10px auto; } I went back to Bozeman! Summary Building webservices with HTML APIs (aka MVC, aka server-side rendering , aka “rails-style”) is gaining traction again, thanks to improvements in web standards and lightweight HTML-driven libraries like htmx . Although there will occasionally be reasons to go beyond what the platform provides, this will always be the…
When I advise people on how they should structure a web service, I always start from the same place: make a server that responds to HTTP requests with HTML text.
A central concept to HTML, and hypertext theory more generally, is something called Representational State Transfer, a.k.a. REST. Over at htmx, a lot of the writing we do is based on REST theory. REST is a widely misunderstood term , and if you point that out to people, you will be told, repeatedly and sometimes quite irately: who cares? REST has a new meaning now—use words the way people…
iframe { display: block; margin: 10px auto; } My UtahJS talk, “Building the Hundred-Year Web Service” , was put online this week! It’s about how to build software infrastructure that lasts a very long time.
It’s been two years since I wrote my first production webservice with htmx . Two years is not a very long time, but early indicators suggest that the software projects I’ve written with htmx are a much better experience for users, and orders of magnitude easier to maintain, than the software projects they replaced. They are likely to remain useful for longer than anything else I’ve ever written…
While I’m not going to settle the Single-Page Web Application (SPA) debate in a blog post, there is one claim about SPAs that routinely goes unchallenged, and it drives me nuts: that users prefer them because of the “modern,” responsive feel.
The Classic Hello World Here’s how you make a webpage that says “Hello World” in PHP: Hello World Name that file index.php and you’re set. Awesome. Version 1 of our website looks like this: Okay, we can do a little better. Let’s add the HTML doctype and <title> element to make it a legal HTML5 page , an <h1> header to give the “Hello World” some heft, and a <p> paragraph to tell our visitor where…