It's taken so much effort to create this receipt. It's hard to overstate how happy I am with this little scrap of paper.

The text on the screen is a ReceiptLine document, think markdown but for receipts. My library parses it into ESC/POS commands and prints directly to the printer. No drivers.

The webpage itself talks to the printer, I implemented the driver in typescript.

There's a demo here: https://cellivar.github.io/WebReceiptLinePrinter/demo/

This is the whole document:
```
^^^RECEIPT
12/18/2021, 11:22:33 AM
Asparagus | 1| 1.00
Broccoli | 2| 2.00
Carrot | 3| 3.00
-
^TOTAL | ^6.00
=
```

ReceiptLine is a somewhat obscure standard developed a few years back in Japan. The major receipt printer companies collaborated on it. The idea was to have a standard that the various printers could interoperate with to some degree. I lifted some of my parser from that project.

https://github.com/receiptline/receiptline

Now some of you might reasonably ask "Cellivar why would you write a printer driver in TypeScript?" and the answer is easy: Chromebooks.

WebReceiptLinePrinter Tool

You can't install a Windows printer driver on a Chromebook. That's where WebUSB steps in, so long as someone writes a driver. (me)

Chromebooks are built to last and can be had cheap used. Old label printers were built like tanks and have a rich market for parts. Receipt printers are built to withstand daily hard labor in dirty fast food kitchens.

For light-duty use with maintenance these things will last forever and ever. Buy them used, clean them up a bit. For a fraction of the cost of new you get one that'll work just fine for occasional use.

All of this culminates in the nonprofit company I founded: make commercial-grade equipment available to other nonprofits to use for DIRT CHEAP. My company takes care of the repair and maintenance, and charges a fraction of what commercial rentals cost. Any profits go into more equipment.

Our team now has:

* Chromebooks
* Barcode Scanners
* Label Printers
* Receipt Printers

which is enough to run registration and con store services at fur cons. Or fundraisers. Or a donation drive. And this is the beginning.

We're building a self-sustaining library of equipment nonprofits need to further their causes.

@Cellivar this is cool as fuck dude, congrats on the progress!