We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
Handmade Network»Forums»Wheel Reinvention Jam
Ben Visness
113 posts / 9 projects
HMN lead.
Need project ideas for the jam? Start here...
Edited by Ben Visness on

We've heard from a few community members that they'd like to participate in the Wheel Reinvention Jam, but don't have a project idea in mind.

First of all, consider teaming up with someone from the jam ideas thread or the community Discord server. Some project ideas are big enough that they might need a team of people to do them justice!

But alternatively, if you want to go it on your own, here is a curated list of projects we think might be a good starting point. Some are larger than others, but for each one we've tried to find an angle on it that we think is both interesting and doable in a week.

If any of these sound interesting to you, please let us know! We'll put your name by that entry so that we don't have multiple people working on the same thing.

Casual video editing software.

Popular video editing programs these days are huge, incredibly complex, and often built for professional workflows that are far beyond the reach of most users. Most of the time, something far simpler would suffice, and would be a lot nicer to use. And often these programs are slow and crashy, burdened by all their features.

Windows Movie Maker is dead. iMovie exists, but is Mac-only and kind of stagnant. There is a void to be filled here.

To restrict the scope of the project, consider limiting the file types you support, and heavily use ffmpeg behind the scenes.

Math / general typesetting software.

The typesetting world is dominated by LaTeX. But anyone who's used LaTeX knows what an absolute mess it is. Syntax is inconsistent, features are fractured across various incompatible packages, and in general, things that should be simple...are not.

And it's not just math typesetting that suffers from this; LaTeX is also one of the best tools for general document typesetting. The world deserves a system that's more thoughtfully designed.

To start a project like this, perhaps you could simply focus on math typesetting, and take inspiration from decent equation editors like Desmos.

File versioning / backup / history systems.

As programmers we are likely all used to tools like Git or Subversion, which are specifically designed to work with code. But most computer users don't work with code.

In general, it seems like we should be able to work with a filesystem like a normal human being, but also have some history capabilities on top of that. Maybe I want to see what this specific file looked like a week ago. Maybe I want to see what the entire contents of this folder looked like a week ago.

Most PC backup programs don't do a good job of exposing backup data in a way that is nice for users to access. Time Machine for Mac arguably does - in the silliest way possible. And it's Mac-only.

There are any number of ways this could be done. You could even have optional "commits" if that made sense. There's lots of design space to explore on this one.

Vector graphics editors.

I hardly need to say much about this one - Adobe Illustrator is an expensive subscription program, and Inkscape is terrible.

There is enormous room for improvement in the vector editing space, especially when we consider much of what vector graphics are used for day-to-day. Yes, some people will be doing fancy graphic design and visual art. But a bunch of people are just making icons.

Many people would be happy to use a vector graphics editor that can do simple lines, strokes, fills, and gradients. The ability to export to SVG or to rasterize to various sizes would fulfill a lot of use cases, especially for web development. And libraries exist for rendering SVG data, which could give you a head start.

Also, may this tweet provide inspiration.

RSS reader.

RSS is great. It actually lives up to its name - it really is a simple way of fetching content from all over the internet, curated just the way you like it.

And yet, hardly anyone uses it any more. Google Reader died years ago, and with it a major way of consuming content on the internet. It has been mostly replaced, very badly, by Twitter and social media in general. This sucks. We should have a great, simple RSS app that is easy for anyone to use, syncs content between multiple devices, and doesn't do exploitative stuff.

And remember when I said no one uses RSS any more? I lied. Kind of. Podcasts use RSS as well, with just a few simple extensions to the format. People consume podcasts all the time, and a hybrid news / podcast app sounds like a killer combination.

(For an example of a good modern RSS reader, see Miniflux - but it needs to be self-hosted, which makes it a no-go for most people.)

Quick on-the-fly drawing program that copies straight to your clipboard.

Wouldn't this be great? It would be like a screenshot program, except instead of a screenshot it just pops up a quick temporary drawing canvas for you, and when you close it, it could just drop the image right onto your clipboard. This would just be such a great little utility to have. And most similar programs are really focused on screenshots.

And finally, if none of those spark your interest, captainkraft pointed us to this list of Arch Linux applications, which is wonderfully comprehensive. Scan through that list and see if anything catches your eye!

2 posts
Programmer at my home 🐒
Need project ideas for the jam? Start here...
Edited by fda0 on

On-the-fly drawing program is the only project where I would be comfortable reinventing anything because I lack experience or ideas on how to do a better job at others.

Some ideas that immediately come to mind:

  • Use palettes (maybe like 6 colors to pick from) that can be saved and switched between at any moment (and transform the whole canvas) - that would be useful for fast doodling so you don't need to spend time picking nice colors if you don't need to.
  • Treat lines/text/whatever as objects that you can move/resize/delete - but I would try to make it not annoying if user doesn't care about that.
  • It would be good to start with brush, eraser, selecting tool and add more features later on like shapes, text, dropping/pasting in external images.

I would love to collaborate with someone on this because I'm already working alone on my text editor and I want a break from that lifestyle, haha.

Also If somebody has a vision for reinventing something different and is looking for help then I'm open for that too.

EDIT: After some thought and Discord discussion I think there are UX wins to be had but it would be better to extend/fork programs like ShareX/Flameshot. In Flameshot you can fill an area with a solid background pretty easily and start drawing (I only wish that it felt smoother/had less latency). The optional screenshot capabilities can be very useful too so I don't know if I feel inspired enough to do doodling only program and if it makes that much sense. It probably makes some sense but improvement would be pretty small.

2 posts
Need project ideas for the jam? Start here...
Edited by rudy on Reason: existing software for all of the ideas 😢

My idea is focused on selecting / auto-saving a screenshot to the desktop (or a user-configurable path) or reliably uploading to the cloud (curl/post) for ease-of-sharing. I also like the idea of including Ben's doodling canvas in this as well!

If you are also interested in this idea and would like to work together, I would love to tackle this as a team!

Base Idea

  • Lightweight, performant screenshot tool that stays out of the way (i.e. taskbar icon).

  • Configurable hotkey. Single press of hotkey dims screen at point of press for user-selection. Upon selection, prompt to save or upload to cloud icons appear (also configurable via hotkeys). If save button press (or save hotkey pressed), goes to desktop or user-configured path. If cloud button press (or cloud hotkey pressed), posts to randomly generated URL and URL is automatically copied to clipboard for ease-of-sharing.

  • Lastly, since the goal is to make this better than similar software and already integrate most of this:

Quick on-the-fly drawing program that copies straight to your clipboard.

Wouldn't this be great? It would be like a screenshot program, except instead of a screenshot it just pops up a quick temporary drawing canvas for you, and when you close it, it could just drop the image right onto your clipboard. This would just be such a great little utility to have. And most similar programs are really focused on screenshots.

It might be a great idea to consider including this since most of the framework will already be there (perhaps another configurable hotkey brings up a drawing canvas).

Software Core Tenants

  • As Lightweight and performant as possible (be a ghost on the user's machine. Uploads are snappy and the only bottleneck is the user's internet speed)

  • Get the hell out of the user's way (simple and easy to use)

  • Give the user the freedom to configure the (very few) hotkeys to their liking.

Target Operating System

Windows 10/11

What I'm confident setting up here:

o Performant code to upload file to web server over TCP or UDP

o Full stack setup and configuration of the web server. E.g. handling the payload PUT/POST request client code, catching/sanitizing that request on the server, generating a unique URL, saving it to a database and serving subsequent requests from cache. Designing a simple human interface for actually viewing the image (think imgur but much, much simpler).

o Paying to bring the aforementioned server, domain, and anything else monetarily required for the project to be a success.

What I'm looking for in teammate(s):

o Someone who knows/understands the Windows API and is comfortable working with device contexts. Painting on a context buffer with shapes like rectangles, arrows and switching the colors of said shapes is a plus.

o ~~Someone willing to use the best tools for the job (Probably C/C++ for this particular project) ~~

Bonus / Nice to Have in teammate(s):

o Basic UI / Design Skillz :)

o If you would like to help with any of the web / server side stuff, or want to learn more about that stuff, that would be great (I'm willing to share my thought process + approach). Conversely, if you are willing to accept help and/or teach on your approach to client side decisions that would be awesome too, I'd love to learn more there!

Wishlist / out of scope for the jam:

  • Other operating systems not out of realm of possibility but probably not within the scope of what I would like to call "done" for the jam.

  • GIF Recording/saving/upload?

If interested feel free to respond here or ping me (Rudy#2467) in discord!


Flameshot already does all of this, and does it well. h/t Martins

ShareX already does the doodle component :'( - h/t fda0