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>