1---
  2title: "Projects"
  3description: "Projects I'm currently working or have (mostly) finished"
  4date: 2023-01-17T13:42:01-05:00
  5draft: false
  6cover: ./cover.png
  7type: generic
  8---
  9
 10Most of my projects are hosted on [Sourcehut,][sourcehut] but some of my older
 11projects can also be found on [NixNet's Forgejo instance.][forgejo] I do have a
 12[Github account,][github] but I don't actually host any projects on it as I
 13prefer more open platforms.
 14
 15[sourcehut]: https://sr.ht/~amolith/
 16[forgejo]: https://git.nixnet.services/
 17[github]: https://github.com/Amolith
 18
 19All of these projects were created to [scratch an itch.][sai]
 20
 21[sai]: https://scratchanitch.dev
 22
 23## Active projects
 24
 25These are what I'm currently focusing on.
 26
 27<details>
 28    <summary><a href="https://sr.ht/~amolith/earl/">earl</a> (2022-01-01) (Go)</summary>
 29    <p>
 30    I take a lot of hand-written notes and wanted a quick way to write down web
 31    references. I was unsatisfied with all of the current URL shortener
 32    implementations so I decided to write my own.
 33    </p>
 34</details>
 35
 36## Finished projects
 37
 38These are projects that I consider ["finished".][finished] I might fix the
 39occasional bug, but they meet my needs as they are and I will not be adding
 40major swaths of code to introduce new features.
 41
 42[finished]: https://gavinhoward.com/2019/11/finishing-software/
 43
 44<details>
 45    <summary><a href="https://sr.ht/~amolith/rss2fedi/">rss2fedi</a> (2023-06-01) (Go)</summary>
 46    <p>
 47    Looks at a provided RSS feed, converts the HTML to plaintext, truncates to
 48    100 words, shoves those words into a templated, and posts to fedi. Supports
 49    authenticating with Akkoma, Pleroma, and Mastodon. Patches for additional
 50    platforms are welcome.
 51    </p>
 52</details>
 53
 54<details>
 55    <summary><a href="https://sr.ht/~amolith/opml2md/">opml2md</a> (2023-05-01) (Go)</summary>
 56    <p>
 57    Takes an OPML file exported from an RSS reader, turns it into bulleted lists
 58    of subscriptions (ignoring particular sections if desired), and shoves those
 59    lists into a templated Markdown file. It's in use on the <a
 60    href="/feeds">feeds page.</a>
 61    </p>
 62</details>
 63
 64<details>
 65    <summary><a href="https://git.sr.ht/~amolith/p2c/">p2c</a> (2023-04-05) (Go)</summary>
 66    <p>
 67    Generates cover images for Hugo sites using the page's frontmatter, the
 68    site's global config, and file's metadata. It's written in Go and generates
 69    images using <a href="https://gioui.org">Gio,</a> a cross-platform GUI
 70    framework. It generates the cover images for most of the pages and posts on
 71    this site.
 72    </p>
 73</details>
 74
 75<details>
 76    <summary><a href="https://sr.ht/~amolith/go-webring/">go-webring</a> (2021-12-18) (Go)</summary>
 77    <p>
 78    This is generalised software for creating and maintaining old-school <a
 79    href="https://en.wikipedia.org/wiki/Webring">webrings.</a> It currently
 80    powers <a href="https://fediring.net">Fediring.net.</a>
 81    </p>
 82</details>
 83
 84## Future projects
 85
 86Tools I want but that I haven't necessarily had time to start on yet
 87
 88<details>
 89    <summary>Alternative <a href="https://bond-touch.com/">Bond Touch</a> client/server</summary>
 90    <p>
 91    The official app is just an unusable pile of trash. I want to
 92    reverse-engineer the bracelet's Bluetooth protocol and implement my own
 93    client/server. Client functionality will be strictly limited to
 94    sending/receiving touches and matching touch patterns with user-defined
 95    messages. Server functionality will be strictly limited to transferring
 96    touches between devices.
 97    </p>
 98</details>
 99
100## Abandoned projects
101
102Unfinished tools I don't plan to finish
103
104<details>
105    <summary><a href="https://git.sr.ht/~amolith/rarangi">rārangi</a> (2021-10-12) (Go)</summary>
106    <p>
107    A todo TUI that operates on basic text files. Unfinished items are denoted
108    with a - and finished items are denoted with a +. I wanted to try
109    <a href="https://github.com/charmbracelet/bubbletea">Bubble Tea</a> but
110    decided it was more complicated than I was ready for at the time.
111    </p>
112</details>