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/willow/">willow</a> (2023-09-21) (Go)</summary>
 29    <p>
 30    Tracks software releases across various platforms. Still a work-in-progress
 31    with bugs major and small, but I've been "dogfooding" it with my all my
 32    private self-hosted services, everything on <a href="https://nixnet.services">NixNet</a>,
 33    and the <a href="https://aur.archlinux.org/packages?SeB=m&K=Amolith">
 34    AUR packages</a> I maintain. It does work and I find it quite useful 🙂
 35    </p>
 36</details>
 37
 38<details>
 39    <summary><a href="https://git.sr.ht/~amolith/adresilo/">Adresilo</a> (2024) (Go, Kotlin)</summary>
 40    <p>
 41    I love using open source nagivation apps with offline data from
 42    OpenStreetMap, like OrganicMaps or OsmAnd. Unfortunately, many businesses
 43    only update their information in Google Maps; if the OSM contributor
 44    community is less strong where you live as it is where I live, finding
 45    places can be frustrating.
 46    </p>
 47    <p>
 48    Adresilo is an interface to Google Maps and lets you search for places using
 49    natural language. You can then copy coordinates from a result, share a
 50    result's name, address, and coordinates with other people and apps, or open
 51    a result in your preferred navigation app.
 52    </p>
 53</details>
 54
 55## On hold
 56
 57There are still things I want to accomplish with this software, but I don't have
 58enough bandwidth to work on them at the moment.
 59
 60<details>
 61    <summary><a href="https://sr.ht/~amolith/earl/">earl</a> (2022-01-01) (Go)</summary>
 62    <p>
 63    I take a lot of hand-written notes and wanted a quick way to write down web
 64    references. I was unsatisfied with all of the current URL shortener
 65    implementations so I decided to write my own.
 66    </p>
 67</details>
 68
 69## Finished projects
 70
 71These are projects that I consider ["finished".][finished] I might fix the
 72occasional bug, but they meet my needs as they are and I will not be adding
 73major swaths of code to introduce new features.
 74
 75[finished]: https://gavinhoward.com/2019/11/finishing-software/
 76
 77<details>
 78    <summary><a href="https://sr.ht/~amolith/rss2fedi/">rss2fedi</a> (2023-06-01) (Go)</summary>
 79    <p>
 80    Looks at a provided RSS feed, converts the HTML to plaintext, truncates to
 81    100 words, shoves those words into a templated, and posts to fedi. Supports
 82    authenticating with Akkoma, Pleroma, and Mastodon. Patches for additional
 83    platforms are welcome.
 84    </p>
 85</details>
 86
 87<details>
 88    <summary><a href="https://sr.ht/~amolith/opml2md/">opml2md</a> (2023-05-01) (Go)</summary>
 89    <p>
 90    Takes an OPML file exported from an RSS reader, turns it into bulleted lists
 91    of subscriptions (ignoring particular sections if desired), and shoves those
 92    lists into a templated Markdown file. It's in use on the <a
 93    href="/feeds">feeds page.</a>
 94    </p>
 95</details>
 96
 97<details>
 98    <summary><a href="https://git.sr.ht/~amolith/p2c/">p2c</a> (2023-04-05) (Go)</summary>
 99    <p>
100    Generates cover images for Hugo sites using the page's frontmatter, the
101    site's global config, and file's metadata. It's written in Go and generates
102    images using <a href="https://gioui.org">Gio,</a> a cross-platform GUI
103    framework. It generates the cover images for most of the pages and posts on
104    this site.
105    </p>
106</details>
107
108<details>
109    <summary><a href="https://sr.ht/~amolith/go-webring/">go-webring</a> (2021-12-18) (Go)</summary>
110    <p>
111    This is generalised software for creating and maintaining old-school <a
112    href="https://en.wikipedia.org/wiki/Webring">webrings.</a> It currently
113    powers <a href="https://fediring.net">Fediring.net.</a>
114    </p>
115</details>
116
117## Future projects
118
119Tools I want but that I haven't necessarily had time to start on yet
120
121<details>
122    <summary>Alternative <a href="https://bond-touch.com/">Bond Touch</a> client/server</summary>
123    <p>
124    The official app is just an unusable pile of trash. I want to
125    reverse-engineer the bracelet's Bluetooth protocol and implement my own
126    client/server. Client functionality will be strictly limited to
127    sending/receiving touches and matching touch patterns with user-defined
128    messages. Server functionality will be strictly limited to transferring
129    touches between devices.
130    </p>
131</details>
132
133## Abandoned projects
134
135Unfinished tools I don't plan to finish.
136
137<details>
138    <summary><a href="https://git.sr.ht/~amolith/rarangi">rārangi</a> (2021-10-12) (Go)</summary>
139    <p>
140    A todo TUI that operates on basic text files. Unfinished items are denoted
141    with a - and finished items are denoted with a +. I wanted to try
142    <a href="https://github.com/charmbracelet/bubbletea">Bubble Tea</a> but
143    decided it was more complicated than I was ready for at the time.
144    </p>
145</details>