Ask HN: What are your “scratch own itch” projects?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Sonar - Write Clean Python Code. Always.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • roll

    A command-line dice-rolling simulator for RPGs (by DarwinAwardWinner)

    Here's two of mine:

    A while back, I wrote a command-line dice rolling program[1] that handles a bunch of esoteric dice notation syntax, both because I was getting into a D&D game with friends, and because I wanted to practice writing a non-trivial parser.

    My current keyboard is an Ultimate Hacking Keyboard, which I like very much, but the one thing I miss from a more traditional layout is the nav cluster (arrow keys, plus the 6 keys above them). Of course these are accessible via the Mod layer on the UHK, but when I need to do something like Control+Shift+Right to select text, adding Mod into that as well becomes a bit much, so I'd prefer to have dedicated keys for these. So, I recently ordered a keyboard kit that is just the 10 nav cluster keys, and my next small project is to assemble it.

    [1]: https://github.com/DarwinAwardWinner/roll

  • PoC_CVEs

    PoC_CVEs

    I am at a loss of things to do at the moment, The most recent for me is Indexing PoC CVE's posted to Github.

    https://github.com/tg12/PoC_CVEs

    I want to build a TrueNAS box at home and migrate to that as test.

    I really want to write lots more Python code though! I love writing trading algorithms and Data science, data analyst projects.

  • Sonar

    Write Clean Python Code. Always.. Sonar helps you commit clean code every time. With over 225 unique rules to find Python bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • kn

    kn — nvgt/fldrs/qckly

    https://github.com/micouy/kn - `cd` alternative like `z` but based on comparing abbreviations against paths with https://crates.io/crates/powierza-coefficient, not on frecency. I've completely replaced `cd` for over a year. A while ago nushell reimplemented this functionality using my Powierża coefficient.

  • powierza-coefficient

    https://github.com/micouy/kn - `cd` alternative like `z` but based on comparing abbreviations against paths with https://crates.io/crates/powierza-coefficient, not on frecency. I've completely replaced `cd` for over a year. A while ago nushell reimplemented this functionality using my Powierża coefficient.

  • Conkey

    A keyboard layout for conlangers

    The biggest one for me is undoubtedly my custom keyboard layout Conkey [0], which I use constantly (including for typing this very comment). I hate the way the base US layout tends to get distorted in other keyboard layouts with good support for non-ASCII characters, so Conkey had the explicit goal of retaining that basic unshifted layout. I’ve also ended up porting Conkey to Mac and Linux — and given that I’m slowly switching from Windows to Linux, at least the Linux ports have ‘scratched my own itch’ too, which is nice.

    Also, I made a utility to archive the full text of every website I view and store it in a SQLite database for searching. It’s proven pretty useful when I want to find something I saw a while ago and then forgot. (I haven’t attempted to open-source it, though — it consists of three entirely separate components, two of which were a pain to set up. I must try to get it into a more usable state one of these days.)

    What else… my sound change applier [1], perhaps? Not that I use it very much, because I only need it on those occasions when I want to do some conlanging, which I haven’t had much time for recently. Actually, sound change appliers strike me as being very much a ‘scratch own itch’ type of project in general… sometimes it feels like every conlanger has written their own, and no two can agree on a nice design. Everyone just has their own unique preferred way of doing things.

    [0] https://github.com/bradrn/Conkey

    [1] https://github.com/bradrn/brassica

  • brassica

    The biggest one for me is undoubtedly my custom keyboard layout Conkey [0], which I use constantly (including for typing this very comment). I hate the way the base US layout tends to get distorted in other keyboard layouts with good support for non-ASCII characters, so Conkey had the explicit goal of retaining that basic unshifted layout. I’ve also ended up porting Conkey to Mac and Linux — and given that I’m slowly switching from Windows to Linux, at least the Linux ports have ‘scratched my own itch’ too, which is nice.

    Also, I made a utility to archive the full text of every website I view and store it in a SQLite database for searching. It’s proven pretty useful when I want to find something I saw a while ago and then forgot. (I haven’t attempted to open-source it, though — it consists of three entirely separate components, two of which were a pain to set up. I must try to get it into a more usable state one of these days.)

    What else… my sound change applier [1], perhaps? Not that I use it very much, because I only need it on those occasions when I want to do some conlanging, which I haven’t had much time for recently. Actually, sound change appliers strike me as being very much a ‘scratch own itch’ type of project in general… sometimes it feels like every conlanger has written their own, and no two can agree on a nice design. Everyone just has their own unique preferred way of doing things.

    [0] https://github.com/bradrn/Conkey

    [1] https://github.com/bradrn/brassica

  • TinyNightmare64

    I submitted a game to the N64 homebrew jam this year, along with some team members I met on the discord server. It was cool dusting off some skills I had learned in an intro to graphics course from my undergrad. The game isn't complete, but we got some core elements working, animated characters, decently intuitive controls, basic collisions, extremely primitive 'AI'. There could be better docs/materials for onboarding new people to developing on the console, but we were able to piece together stuff over a couple of weeks.

    https://youtu.be/6xzvZ9X-DYU

    https://github.com/MrGlitchByte/TinyNightmare64

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • oxide

    Teach your PostgreSQL database how to speak MongoDB Wire Protocol

  • MusicBox

    Scott's Music Box is a midi file arranger for natural sounding chamber orchestra instruments.

    I wrote a music synth library called Scott's MusicBox. The source is on github:

    https://github.com/OhioVR/MusicBox

    I tried to emulate orchestral sounds using an abandoned sample collection using it with some success but no one really liked it.

    I also had problems with our point of sale at work which I tried to improve with a picture book with bar codes over the items. That helped me scan items without upc labels. Hit and miss but I'm going to have to sell my printer so that project is also dead.

  • certify

    Professional TLS/SSL Certificate Manager UI for Windows, powered by Let's Encrypt and compatible with all ACME v2 CAs. Download from certifytheweb.com

    It's worth doing! A few projects I've done:

    I once needed a database of EV charging locations, but at the time(2011) there were no open databases, so I built https://openchargemap.org, that now serves millions of API queries per month for other apps and services

    For another project, I recently wanted to control my guitar amp (a Positive Grid Spark) from my computer instead of using a mobile app, so I built https://soundshed.com which is both a bluetooth web app and an electron app you can install. It now has a few thousand users :)

    And finally, another time I had some SSL certificates I needed to manage for another project (for the above mentioned https://openchargemap.org), so I built a GUI to manage and renew certificates on Windows. It's now a commercial app with hundreds of thousands of users and it's my full time job: https://certifytheweb.com

    So yeah, worth doing!

  • Trilium Notes

    Build your personal knowledge base with Trilium Notes

    It's a boring story. I tried to organize my notes/data/knowledge using existing apps, but none of them fit my needs, so I built an app which does fit my needs: https://github.com/zadam/trilium/

  • cheat

    cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember.

    I'm the author and maintainer of `cheat`, which started life (and continues life) as a "scratch your own itch" project:

    https://github.com/cheat/cheat

    I wrote it because I often forgot the shell commands that I needed to use on a daily basis, and realized that I wasted a lot of time Googling the same thing over and over.

  • NoiseGenerator

    It got me cool experience with making web extension as well as horrible experience of trying to get it through google webstore.

    Another one is using sounds to maintain focus in changing contexts. There are SO MANY white noise etc. generators (and they are good), but none has low latency feedback mechanism to say 'more intense'/'less intense' beyond 'lower/higher volume'. So you can't for example overload yourself to start doing something and then slightly lower noise when you get to a hard part of w/e you're doing. Enter lacking a proper readme https://github.com/Nowado/NoiseGenerator.

  • simplecd

    Simple Continuous Delivery system running in your bash shell

    I needed a no-fuzz, lightweight Continuous Delivery setup, and wrote https://github.com/manuelkiessling/simplecd.

    It’s a single bash script.

    To this day, I use to deploy all my projects, including my work projects, no matter what tech stack I use, with great success.

  • FeedTheMonkey

    Desktop client for the TinyTinyRSS feed reader.

  • intercooler-js

    Making AJAX as easy as anchor tags

    You asked for it:

    https://htmx.org

    https://hyperscript.org

    I hated angular when it first came out and couldn't believe what insanity people were willing to come up with, so long as it came from google. (e.g. GWT) I created https://intercoolerjs.org out of frustration with that, and the lack of progress in HTML/hypermedia in general, so I could build a web application I was working on (https://leaddyno.com, since sold).

    When covid hit I took a look back at intercooler and decided that it was really two things: HTML++ and a scripting language, so I split it up into htmx, focused just on the hypermedia angle, and hyperscript, the scripting language I wanted for the web (derived from HyperTalk, and old scripting language from HyperCard on the mac).

    I know use them both professionally (email me if you want to use them too.)

  • htmx

    </> htmx - high power tools for HTML

    You asked for it:

    https://htmx.org

    https://hyperscript.org

    I hated angular when it first came out and couldn't believe what insanity people were willing to come up with, so long as it came from google. (e.g. GWT) I created https://intercoolerjs.org out of frustration with that, and the lack of progress in HTML/hypermedia in general, so I could build a web application I was working on (https://leaddyno.com, since sold).

    When covid hit I took a look back at intercooler and decided that it was really two things: HTML++ and a scripting language, so I split it up into htmx, focused just on the hypermedia angle, and hyperscript, the scripting language I wanted for the web (derived from HyperTalk, and old scripting language from HyperCard on the mac).

    I know use them both professionally (email me if you want to use them too.)

  • cardsort

    A tool for conducting a virtual card sorting.

    I needed an online card sort tool for another hobby project, and I just couldn't find one that fit my needs, so I built https://github.com/indigane/cardsort

    One requirement I had if I were to build it myself was that it would be maintenance-free and still work years after I have forgotten about it.

  • Jump

    Jump is yet another self-hosted startpage for your server designed to be simple, stylish, fast and secure. (by daledavies)

    A little startpage/bookmark solution to go on my home server, listing the services that run on it...

    https://github.com/daledavies/jump

  • kcctl

    A modern and intuitive command line client for Kafka Connect

    Right now: kcctl [1], a command-line client for Kafka Connect. Using the REST API just became to unwieldy when demoing Debezium. Quite a while ago, MapStruct [2], a code generator for type-safe mapper classes for converting POJOs (Java object) between object hierarchies which are similar but not quite the same. It was born after realizing that significant time in an enterprise application I was working on back in the day was spent executing reflection-based mapping code.

    [1] https://github.com/kcctl/kcctl

  • MapStruct

    An annotation processor for generating type-safe bean mappers

  • md

    Web-based text-processing software. You can use it to draft your next article. Markdown formatting, autosave feature, stored locally inside your own browser. (by altilunium)

    I built my own word processor software because word & google docs is way too heavy to my own standards..

    https://github.com/altilunium/md

  • veecam

    A virtual camera Chrome extension that lets you adjust how your video appears to everyone else on the call.

  • glacier_deep_archive_backup

    Extremely low cost, off-site backup/restore using AWS S3 Glacier Deep Archive

    Encrypted backup to AWS Glacier Deep Archive ($1/TB/month)

    https://github.com/mrichtarsky/glacier_deep_archive_backup

    And for ErgodoxEZ:

    Compress your keymap so you can add more features without hitting the limit

    https://github.com/mrichtarsky/ergodox-compress-keymap

    Generate Heatmap from your keypresses so you can see whether your layout is optimal

    https://github.com/mrichtarsky/ergodox-heatmap

  • ergodox-compress-keymap

    Encrypted backup to AWS Glacier Deep Archive ($1/TB/month)

    https://github.com/mrichtarsky/glacier_deep_archive_backup

    And for ErgodoxEZ:

    Compress your keymap so you can add more features without hitting the limit

    https://github.com/mrichtarsky/ergodox-compress-keymap

    Generate Heatmap from your keypresses so you can see whether your layout is optimal

    https://github.com/mrichtarsky/ergodox-heatmap

  • ergodox-heatmap

    Encrypted backup to AWS Glacier Deep Archive ($1/TB/month)

    https://github.com/mrichtarsky/glacier_deep_archive_backup

    And for ErgodoxEZ:

    Compress your keymap so you can add more features without hitting the limit

    https://github.com/mrichtarsky/ergodox-compress-keymap

    Generate Heatmap from your keypresses so you can see whether your layout is optimal

    https://github.com/mrichtarsky/ergodox-heatmap

  • Spodcast

    Spodcast is a caching Spotify podcast to RSS proxy. Using Spodcast you can follow Spotify-hosted netcasts/podcasts using any player which supports RSS, thus enabling the use of older hardware which is not compatible with the Spotify (web) app.

    Simple things like:

    Spodcast, a Spofify->RSS bridge [1], made it because I listen to netcasts while working outside out of network reach (forest and field work).

    Reader, a native-look epub/pdf/cb[rz] reader for Nextcloud [2], made it when my daughter was issued an iPad at school on which she was not allowed to install any "apps" while I thought the thing was tailor-made for reading books. The iPad was returned years ago but I recently updated Reader to make it run again.

    ...and a host of small tools which I make just when I need them, dumping them to GH for all to peruse, e.g.:

    ZMapi, a Zoneminder CLI tool [3], made it when I installed a video surveillance system in the new barn which uses Chinese cameras which I do not want to be able to access the 'net directly.

    bs, a Bookstack API CLI tool [4], made it when I needed to upload a large number of conference videos to a Bookstack site.

    ...etc

    I don't have much time for these side things since I'm mostly busy on and around the farm but every now and then the weather is a good excuse to keep me inside...

    [1] https://github.com/Yetangitu/Spodcast

    [2] https://github.com/Yetangitu/files_reader

    [3] https://github.com/Yetangitu/zmapi

    [4] https://github.com/Yetangitu/bs

  • files_reader

    Simple things like:

    Spodcast, a Spofify->RSS bridge [1], made it because I listen to netcasts while working outside out of network reach (forest and field work).

    Reader, a native-look epub/pdf/cb[rz] reader for Nextcloud [2], made it when my daughter was issued an iPad at school on which she was not allowed to install any "apps" while I thought the thing was tailor-made for reading books. The iPad was returned years ago but I recently updated Reader to make it run again.

    ...and a host of small tools which I make just when I need them, dumping them to GH for all to peruse, e.g.:

    ZMapi, a Zoneminder CLI tool [3], made it when I installed a video surveillance system in the new barn which uses Chinese cameras which I do not want to be able to access the 'net directly.

    bs, a Bookstack API CLI tool [4], made it when I needed to upload a large number of conference videos to a Bookstack site.

    ...etc

    I don't have much time for these side things since I'm mostly busy on and around the farm but every now and then the weather is a good excuse to keep me inside...

    [1] https://github.com/Yetangitu/Spodcast

    [2] https://github.com/Yetangitu/files_reader

    [3] https://github.com/Yetangitu/zmapi

    [4] https://github.com/Yetangitu/bs

  • zmapi

    Simple things like:

    Spodcast, a Spofify->RSS bridge [1], made it because I listen to netcasts while working outside out of network reach (forest and field work).

    Reader, a native-look epub/pdf/cb[rz] reader for Nextcloud [2], made it when my daughter was issued an iPad at school on which she was not allowed to install any "apps" while I thought the thing was tailor-made for reading books. The iPad was returned years ago but I recently updated Reader to make it run again.

    ...and a host of small tools which I make just when I need them, dumping them to GH for all to peruse, e.g.:

    ZMapi, a Zoneminder CLI tool [3], made it when I installed a video surveillance system in the new barn which uses Chinese cameras which I do not want to be able to access the 'net directly.

    bs, a Bookstack API CLI tool [4], made it when I needed to upload a large number of conference videos to a Bookstack site.

    ...etc

    I don't have much time for these side things since I'm mostly busy on and around the farm but every now and then the weather is a good excuse to keep me inside...

    [1] https://github.com/Yetangitu/Spodcast

    [2] https://github.com/Yetangitu/files_reader

    [3] https://github.com/Yetangitu/zmapi

    [4] https://github.com/Yetangitu/bs

  • gpxif

    CLI to update image EXIF locations and times using a GPX track

    I created gpxif [1] to update time and location data on image files from my camera.

    With this tool I can keep the camera in UTC and use gpx data from Garmin or OwnTracks to tag photos.

    - [1] https://github.com/charlieegan3/gpxif

  • TablaM

    The practical relational programing language for data-oriented applications

    I work for Enterprise-like app development and get tired of all the dance working with data.

    So logically I start doing a relational language on the side: https://tablam.org

    Also, is the thing that I use to learn Rust, that has make the endeavor to be more practical than it sound!

  • sharpliner

    Use C# instead of YAML to define your Azure DevOps pipelines

    I didn't appreciate developing Azure Pipelines in YAML so I've created a library that lets you use C# instead.

    Aside the apparent advantages of the strong typed environment, I was able to bake in many more features that make your life easier. Code reuse is also super easy.

    https://github.com/sharpliner/sharpliner

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts