Ask HN: Have you created programs for only your personal use?

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • epanet-js

    Model a water distribution network in JavaScript using the OWA-EPANET engine

  • I work as a water engineer, specializing in building hydraulic models so water utilities can simulate their network.

    A big part of that is calibrating them which can be time consuming, you look through hundreds of options. I create a few web based apps to help grind through these tasks but ultimately they were for my own use as a consultant to close projects quickly.

    I did pull out the engine as its own open source library for other to use, and that ended up helping me get my current role where I can now maintain it and be paid at the same time.

    https://github.com/modelcreate/epanet-js

  • Bikeshare-Siri-Shortcuts

    Use Siri Shortcuts to find the nearest available bikeshare bike.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ppp_thing

    A poorly written, minimum viable PPPoE client with session handoff between redundant FreeBSD routers

  • I wrote a PPPoE client with failover so I can keep the session even when one of my gateways fails or is rebooted (this lets me do regular maintenance without interrupting my internet connection); I put it on github[1], but I doubt anyone will use it. I hope there are few people left with the scourge that is PPPoE, and my OS choice means many people would need to switch OSes to use it, so yeah. Also, I don't care to make it easy to use or to promote it, really. (I've mentioned it once or twice and did a Show HN that got less than ten votes, which I kind of expected).

    I've also got my personal (network) monitoring software, some 'IoT' stuff to capture temperature and humidity data around my house, and I'm working on a ESP32 based alarm clock pulling data from iCalendar.

    [1] https://github.com/russor/ppp_thing

  • I have a fairly large blu-ray collection (~300 movies, ~15 complete TV series). I rip them and serve them with Jellyfin, which works, but due to codec annoyances, I need to transcode them to run on web browsers, and the SBC I'm running Jellyfin + ZFS on is not really fast enough to transcode in real time.

    Since I have a ton of little SBCs sitting around my house, I decided to write a clojure app the queues up and transcodes my movies to H264. It uses Docker Swarm to handle distribution of nodes, RabbitMQ to queue up the movies, and core.async to handle local queuing within the application, and uses the Java NIO filesystem stuff to handle any kind of atomicity.

    It's hardly the "first" or the "best" at what it does, but the advantage of writing your own is of course that you can tailor it exactly to your setup, and of course it was fun to write.

    https://gitlab.com/tombert/distributed-transcode

  • railgun

    Discontinued A simple tool for sending e-mails using Mailgun.

  • I've written and still writing small tools to help with my work or personal computing life all the time. Some of them live long and become sophisticated tools, some of them stay as small scripts to help with mundane tasks.

    The most used one is a tools called Railgun (https://github.com/hbayindir/railgun/) for sending e-mails from command line via Mailgun.

    I've also built a backup tool for SMB shares and a simple time tracker.

    Currently I'm working on, albeit slowly, on a tool for organizing Pocket (https://www.getpocket.com) items.

  • mwm

    My Window Manager

  • useful-scripts

    A collection of useful scripts I have created over time (by AlexSwensen)

  • I recently wrote a tool that allows me to copy AWS secrets to another aws account for testing. It ended up being far simpler than doing a copy-paste for doing it repeatedly. I plan to write a few more in the appropriately named repo.

    https://github.com/AlexSwensen/useful-scripts

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Hasura

    Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.

  • writer

    Simple writing/note-taking Electron app that I'm creating because I don't like the existing options (by brundonsmith)

  • I made a desktop note-taking app for myself because I wasn't happy with any existing options, and it's been great: https://github.com/brundonsmith/writer

  • fi-retorch

    Personal finance account forecasting, transaction tracking and reporting.

  • Tracking Finances

    I originally wrote a web app to track my finances in 2003 using classic ASP and T-SQL. In early 2017, I rewrote it from scratch, still using T-SQL, but with C#.NET and jQuery. Lets me review my budget, ensure my net worth is heading in the direction I want, make sure all my payments get made, and ensure my account balances never get too low (with a light forecasting element.)

    Ideally I'd open source it, focus on the API documentation so anyone could write a back end, and iron out a few more front-end bugs, but since it gets the job done for me, the motivation never quite strikes me.

    https://github.com/jcbeck37/fi-retorch

  • nitter

    Alternative Twitter front-end

  • battle-objectives

  • I created two web apps to help when playing the boardgame Gloomhaven. Both were coded in Elm and were done partly because I had a need for them and partly just for the joy of coding in Elm. I'll link the github repos of both, the demo is linked in the README for each.

    The first app is Battle Objectives [0] which I made so that my group could play with some "enhanced battle objectives" I found online. The fan-made enhanced battle objectives are freely available on Boardgame Geek but I didn't want to print out and cut out all the cards so I coded them into an app. I linked this app on BGG but didn't think it was getting any use from anyone outside my personal Gloomhaven group. But I also found out while writing this post that someone forked Battle Objectives to translate it to German so I guess someone was using it! [1]

    The second one is Hitdeck [2] which I made to automate the tedium of reshuffling my hitdeck and of rebuilding it to add and remove cards as the game went on.

    [0] https://github.com/tristanpendergrass/battle-objectives

    [1] https://github.com/ToM-Korn/kampfziele

    [2] https://github.com/tristanpendergrass/hitdeck

  • kampfziele

  • I created two web apps to help when playing the boardgame Gloomhaven. Both were coded in Elm and were done partly because I had a need for them and partly just for the joy of coding in Elm. I'll link the github repos of both, the demo is linked in the README for each.

    The first app is Battle Objectives [0] which I made so that my group could play with some "enhanced battle objectives" I found online. The fan-made enhanced battle objectives are freely available on Boardgame Geek but I didn't want to print out and cut out all the cards so I coded them into an app. I linked this app on BGG but didn't think it was getting any use from anyone outside my personal Gloomhaven group. But I also found out while writing this post that someone forked Battle Objectives to translate it to German so I guess someone was using it! [1]

    The second one is Hitdeck [2] which I made to automate the tedium of reshuffling my hitdeck and of rebuilding it to add and remove cards as the game went on.

    [0] https://github.com/tristanpendergrass/battle-objectives

    [1] https://github.com/ToM-Korn/kampfziele

    [2] https://github.com/tristanpendergrass/hitdeck

  • hitdeck

  • I created two web apps to help when playing the boardgame Gloomhaven. Both were coded in Elm and were done partly because I had a need for them and partly just for the joy of coding in Elm. I'll link the github repos of both, the demo is linked in the README for each.

    The first app is Battle Objectives [0] which I made so that my group could play with some "enhanced battle objectives" I found online. The fan-made enhanced battle objectives are freely available on Boardgame Geek but I didn't want to print out and cut out all the cards so I coded them into an app. I linked this app on BGG but didn't think it was getting any use from anyone outside my personal Gloomhaven group. But I also found out while writing this post that someone forked Battle Objectives to translate it to German so I guess someone was using it! [1]

    The second one is Hitdeck [2] which I made to automate the tedium of reshuffling my hitdeck and of rebuilding it to add and remove cards as the game went on.

    [0] https://github.com/tristanpendergrass/battle-objectives

    [1] https://github.com/ToM-Korn/kampfziele

    [2] https://github.com/tristanpendergrass/hitdeck

  • termdbms

    A TUI for viewing and editing database files.

  • I made a headless sqlite dbms (not nearly as feature rich as the real thing) for my own embedded development. It can show the values of any table, view specific cells, update cells with a text editor interface, beautifies json, and takes in SQL queries as well.

    Got some bugs with formatting complex lines of text, but it works well enough for me. I plan on porting to Rust one of these days.

    https://github.com/mathaou/termdbms

  • NightPDF

    Discontinued Dark Mode PDF Reader built using Electron and PDF.js

  • I created a "darkmode" pdf reader. It helps a ton with my eyes. Reading long papers on white background is something I don't like so I changed it.

    https://github.com/librepgp/NightPDF

  • capitalg

    Capital Gains Tax Calculator

  • I've been liberally trading cryptocurrencies for the past several years and ended up with a bit of tax nightmare, with thousands of trades across many exchanges. I found my self with little choice but to write my own capital gains calculator. At the time I needed it, I couldn't find a suitable open source solution, and I have privacy concerns about paid services. It's no longer just for "personal use", as I've recently published it on GH https://github.com/dleber/capitalg

  • dotfiles

    ~ is where the ♥ is (by bigH)

  • trunk

    Language learning application. (by teesloane)

  • I'm always excited at the prospect of building new or better tools that help me learn the way I want to learn. It's the best low-stakes way for me to learn - especially if I'm not being challenge by work or am just curious about how a programming language works or other set of tools.

    My latest is a language learning application to help practice reading comprehension and vocabulary development. [1]

    [1] https://github.com/theiceshelf/trunk

  • git-fuzzy

    interactive `git` with the help of `fzf`

  • auto-sized-fzf

  • interactively

  • attache

    Discontinued Attaché is a minimal SERP tracker built with personal use in mind. It periodically reports the position of pages in organic search results. (by joaomelo)

  • sqript

    Discontinued Sqript is an npm package that helps code and execute scripts with JavaScript. Its goal is to make development workflows descriptive, composable, and maintainable. (by joaomelo)

  • papayaChat

    Command line chat service written in C

  • I recently developed a command line chat app that I can self-host, to chat with my friends from the terminal and regain control over my chat data and metadata. I self host the back end in Linode and just for the lolz and "Unix portability" I wrote it entirely in C. You can check it out at:

    https://github.com/erodrigufer/papayaChat

  • agr

    ag + sed

  • aws-rce: when i need remote code execution on aws for great good. [8]

    1. https://github.com/nathants/agr

  • bootstraps

  • s4

    super simple storage service + data local compute + shuffle (by nathants)

  • bsv

    maximum performance data processing (by nathants)

  • tiny-snitch

    an interactive firewall for inbound and outbound connections

  • aws-gocljs

    fullstack web should be easy

  • cli-aws

    cli and go library for aws

  • aws-exec

    building services on lambda should be easy and fun

  • Tiny-Tiny-RSS

    A PHP and Ajax feed reader

  • Tons and tons of them over the years. I wish I'd kept better track of them because I've caught myself reinventing the wheel now and again.

    - When I was a kid using a DOS PC I'd write them in Microsoft QuickBASIC or Turbo Pascal and compile them to EXEs. (I used to drag a few particularly useful ones around with me until a few years ago when the prevalence of 64-bit Windows made running them on a stock Windows machine impossible.) I had stuff there like a random password generator, dumping files to VGA mode 13h (to visually look for patterns in data), drop the DTR on a serial port (to hang up a modem from the command line), search/replace on INI files, and lots of others I've forgotten.

    - I wrote a proto-Markdown text processor back in high school when I was taking notes on a vTech Laser PC4[0]. It took files from the vTech and rendered output files with Epson printer formatting codes, centered text, made headings, etc.

    - I regularly use a script I wrote to import my phone backups' SMS logs and dump them into my IMAP mailbox. I love being able to search all my email and SMS communication in the same interface.

    - I have a podcatcher I wrote bolted onto my (heavily forked) tt-rss[1] installation to download podcasts to a local webserver for archiving and playing.

    - My father persists in using a DOS accounting package for his business. A small program I wrote ingests check printing output from the DOS app (meant for dot matrix tractor-fed checks) and reformats it for sheet-fed checks in a laser printer.

    - Front-end scripts for lots of command line utilities so that I don't have to remember obscure options for common tasks.

    [0] https://oldcomputermuseum.com/laser_pc4.html

    [1] https://tt-rss.org/

  • polybar-clockify

    Control Clockify through Polybar

  • Clockify polybar integration. Clockify is a time tracker tool. Polybar is a UI bar for window managers like i3 or bspwm. I also have a version that works on wayland and interacts with Waybar but I haven't gotten around to cleaning it up and publishing it.

    I click on it when I start working and click when I stop working.

    https://github.com/woutdp/polybar-clockify

  • kid-bank

    Now known as Kid Money Manager. It's not a real bank, but keeps track of your kid's earnings, savings, and spending. Watch me Live Code its development on Twitch.

  • I created "Kid Money Manager", a tool to help manage my son's virtual account. He wasn't old enough to open his own bank account when I started, but we needed some way to track his "earnings" (returning bottles for their deposits or gifts from grandparents) and spending. It has both a Web UI and access via SMS text messages. We mainly use the text messaging—entering transactions at the store, etc.— since I didn't want to write a dedicated phone app for such a simple interaction.

    Created it from scratch, live coding it on my (JitterTed.Stream) Twitch channel (and some videos on my YouTube channel at JitterTed.TV). Written using TDD in Java + Spring Boot, deployed on Heroku and open-source at https://github.com/tedyoung/kid-bank.

    I also recently wrote "Format Hero" (https://formathero.dev), because I could never remember which letters to use in Java's DateTimeFormatter. Was also a good demonstration of Hexagonal Architecture and, of course, I live coded it, TDDing all the way. Source is at https://github.com/jitterted/format-hero. Still some work to do on that one, but filled my immediate need.

  • format-hero

    Creates a pattern for use with DateTimeFormatter with previews.

  • I created "Kid Money Manager", a tool to help manage my son's virtual account. He wasn't old enough to open his own bank account when I started, but we needed some way to track his "earnings" (returning bottles for their deposits or gifts from grandparents) and spending. It has both a Web UI and access via SMS text messages. We mainly use the text messaging—entering transactions at the store, etc.— since I didn't want to write a dedicated phone app for such a simple interaction.

    Created it from scratch, live coding it on my (JitterTed.Stream) Twitch channel (and some videos on my YouTube channel at JitterTed.TV). Written using TDD in Java + Spring Boot, deployed on Heroku and open-source at https://github.com/tedyoung/kid-bank.

    I also recently wrote "Format Hero" (https://formathero.dev), because I could never remember which letters to use in Java's DateTimeFormatter. Was also a good demonstration of Hexagonal Architecture and, of course, I live coded it, TDDing all the way. Source is at https://github.com/jitterted/format-hero. Still some work to do on that one, but filled my immediate need.

  • judo

    Simple orchestration & configuration management

  • I wrote judo[1] because I was frustrated with Ansible. I wanted a very basic tool that could do 80% of the work in 1% of the code. It has one or two bugs, but I've been using it for personal and work stuff since 2016 and I'm not looking back.

    [1]: https://github.com/rollcat/judo

  • fastmod

    A fast partial replacement for the codemod tool

  • wsl-ssh-pageant

    A Pageant -> TCP bridge for use with WSL, allowing for Pageant to be used as an ssh-ageant within the WSL environment.

  • I have written these sorts of things, but I do try and put them up on GitHub if I think they’ll be useful to other people. I wrote a tool unimaginatively named wsl-ssh-pageant [0] which I wanted because I use a YubiKey for my SSH key but wanted it to be available in WSL. It has been by far my most popular GitHub project.

    I do have other things as well, some on GitHub some not. A scraper to notify me when a local gym booking website changes for a time I’m interested in. A bridge between a BroadLink RM4 and HomeKit for some fans [1] - I wanted to avoid home-assistant. A script to grab my power consumption data. A shim to make gpg-agent compatible with launchd’s socket activation protocol [2].

    [0] - https://github.com/benpye/wsl-ssh-pageant

    [1] - https://github.com/benpye/hkrm4

    [2] - https://github.com/benpye/launchd_shim

  • hkrm4

  • I have written these sorts of things, but I do try and put them up on GitHub if I think they’ll be useful to other people. I wrote a tool unimaginatively named wsl-ssh-pageant [0] which I wanted because I use a YubiKey for my SSH key but wanted it to be available in WSL. It has been by far my most popular GitHub project.

    I do have other things as well, some on GitHub some not. A scraper to notify me when a local gym booking website changes for a time I’m interested in. A bridge between a BroadLink RM4 and HomeKit for some fans [1] - I wanted to avoid home-assistant. A script to grab my power consumption data. A shim to make gpg-agent compatible with launchd’s socket activation protocol [2].

    [0] - https://github.com/benpye/wsl-ssh-pageant

    [1] - https://github.com/benpye/hkrm4

    [2] - https://github.com/benpye/launchd_shim

  • launchd_shim

  • I have written these sorts of things, but I do try and put them up on GitHub if I think they’ll be useful to other people. I wrote a tool unimaginatively named wsl-ssh-pageant [0] which I wanted because I use a YubiKey for my SSH key but wanted it to be available in WSL. It has been by far my most popular GitHub project.

    I do have other things as well, some on GitHub some not. A scraper to notify me when a local gym booking website changes for a time I’m interested in. A bridge between a BroadLink RM4 and HomeKit for some fans [1] - I wanted to avoid home-assistant. A script to grab my power consumption data. A shim to make gpg-agent compatible with launchd’s socket activation protocol [2].

    [0] - https://github.com/benpye/wsl-ssh-pageant

    [1] - https://github.com/benpye/hkrm4

    [2] - https://github.com/benpye/launchd_shim

  • Billy

    Split bills fairly among friends (by emlautarom1)

  • A PWA for splitting bills among friends. When we get a receipt we usually split the cost based on what each of us actually consumed (ex. Bob got 2 beers, Alice 3, etc.). I couldn't find a simple app that could do that, so I wrote my own: https://github.com/emlautarom1/Billy

  • place

  • Neat question, I've enjoyed the replies so far.

    I've built tons. Most of them don't stick for long. One that has is a file-cabinet organization tool - https://github.com/robacarp/place

    - it moves files into place within my filing system

  • Keimeno

    A lightweight text user interface library in Crystal

  • - uses a custom TUI engine I built for this specific task https://github.com/robacarp/keimeno

    ----------------------

    Another is a clean, bare bones, web-extension mode "picture on a new tab" extension. When I came back to firefox a few years ago I couldn't find one amongst the clutter on AMO so I put together https://github.com/robacarp/photographic_start

  • start.photos

    A fast, minimal new tab page which simply shows a safe-for-work picture. Works in Firefox and Chrome.

  • - uses a custom TUI engine I built for this specific task https://github.com/robacarp/keimeno

    ----------------------

    Another is a clean, bare bones, web-extension mode "picture on a new tab" extension. When I came back to firefox a few years ago I couldn't find one amongst the clutter on AMO so I put together https://github.com/robacarp/photographic_start

  • kragen-.emacs.d

    Kragen Sitaker's .emacs.d directory

  • In this way I estimate I create about 32 new programs a day for only my own personal use. But in many cases I only use each one once. ^R makes it easy to use them again a few times, but in other cases I save them into a shell script to make them easier to distribute to other machines, parameterize, and maintain. The one I most often use is probably a user interface for YouTube via youtube-dl or yt-dlp that consists of a few such shell scripts.

    My main editor is Emacs. If I want to do the same thing repeatedly (e.g., delete a line containing the string .LVL) I create a keyboard macro with F3 and F4 (or C-x ( and C-x )) when I do it once, then run it repeatedly with C-x e. I probably write about 4 programs a day in this way.

    Emacs has a M-: command to evaluate Lisp expressions, which are programs. Recent programs I have written in this way include (/ 43.2 1.7), (* 9.3 1.2), and (+ 8 3 2.50 3.50 3 7 3.50 3 1.50 4.50 6 5.50 6.50 6 3 2.50 2.50). Probably I write about 1 program a day in this way but I only use each one once. Longer Lisp programs like this can be written in scratch and executed with C-j or in .emacs (or .emacs.d/init.el) and executed with C-x C-e. For example, (global-set-key [f5] 'recompile). I use my .emacs file constantly every day but probably only add something to it about once a month. An outdated version is at https://github.com/kragen/kragen-.emacs.d/blob/master/init.e....

    Sometimes I write bigger programs for my own personal use too.

    A few years ago I wrote https://github.com/kragen/pytebeat for a livecoding performance of bytebeat in a bar. I finished writing it in the train on the way to the bar.

    In https://github.com/kragen/laserboot I wrote a simple parametric 2-D CAD system for laser cutters in PostScript.

    For Dercuano http://canonical.org/~kragen/dercuano I wrote a kind of shitty HTML rendering engine that generates a PDF file, as well as a simple CMS for generating a tree of HTML files from a directory of Markdown.

    The other night I wrote a bytecode interpreter with a graphical display in C as a sort of mockup for the operating system of a small computer I recently got the parts for; it's in http://canonical.org/~kragen/sw/erika.git.

    I've also written compilers, interpreters, ray tracers, database engines, parser generators, graphics libraries, logic circuit optimizers, 2-D game engines, etc., for my own use. Some of the recent ones are in http://canonical.org/~kragen/sw/dev3.

  • pytebeat

    Python Bytebeat livecoding software in SDL.

  • In this way I estimate I create about 32 new programs a day for only my own personal use. But in many cases I only use each one once. ^R makes it easy to use them again a few times, but in other cases I save them into a shell script to make them easier to distribute to other machines, parameterize, and maintain. The one I most often use is probably a user interface for YouTube via youtube-dl or yt-dlp that consists of a few such shell scripts.

    My main editor is Emacs. If I want to do the same thing repeatedly (e.g., delete a line containing the string .LVL) I create a keyboard macro with F3 and F4 (or C-x ( and C-x )) when I do it once, then run it repeatedly with C-x e. I probably write about 4 programs a day in this way.

    Emacs has a M-: command to evaluate Lisp expressions, which are programs. Recent programs I have written in this way include (/ 43.2 1.7), (* 9.3 1.2), and (+ 8 3 2.50 3.50 3 7 3.50 3 1.50 4.50 6 5.50 6.50 6 3 2.50 2.50). Probably I write about 1 program a day in this way but I only use each one once. Longer Lisp programs like this can be written in scratch and executed with C-j or in .emacs (or .emacs.d/init.el) and executed with C-x C-e. For example, (global-set-key [f5] 'recompile). I use my .emacs file constantly every day but probably only add something to it about once a month. An outdated version is at https://github.com/kragen/kragen-.emacs.d/blob/master/init.e....

    Sometimes I write bigger programs for my own personal use too.

    A few years ago I wrote https://github.com/kragen/pytebeat for a livecoding performance of bytebeat in a bar. I finished writing it in the train on the way to the bar.

    In https://github.com/kragen/laserboot I wrote a simple parametric 2-D CAD system for laser cutters in PostScript.

    For Dercuano http://canonical.org/~kragen/dercuano I wrote a kind of shitty HTML rendering engine that generates a PDF file, as well as a simple CMS for generating a tree of HTML files from a directory of Markdown.

    The other night I wrote a bytecode interpreter with a graphical display in C as a sort of mockup for the operating system of a small computer I recently got the parts for; it's in http://canonical.org/~kragen/sw/erika.git.

    I've also written compilers, interpreters, ray tracers, database engines, parser generators, graphics libraries, logic circuit optimizers, 2-D game engines, etc., for my own use. Some of the recent ones are in http://canonical.org/~kragen/sw/dev3.

  • laserboot

    laser-cutting experiments for bootstrapping planar fabrication

  • In this way I estimate I create about 32 new programs a day for only my own personal use. But in many cases I only use each one once. ^R makes it easy to use them again a few times, but in other cases I save them into a shell script to make them easier to distribute to other machines, parameterize, and maintain. The one I most often use is probably a user interface for YouTube via youtube-dl or yt-dlp that consists of a few such shell scripts.

    My main editor is Emacs. If I want to do the same thing repeatedly (e.g., delete a line containing the string .LVL) I create a keyboard macro with F3 and F4 (or C-x ( and C-x )) when I do it once, then run it repeatedly with C-x e. I probably write about 4 programs a day in this way.

    Emacs has a M-: command to evaluate Lisp expressions, which are programs. Recent programs I have written in this way include (/ 43.2 1.7), (* 9.3 1.2), and (+ 8 3 2.50 3.50 3 7 3.50 3 1.50 4.50 6 5.50 6.50 6 3 2.50 2.50). Probably I write about 1 program a day in this way but I only use each one once. Longer Lisp programs like this can be written in scratch and executed with C-j or in .emacs (or .emacs.d/init.el) and executed with C-x C-e. For example, (global-set-key [f5] 'recompile). I use my .emacs file constantly every day but probably only add something to it about once a month. An outdated version is at https://github.com/kragen/kragen-.emacs.d/blob/master/init.e....

    Sometimes I write bigger programs for my own personal use too.

    A few years ago I wrote https://github.com/kragen/pytebeat for a livecoding performance of bytebeat in a bar. I finished writing it in the train on the way to the bar.

    In https://github.com/kragen/laserboot I wrote a simple parametric 2-D CAD system for laser cutters in PostScript.

    For Dercuano http://canonical.org/~kragen/dercuano I wrote a kind of shitty HTML rendering engine that generates a PDF file, as well as a simple CMS for generating a tree of HTML files from a directory of Markdown.

    The other night I wrote a bytecode interpreter with a graphical display in C as a sort of mockup for the operating system of a small computer I recently got the parts for; it's in http://canonical.org/~kragen/sw/erika.git.

    I've also written compilers, interpreters, ray tracers, database engines, parser generators, graphics libraries, logic circuit optimizers, 2-D game engines, etc., for my own use. Some of the recent ones are in http://canonical.org/~kragen/sw/dev3.

  • babydots

    Sensory app for young babies

  • I write Android apps for my baby-now-toddler.

    At a few months old I created BabyDots [0] as she loved this YouTube video of dancing dots [1] which really settled her when she was upset as a young baby.

    At over a year old I added BabyPhone [2] to let her talk to family and have them “talk back” to her even when they were not available. I missed the timing on this and she didn’t enjoy it at all until literally this week when she started talking back to the little baby on the other end of the phone.

    At 18 months old I made a book-building app [3] that takes titles of pages on Simple English Wikipedia, and creates pages for a book that can then be exported as a PDF and printed (or viewed on the phone). It also has a website [4] on a free heroku dyno which definitely won’t take much traffic. This was because when she gets interested in, e.g. planets, I don’t want to have to order a book on planets, I want to print one out 5 minutes later to keep her interested.

    One of my proudest moments was at my new job where a team member said during our first standup “I have your baby dots app installed and although we don’t do screen time, the music really sooths our kid during nap time!”.

    [0] - https://github.com/babydots/babydots

  • babyphone

    A pretend phone app for little people who want to practice talking to others.

  • babybook

    Make interesting books for your kids, using text and images from simple.wikipedia.org

  • faenz

    Faenz is the web analytics for smalls businesses and side projects.

  • I've built several personal projects to be honest; background jobs, tasks automation, telegram bots to find a house to rent or buy, most of them are kept provate.

    The two I'm most proud of are a web analytics that, coincidentally, I've made public today after a few weeks of work:

    https://github.com/a-chris/faenz

    I developed it for collect data for my personal website and it is working well so far, really happy of it.

    The other one is a Google Chrome extension to manage bookmark because I think the default one is a mess and very unpratical to use. I haven't worked on it for a while:

    https://github.com/a-chris/peffect-bookmarks-manager

  • peffect-bookmarks-manager

    An advanced bookmarks manager extension built for Google Chrome. Work in progress.

  • I've built several personal projects to be honest; background jobs, tasks automation, telegram bots to find a house to rent or buy, most of them are kept provate.

    The two I'm most proud of are a web analytics that, coincidentally, I've made public today after a few weeks of work:

    https://github.com/a-chris/faenz

    I developed it for collect data for my personal website and it is working well so far, really happy of it.

    The other one is a Google Chrome extension to manage bookmark because I think the default one is a mess and very unpratical to use. I haven't worked on it for a while:

    https://github.com/a-chris/peffect-bookmarks-manager

  • jeopy

    A TUI for scoring Jeopardy!

  • Yes, a few bigger than small software development utilities. One I use almost every day is jeo.py, a TUI for scoring Jeopardy! I was initially scoring using a Google sheet, but this is easier to use without looking down at the keyboard. https://github.com/bi1yeu/jeopy

  • text-inspector

    print the codepoints that make up some text and their character names

  • I made a textbox that prints out the unicode code points that make up some text.

    https://verhovs.ky/unicode-debugger/

    https://github.com/verhovsky/unicode-debugger

    It's probably not completely correct and there's probably issues stemming from the fact that text in web browsers is UTF-16 not UTF-8, but I've used it to quickly figure out that someone's input wasn't being parsed correctly because the spaces were actually non-breaking spaces for example. It can be used for noticing when some text has a letter that looks the same but is actually a different letter than you think (homoglyph attack) or to see what makes up an emoji.

  • MuteTabsMatchingPattern

    Mute your Twitch/YT/etc stream with a global hotkey & without changing window focus!

  • I made a Firefox extension (and accompanying autohotkey script) because muting Twitch streams of League of Legends esports broadcasts in between games with my mouse was irritating and I could find no existing way to do it with a keyboard shortcut. https://github.com/RheingoldRiver/MuteTabsMatchingPattern

  • character-builder

    RPG Character Builder

  • erudite

    Pull articles from Instapaper or Pocket and add to your ebook library.

  • A few that I've written to scratch my own itch or fill a need. Some of which I ended up sprucing up a bit and publishing publicly.

    sitesync - Program that could sync files and folders on local file system and remote (FTP or SFTP). Mainly used to help maintain a web site that other people were also modifying. It allowed me to develop on my local copy and push changes without clobbering anything someone else had changed. (Unpublished)

    erudite - [0] - Pull articles from Instapaper or Pocket and add to your ebook library (including Hacker News integration that includes URLs for corresponding posts!)

    bday - [1] - The super simple birthday and anniversary reminder program. Wrote for myself but several family members also like it. Originally on Windows and then ported to Linux as well.

    moviesschedule - [2] - Tracks Australian movie release dates and can even maintain a Google calendar of the movies you are interested in.

    coffeegrinder - Java program to help fold automation of coffeescript compilation to javascript. Included optional GUI for viewing javascript version updates whenever the .coffee file was saved. (Unpublished)

    bom - A little web-site and FTP scraper to retrieve local weather info from the Australian Bureau of Meteorology. (Unpublished)

    bgdicecalc - Little GUI program to easily figure out probabilities for various dice rolls in Backgammon. Want to convert this to a web-page some time. (Unpublished)

    feedme - Web-site scraper to create RSS feeds of various comic strips (e.g. Dilbert) with the image directly in the feed. (Unpublished)

    [0] https://github.com/evmcl/erudite

    [1] https://github.com/evmcl/bday

    [2] https://github.com/evmcl/movieschedule

  • bday

    The super simple birthday and anniversary reminder program.

  • A few that I've written to scratch my own itch or fill a need. Some of which I ended up sprucing up a bit and publishing publicly.

    sitesync - Program that could sync files and folders on local file system and remote (FTP or SFTP). Mainly used to help maintain a web site that other people were also modifying. It allowed me to develop on my local copy and push changes without clobbering anything someone else had changed. (Unpublished)

    erudite - [0] - Pull articles from Instapaper or Pocket and add to your ebook library (including Hacker News integration that includes URLs for corresponding posts!)

    bday - [1] - The super simple birthday and anniversary reminder program. Wrote for myself but several family members also like it. Originally on Windows and then ported to Linux as well.

    moviesschedule - [2] - Tracks Australian movie release dates and can even maintain a Google calendar of the movies you are interested in.

    coffeegrinder - Java program to help fold automation of coffeescript compilation to javascript. Included optional GUI for viewing javascript version updates whenever the .coffee file was saved. (Unpublished)

    bom - A little web-site and FTP scraper to retrieve local weather info from the Australian Bureau of Meteorology. (Unpublished)

    bgdicecalc - Little GUI program to easily figure out probabilities for various dice rolls in Backgammon. Want to convert this to a web-page some time. (Unpublished)

    feedme - Web-site scraper to create RSS feeds of various comic strips (e.g. Dilbert) with the image directly in the feed. (Unpublished)

    [0] https://github.com/evmcl/erudite

    [1] https://github.com/evmcl/bday

    [2] https://github.com/evmcl/movieschedule

  • movieschedule

    Tracks Australian movie release dates.

  • A few that I've written to scratch my own itch or fill a need. Some of which I ended up sprucing up a bit and publishing publicly.

    sitesync - Program that could sync files and folders on local file system and remote (FTP or SFTP). Mainly used to help maintain a web site that other people were also modifying. It allowed me to develop on my local copy and push changes without clobbering anything someone else had changed. (Unpublished)

    erudite - [0] - Pull articles from Instapaper or Pocket and add to your ebook library (including Hacker News integration that includes URLs for corresponding posts!)

    bday - [1] - The super simple birthday and anniversary reminder program. Wrote for myself but several family members also like it. Originally on Windows and then ported to Linux as well.

    moviesschedule - [2] - Tracks Australian movie release dates and can even maintain a Google calendar of the movies you are interested in.

    coffeegrinder - Java program to help fold automation of coffeescript compilation to javascript. Included optional GUI for viewing javascript version updates whenever the .coffee file was saved. (Unpublished)

    bom - A little web-site and FTP scraper to retrieve local weather info from the Australian Bureau of Meteorology. (Unpublished)

    bgdicecalc - Little GUI program to easily figure out probabilities for various dice rolls in Backgammon. Want to convert this to a web-page some time. (Unpublished)

    feedme - Web-site scraper to create RSS feeds of various comic strips (e.g. Dilbert) with the image directly in the feed. (Unpublished)

    [0] https://github.com/evmcl/erudite

    [1] https://github.com/evmcl/bday

    [2] https://github.com/evmcl/movieschedule

  • ultimate-REGEX-extension

    ctrl+shift+F Text multi-tool browser extension with familiar Ctrl+F visuals. **need contributors to be the best & complete**

  • Thank you! I currently use https://github.com/victor-savinov/regex which is also nice.

  • mpvpy

  • garden

    Garden grows and cultivates collections of Git trees ~ Official mirror of https://gitlab.com/garden-rs/garden (by garden-rs)

  • I ended up with so many random git repos, shell scripts and other miscellany that I ended up writing a tool to manage that stuff using a yaml file so that it's easy to transport and recreate my setup anywhere.

    "garden" is kinda like a mashup of the flexibility/power of shell scripts with the convenience of being able to declare your development environment.

    https://github.com/davvid/garden

    I was kinda surprised when someone submitted the first issue =)

    https://github.com/davvid/garden/issues/1

    git-cola was pretty much written for my own personal use, but it grew a few more users as well.

  • cli-journal

    A CLI for interacting with file-based journal entries (usually Markdown)

  • 3) dispensed with any form of folders in favor of tagging and a powerful search

    I couldn't find anything I really liked, so built https://github.com/mieubrisse/cli-journal . Haven't needed to modify the code in 2 years and it's still working great.

  • go-smarthealthcards

    Golang libraries for generating QR codes for Smart Health Cards representing COVID-19 Immunizations

  • Source: https://github.com/amitkgupta/go-smarthealthcards

    I’d be interested in seeing the program that OP’s colleague has to see energy consumption per device. I want this for electricity, gas, and water. The utilities are starting to get into smart metering, but they’re not up to what I’m looking for yet, at least not my providers.

  • shite

    The little hot-reloadin' static site maker from shell.

  • Lots! Mostly little scripts. Even a single function is a complete program, like the one I wrote to check for a domain drop, which I then snagged! Of course the dotfiles and dotemacs must be mentioned too.

    Currently writing `shite`, the wee static site generator from shell :D https://github.com/adityaathalye/shite

    Two days ago I realised it has no if statements! Now that is going to become a design goal ... I need to add 2 or 3 things to make it fit my requirements, but I'm going to keep the if-s out without resorting to weird contortions.

  • topspace

    Recenter line 1 with scrollable upper margin/padding in Emacs

  • The most polished and useful program I've made for personal use is an emacs minor mode that lets you scroll down top lines in a file. I was tired of having to always look all the way at the top of the editor window to read the top lines of a file or small files.

    https://github.com/trevorpogue/topspace

    I also made a Python tree data structure library to easily parse and read tree structures which I actively use in other personal projects.

    https://github.com/trevorpogue/sections

  • sections

    Easy Python tree data structures

  • The most polished and useful program I've made for personal use is an emacs minor mode that lets you scroll down top lines in a file. I was tired of having to always look all the way at the top of the editor window to read the top lines of a file or small files.

    https://github.com/trevorpogue/topspace

    I also made a Python tree data structure library to easily parse and read tree structures which I actively use in other personal projects.

    https://github.com/trevorpogue/sections

  • tax-helper

    A simple accounting tool to compute business expenses for tax return purposes.

  • https://github.com/DexterLagan/tax-helper

    Another one I'm sorta proud of being the only one using is Invoicer, a one-click invoicing app:

  • invoicer

    A dead-simple, easy-to-use minimalist billing application.

  • https://github.com/DexterLagan/invoicer

    Last one I'd consider strictly personal would be Todo Master, an advanced todo with calendar, preset/macro facilities for generating dev reports and tons of other features only I would find a use for:

  • todo-master

    Todo Master is a Todo List manager with advanced features, such as export to HTML/CSV/Excel, Calendar and note view.

  • invoice

    Command line invoicing tool (by hamon-in)

  • 1. https://github.com/hamon-in/invoice - A command line invoicing system. I wrote this to handle invoicing for my freelancing and later my company. I wanted to build something similar to ledger-cli for invoices and use a single sqlite db for all things including config

  • Calligraphic-Rulings

    A simple program to create ruling pages for English calligraphy

  • 2. https://github.com/nibrahim/Calligraphic-Rulings - I use this to generate rulings for my calligraphy practise and wrapped it up as a tiny web app. http://calligraffiti.in/rulings. The logs suggest that a lot of serious calligraphers use it for their day to day work.

  • Hyde

    An Emacs mode to manage Jekyll blogs (by nibrahim)

  • showkeys

    Simple application to display keystrokes during screencasts or presentations.

  • 4. https://github.com/nibrahim/showkeys - I wrote this to allow display of keys on the screen while recording technical screencasts. I was recording a series on Emacs at the time

  • IOS-config-mode

    Cisco IOS config editing mode for Gnu Emacs

  • tomobi

    A chrome plugin and web app to convert web pages into .mobi files which you can read on your Amazon Kindle.

  • 6. https://github.com/nibrahim/tomobi - Something to convert websites into kindle files for reading offline (abandoned)

    There were a few others that never saw the light of day but these were the ones I wrote and still use/used. There are also several smaller shell scripts, makefiles, elisp snippets etc.

  • isitmybirthdayyet

    Fun personal script to answer if it is my birthday yet and in how many days.

  • I wrote a silly Python script https://github.com/lawgimenez/isitmybirthdayyet just for the fun of it. To check if this day is my birthday.

  • kondo

    Cleans dependencies and build artifacts from your projects.

  • I got so sick and tired of `rm -rf node_modules` that I made a tool to do it for me, recursively, and eventually supporting tons of different project types thanks to open source contributors.

    Sounds dumb but is surprisingly useful.

    https://github.com/tbillington/kondo

  • walrss

    [mirror] Email-based RSS digest generator

  • Most recently, I built a piece of software to send me digests of RSS feeds at regular intervals, be it daily or weekly. It's an evolution of a little hacky Python script that I had, and I couldn't be happier with it!

    https://github.com/codemicro/walrss

  • hnrss

    Custom, realtime RSS feeds for Hacker News

  • Because I was already have Pushover account for mobile notifications, and started using directly without extra payment or application.

    Now I checked after your question, I found this[1] good service, but do you have any suggestion about receiving mobile notifications from RSS (for iOS)?

    And you can consider my personal project as an alternative.

    [1] https://hnrss.github.io/

  • hn

    hn is a terminal based hacker news reader for lurkers (by tapank)

  • gnews

    gnews is a terminal based Google News reader (by tapank)

  • Skewbacca-Native

  • m4b-tool

    m4b-tool is a command line utility to merge, split and chapterize audiobook files such as mp3, ogg, flac, m4a or m4b

  • I created m4b-tool[1], labelmaker[2] and graft[3] for my personal use :-)

    [1] https://github.com/sandreas/m4b-tool/

  • graft

    graft is a tool to find and transfer files written in go

  • zenbot-sim-runner

    Discontinued A sim run batch aggregator / automator for Zenbot. Eases the process of backtesting and subsequent analysis of results.

  • I built a currency trading backtesting and bot monitoring framework [1]. At times I vaguely considered turning it into a product, but for a number of reasons decided not to. However, I am running it successfully, hosted on my own server and am quite proud of what I achieved :)

    [1] https://github.com/jefc1111/zenbot-sim-runner

  • memorygame

  • Browser based game where you try to pick two matches cards. When the pandemic started, I played this a lot with my kids (they were better every time). Got tired of shuffling cards and laying it out and I wanted to learn Javascript, so.

    https://github.com/richsuca/memorygame

    #2 Grade 2 Spelling Practise

  • SpellWell

    Windows app to help kids practice spelling

  • My daughter had to learn spelling of a few words every week in Grade 2. To help her test it, I wrote a Windows desktop app that would say the word and she had to spell it.

    https://github.com/richsuca/SpellWell

    #3 Bulk Tag Remover from Pinboard

    I had too many tags that it became useless so I had to retag all my links in Pinboard, the website doesn't let you do it in bulk so I made a Windows desktop app (also wanted to try out XAML).

    https://github.com/richsuca/Retag

  • Retag

    Easy Pinboard Tag Remover

  • My daughter had to learn spelling of a few words every week in Grade 2. To help her test it, I wrote a Windows desktop app that would say the word and she had to spell it.

    https://github.com/richsuca/SpellWell

    #3 Bulk Tag Remover from Pinboard

    I had too many tags that it became useless so I had to retag all my links in Pinboard, the website doesn't let you do it in bulk so I made a Windows desktop app (also wanted to try out XAML).

    https://github.com/richsuca/Retag

  • rslurp

    slurp down a whole HTTP directory, with parallel goodness

  • Plenty.

    Of the ones I use every day:

    * Parallel downloader (https://github.com/ThomasHabets/rslurp)

  • cmdg

    Command line Gmail client

  • sim

    Multi Party Authorization version of sudo/doas (by ThomasHabets)

  • yurate

    Curate Youtube videos so that you don't miss any subscribed content.

  • autoscan

    Web and LCD/button UI for scanning from a USB scanner directly into Google Drive (by ThomasHabets)

  • tlssh

    TLS Shell

  • * My own RSS reader (not published. It will never be end-user friendly enough to compete with other ones. But it's better for me)

    And then plenty more than I use occasionally, and some I no longer use. E.g. for a while I used my own SSH replacement, in order to get TPM-backed keys (https://github.com/ThomasHabets/tlssh). Nowadays I use yubikey instead (https://blog.habets.se/2016/01/Yubikey-4-for-SSH-with-physic...).

    Those are just the main ones (as in not small, and used every day). I find myself fixing problems all the time by writing code.

  • redicrypt

    An encryption module for redis

  • I have tonnes. Sometimes they're applications, sometimes they're libraries. Recently I've been interested in random experiments to push my exposure to ideas in strange ways. Most recently I wrote a redis module for encryption (https://github.com/chayim/redicrypt). My current project asyncronously fetches me status from various services (GitHub, Jira, Travis) so that I can track all sorts of things.

    Personal use is the biggest driver of my ongoing learning.

  • euler

    A command line utility that converts euler angles to quaternions and rotation matrices. (by kam3k)

  • I created a simple command line utility [1] to convert between rotation representations. If anyone has ever dealt with 3D rotations (e.g., euler angles, quaternions, rotation matrices) you probably know that it can be frustrating to know what conventions people are using, especially with euler angles (e.g., intrinsic, extrinsic, passive, active, etc.). So I made a tool where you can explicitly set those conventions with explanations on what they all mean.

    I regular refer back to the README myself or test out some conventions with the tool.

    [1] https://github.com/kam3k/euler

  • mousejump

    Simple xcode project to handle jumping my mouse between screen when they don't line up

  • Absolutely, I just pushed up all the code here https://github.com/joshstrange/mousejump -- I can't make any support promises but it's been working for me really well.

  • dtrx

    Intelligent archive extraction (by moonpyk)

  • I just use dtrx: https://github.com/moonpyk/dtrx. That only does decompression, but that's generally good enough for me and supports basically everything (even more exotic stuff like Java JARs and DOCX, which are both ZIP archives under the hood).

  • inkval

    Generating Static Sites with Pandoc and Bash

  • gnucash-helper

  • I created a web app for doing personal accounting with GnuCash files [1]. The mobile app for GnuCash was abandoned around 2018 from what I can tell, and it never had synchronization, so you couldn't easily use it on both mobile and desktop at the same time.

    I'm one of only two users as far as I know. It's in a public repository, but I doubt anyone has used it. Personally, I use it nearly every day, and it has enough features that I rarely have to use GnuCash anymore.

    The app isn't the most beautiful thing in the world, but it works just well enough to be usable.

    References

    [1] https://github.com/bxbrenden/gnucash-helper

  • BookBrain

    A reading journal built with PyQt5.

  • SaaSHub

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

    SaaSHub logo
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