---
title: "Projects | DJ Petersen"
description: "Things I've built — open-source tools, work systems, and experiments."
canonical: "https://www.thedjpetersen.com/projects/"
---

Selected work · 2012 — present

# Projects

Things I've built — open-source tools, work systems, and experiments. Each page is a spec sheet plus the story.

```
1<div class="container">2  <h1>Welcome!</h1>3  <p>This is a sample<p>4  <div>Nested content5    <span>More text</div>6  </span>7  <img src="photo.jpg">8</div>
```

▼PROBLEMS3Unclosed paragraph tagLine 3Mismatched closing tagsLine 5\<img\> is missing an alt attributeLine 7

## HTML Linter

2024–presentActive

A Rust CLI and library that lints HTML against JSON-defined rules, published to crates.io.

[Rust](https://www.rust-lang.org/)[HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)[JSON](https://www.json.org/)<https://www.thedjpetersen.com/projects/html-linter>

## Flow Like Water

2023Dormant

A TypeScript library that turns brittle multi-step scripts into resumable state machines with retries and serializable state.

[TypeScript](https://www.typescriptlang.org/)[Node.js](https://nodejs.org/)[Jest](https://jestjs.io/)<https://www.thedjpetersen.com/projects/flow-like-water>Page Views1234Active Users156Bounce Rate %42Avg. Session (s)321

## Console Analytics

2018Internal

A lightweight frontend telemetry tracker built for the AWS Management Console.

[TypeScript](https://www.typescriptlang.org/)[JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)[MutationObserver](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)[PerformanceObserver](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver)<https://www.thedjpetersen.com/projects/console-analytics>

## Subway

2012–2014Archived

A web IRC client with server-side sessions, plugin hooks, and history that survives disconnects and machine switches.

[Node.js](https://nodejs.org/)[Socket.io](https://socket.io/)[Backbone.js](https://backbonejs.org/)[jQuery](https://jquery.com/)<https://www.thedjpetersen.com/projects/subway>

## Index

| Years | Name | Description | Stack | Status | Source |
| --- | --- | --- | --- | --- | --- |
| 2024–present | [HTML Linter](https://www.thedjpetersen.com/projects/html-linter) | A Rust CLI and library that lints HTML against JSON-defined rules, published to crates.io. | Rust · HTML · JSON | Active | [source ↗](https://github.com/thedjpetersen/html-linter) |
| 2023 | [Flow Like Water](https://www.thedjpetersen.com/projects/flow-like-water) | A TypeScript library that turns brittle multi-step scripts into resumable state machines with retries and serializable state. | TypeScript · Node.js · Jest | Dormant | [source ↗](https://github.com/thedjpetersen/flow-like-water) |
| 2018 | [Console Analytics](https://www.thedjpetersen.com/projects/console-analytics) | A lightweight frontend telemetry tracker built for the AWS Management Console. | TypeScript · JavaScript · MutationObserver · PerformanceObserver | Internal | — |
| 2012–2014 | [Subway](https://www.thedjpetersen.com/projects/subway) | A web IRC client with server-side sessions, plugin hooks, and history that survives disconnects and machine switches. | Node.js · Socket.io · Backbone.js · jQuery · Underscore.js | Archived | [source ↗](https://github.com/thedjpetersen/subway) |

Every page lists its artifacts — repositories, packages, and the things that prompted the work.
