I've been running my side project - free ecards that are wrong for every occasion - (https://wrongcards.com) for eighteen years. I felt like the internet needed something like that, back in 2008. Back then, it was a tribute to the 90s era of terrible, awful ecards websites, about which I had become oddly nostalgic. It was also semi-intentionally a terrible idea from a SEO perspective (ecause, like, search engines aren't going to help anyone find what is ostensibly WRONG for every occasion) and I built the entire thing out of spite towards what I thought of as the 'new web'.
Now, almost 20 years later, I find I want to preserve something from the old days before it all looked like, well, gestures around wildly. It would be a relief not to maintain the site anymore. But I feel like I'd be disappointing a lot of people, as well. I have no idea how long I'm going to keep this going.
I just spent 15 minutes I don't have, browsing your site and chuckling.
Thank you! :-)
(PS. maybe just freeze it so it's up but don't spend / spend minimal time on maintenance, if that's possible?)
(PPS. maybe integrate with some of those "send a postcard" sites so that people can also send actual physical cards using your designs? or buy them (high-res PDF for printing)
I did simplify the ecard send/receive mechanism - there's been four or five different iterations of the app, and validating emails was nightmarish. As of a few months ago I just let people create and copy-paste 'links with messages', which has made my life considerably easier.
I did print 1000 boxes of postcards years ago - in about 2012, I think. they turned out looking really beautiful, in print. It's a funny story, actually, because I put them on Amazon and forgot all about them, entirely (I was working a full-time job at the time at a university). I still have a few hundred boxes left I've been giving away to people.
I've had a few people contact me in the interest of facilitating that service, but they seemed kinda slimey. I think you're right; I should probably set up print-on-demand. But again, side projects, huh?!
I like the idea of having an “end of life wrap-up" for half-finished side projects. Rather than just stopping and leaving them abandoned, you make something like a report on what you learned, what you built, and why you're stopping. Then it feels less like you've abandoned something outright.
I do kind of the opposite, every week every project needs to justify why I should keep doing it and what I learned recently, and if I can't come up with any good reasons or good learnings, I abandon it.
That's a good idea too, but I think the wrap-up postmortem helps me clear my mind a bit. Personally I feel like having a formal declaration of "it's finished, for now at least" takes a weight off my mind.
Also it can give a feeling that it was not a waste of time - lessons learned, what you would do next time on other projects, other avenues to look into.
For years I wrote a technical blog intended just for my own reference, as the small effort required to write it up, create images and so on felt good. It was also a good point to think about what I had _actually_ done - sometimes this made me realise small mistakes or missing details.
> Also it can give a feeling that it was not a waste of time
Another way to avoid that feeling is changing your mindset around what's "abandoned" vs "completed". "Completed" doesn't have to mean "published project and made it FOSS" or whatever, it could literally be "Scratched an itch to play around with library X's APIs" or something, or just "Wanted to see if it was possible".
Nowdays I "complete" every single of my side-projects, some of them in some hours, because "completed" no longer has to mean "it's public and people can use it", mentally this feels a lot better :)
On your side-project it's also ok to ignore best engineering practice, reinvent the wheel because you feel like it or make decisions based on what seems most interesting even if it's not a 'good' decision.
The critical thing is what the author says:
> always make sure that you're doing them for yourself, and for the right reasons
For me my side projects are generally something to have fun with and something to learn new things with. When you're finding it a slog or you feel like you've learnt what what you need to it's fine to just dump it.
Actually finishing something is of course nice and for beginners in particular there's a lot of value in going from that it's mostly there just some loose ends to tie off stage to the actually done stage but you don't have to always do this (or indeed just do it in some select cases).
> On your side-project it's also ok to ignore best engineering practice, reinvent the wheel because you feel like it or make decisions based on what seems most interesting even if it's not a 'good' decision.
Pro tip for enjoying your life at work: this also applies to you work projects. Once you realize this, you can have a lot more fun at work and even coerce work projects to be more like your for-fun/side projects. Of course this is detrimental to the company as a whole, but your company almost definitely does not care about you and you might as well extract as much enjoyment as possible.
If your coworkers are actually passionate about programming (i.e. not drones or PM brains running flowchart to increase quarterly profit), you can even make work more enjoyable for them.
Things like unconventional language choices, over-engineering of systems, unusual coding styles, obscure protocol/library use, and of course a ton of NIH can really spice up a mundane codebase.
Even stretching an "easy" module into a masterfully crafted program and going 4x over estimation can be fun sometimes (without any of the bad design choices suggested above).
Yes I stand by this bad advice, and it's allowed me to play with so much technology I would never otherwise touch at day job.
While this may be fun for you and your team, in my experience it makes maintenance more difficult for the next team that inherits the project.
I would urge anyone who wants to "play with so much technology" to do so on your own side projects and proof of concepts rather then in enterprise engineering that you're paid for.
(and yes I accept most POCs end up being fast tracked to production anyway)
On the contrary, my side projects tend to have the most strictest linter, test and CI suites. Why? You may ask.
I'll tell you. I forget stuff.
So when I pick up that Openweather tool after three years of not touching it to quickly change the output a bit, I can be pretty sure the overly robust scaffolding around the project won't let me break anything.
That's the beauty of side projects, you get to decide and you don't have to care about working with others.
Really yearning for crafted code that meets every one of your perfect coding style guide and preference with green checks across a huge set of static analysis tools and a large test suite, go for it!
Tired of conforming to your ultra strict style guide at work and code reviews that go in endless circles nit picking about use of spacing or whatever? Let loose and stop having to care/worry so much about the details.
That's pretty neat. I actually had to spend some effort to upskill in Latvian to pass high school and college, so I would have found utility in this project in its more-or-less working state. Even today, if I were to come back to Latvia I'd be massively screwed over by a variety of grammatical cases of a language I effectively haven't used in years.
You never know when your abandoned side project is somebody else's treasure. I guess open source + let somebody vibe code to completion is the right way.
Abandoned doesn't have to be forever. As I got older I had a longer time horizon and more skill, and found I was picking up and finishing projects I'd laid aside decades earlier.
Now when I put something aside I know there's a chance I might pick it up again in ten years. There wasn't much evidence of that when I was twenty-five.
It's been one of the best things for me about middle age.
Sometimes also the project is just 'done'. I many years ago made a windows screensaver (never released to anyone else). Just so I could have a '2001' screen saver. Basically in the background of the movie was all these screens flashing just weird status stuff. It was a cool aesthetic I kinda liked. Spent many weeks getting it to flash 'just right' and have the right animations for the right feel. Then LCD screens basically killed any need to have a screen saver. As basically instant on/off meant there was no reason to have the monitor running all the time. So the project was done.
Totally. It’s usually a lack of time, lack of energy, general ‘life getting in the way’, that leads me to drift away from a side-project.
These factors can always be reversed. And (whisper it) a bit of vibe-coding can also help unstick a project that ground to a halt because the next step was dull implementation rather than exciting creation.
Don't stress out over these things. Some people garden. Some people collect stamps. Other people tinker with cars. And some people tinker with software. That's all a side project is. I make a point of going outside on a weekend and get some time away from my keyboard as well. There's nothing like a good break from coding to get some fresh inspiration and ideas.
If you are doing this for your own entertainment and learning, take it as far as pleases you. I have plenty of half finished things. I like picking one and doing some 'gardening' when I feel like it. Sometimes when I have low energy and I need to snap out of that, I just start doing simple stuff. Maybe I'll update dependencies on a project I haven't touched for ages. Or there's a bit of documentation that annoys me and I fix it. I'll see what needs doing, can use improving, etc.
There's a system to my madness where sometimes I find a use for disconnected bits of software in a business context. And sometimes that never happens and that's fine too. I abandon things as well. Mostly if I don't enjoy working on something, it just gets less and less of my attention. I have well over a hundred github projects at this point. Only a few of them have any traction at all. But once in a while I'll get a random issue report or PR on one that I haven't touched in years and that's all it takes for me to pick up where I left off.
Yea and also with AI I treat throwaway side projects as a way to develop my stack more so that for the next project I can just point Claude to it and say use this as reference instead of having to really work hard on thinking about architecture and scalability for every project . Also helps that you can later use sites at least as a way to get a boost in domain ranking
Here’s my own “graveyard” of projects just from the last few months: https://mesmer.tools/ that immediately got the highest domain ranking I have of all my sites(38), even ones making money
It's funny because he didn't actually abandon it: he finished it, and just found he didn't need it anymore. It's still there, it's still done, and still could be useful to someone (or perhaps himself, in the future, who knows).
I did find it to be a funny twist that, in the act of building the app, he taught himself the thing that the app was supposed to teach him when it was done.
I have such a project I just can't shut down: https://myowndb.com/
I started it 20 years ago, with ruby on rails. I neglected it but then decided to rewrite it in F# and publish it as open source (https://gitlab.com/myowndb/myowndb).
There are very few users, some from many years ago, all non paying. None gave any feedback I asked during the rewrite.
I should have shut it down years ago, but I just can't take the step. I'm focused on another project now, but who knows, maybe I'll get back to it....
Perfect website! Clear texts, clear screenshots, and an about page with a small photo of the person behind it. If I wasn't already using PHPMyAdmin I would definitely consider your product trustworthy. Am I right that it is - sort of - the same functionality as PHPMyAdmin?
I especially appreciate the honesty about the upcoming pricing. Do you plan/want to make it a business?
Hey that looks pretty neat! I sort of miss MS Access sometimes, and this feels like it might fill the same niche. The star count also just went up 50% :-D
Does it use Sqlite or something on the backend, or is it all it's own? Do you know if it runs on Linux?
Edit: My answers based on a quick review (please correct if I'm wrong). It uses Postgres (cool!) and definitely runs on Linux (I see Dockerfile in there). UI is through the browser?
What's loading during the "loading" time? The network tab in developer tools doesn't show any transfers taking place during that time. It finishes getting content then shows the loading thing for a bit, then shows the content
I always had a hard time with that and kept things running for too long as putting additional work into shutting something down when you already lost interest is a hard sell.
Now I usually just add a static landing page, some screenshots how it looked like and turn of the backend (Example: https://getbirdfeeder.com) which makes me feel better about it.
While I understand that by making the quiz app the author had learned everything and had no use afterwards, it's unfortunate to see it not published. My friend is learning Latvian and it would be perfect for her!
This advice is sound only if you think of success as defined by SV-investor-echo-chamber standards.
Too many "tales of side-projects that grew into successful businesses" can narrow your understanding of what it actually means. I agree that it's OK to abandon a side project, but it is a much deeper reflection.
My view is that side projects are not meant to be finished at all. Ideally they shouldn’t be more than an outlet for scratching a creative itch, and like any creative project, if your main motivation shifts from a personal goal to something vapid like testing the market viability of an idea that’s costing you a lot of time and effort to begin with then you’re going about it the wrong way.
I've slowly began to write about abandoned side-projects. It's actually incredible how much you end up re-picking back up.
A gaussian splat converter that I made and abanonded became incredibly useful a few months later when I needed to do a visualisation for a really specific environment
Most of my side projects have functional core features that I use regularly but they aren't quite shippable.
Building a GUI for others unfamiliar with the internal logic is incredibly difficult and tedious.
It could definitely happen after a few years and yes I have already had cases where I had to trace the code again to understand them. It is still a major hassle though!
I occasionally build simple CLIs that are immediately intuitive but GUIs are just too much work.
That's run of the mill project recursion applied to side projects. It wonder how much side project abandonment is due to it. Kudos to the author of TFA for not going and building a novel tech stack and actually learning the Latvian cases!
I used to think about abandoning ghidra-delinker-extension.
It was a project that started innocently enough, but its domain is unbelievably complex. Recovering MIPS relocation spots from a Ghidra database sounds like an easy enough task, until you're confronted with behemoth functions that span thousands of instructions and undocumented psABI extensions that produces edge cases from Hell.
But then, someone contributed a PoC COFF exporter to go along with the PoC x86 ISA analyzer and after that the Windows video game decompilation picked it up, spreading by word of mouth. I've spent a ridiculously long time fixing bugs and learning about MSVC on-the-fly (quipping "there are lies, damned lies and the Microsoft Portable Executable and Common Object File Format Specification." on the decomp.me Discord server at one point). Then other architectures started creeping up in PRs, first x86_64 and later PowerPC. It's a bottomless pit of toolchains and platforms minutiae that demand perfection to pull off and would drive anyone stark raving mad.
It was bad enough that I let it sit for months at a time, only for someone to message me and fall back into it, then discover it got even more popular while I was away. I also somehow got invited to present a poster about it at ACM CCS 2025 in Taiwan, an absolutely insane story (how many hobbyists are invited to present something at a world-class academic conference on cyber-security?) that while very enlightening also physically wiped me out.
Copilot saved this project and I really mean it. Preparing artifacts, writing tests, performing investigations and large-scale refactorings: hours of grueling, soul-crushing menial work that I no longer have to subject myself to. Features that looked impossible like generating debugging symbols became within reach. The ironclad regression test suite happened to provide the perfect feedback loop. I still review the code and design, but I no longer burn myself out on this madness.
I would go one step further: everything is okay with your side project.
You don't want to open source it? Don't. You want to open source it but not build a community? Don't build a community. You don't even have to answer to requests.
You don't even have to disable the PR on your forge.
You don't even have to explain clearly in the README how you envision it and show any kind of commitment.
If it's an open source project that has been used by others, please consider giving out maintainer access to others (now or later).
It's sad, when projects are abandoned and a whole bunch of users would be willing to (partially) maintain it, but the key holder implicitly or explicitly decided that nobody else should have access.
Forks are not he same: It's very hard to get enough traction with existing users and the discoverability is terrible.
Kindly disagree. If I don't want to work on a project anymore, I also don't want to spend time finding a new maintainer, or just take the responsibility to endorse a random person on the internet.
A fork solves that. And potential maintainers willing to work together on a fork can open an issue and talk about it. The reality being that more often than not, people think that they are willing to keep maintaining it, but in practice they just won't.
Now, almost 20 years later, I find I want to preserve something from the old days before it all looked like, well, gestures around wildly. It would be a relief not to maintain the site anymore. But I feel like I'd be disappointing a lot of people, as well. I have no idea how long I'm going to keep this going.
Thank you! :-)
(PS. maybe just freeze it so it's up but don't spend / spend minimal time on maintenance, if that's possible?)
(PPS. maybe integrate with some of those "send a postcard" sites so that people can also send actual physical cards using your designs? or buy them (high-res PDF for printing)
I did simplify the ecard send/receive mechanism - there's been four or five different iterations of the app, and validating emails was nightmarish. As of a few months ago I just let people create and copy-paste 'links with messages', which has made my life considerably easier.
I did print 1000 boxes of postcards years ago - in about 2012, I think. they turned out looking really beautiful, in print. It's a funny story, actually, because I put them on Amazon and forgot all about them, entirely (I was working a full-time job at the time at a university). I still have a few hundred boxes left I've been giving away to people.
I've had a few people contact me in the interest of facilitating that service, but they seemed kinda slimey. I think you're right; I should probably set up print-on-demand. But again, side projects, huh?!
For years I wrote a technical blog intended just for my own reference, as the small effort required to write it up, create images and so on felt good. It was also a good point to think about what I had _actually_ done - sometimes this made me realise small mistakes or missing details.
Another way to avoid that feeling is changing your mindset around what's "abandoned" vs "completed". "Completed" doesn't have to mean "published project and made it FOSS" or whatever, it could literally be "Scratched an itch to play around with library X's APIs" or something, or just "Wanted to see if it was possible".
Nowdays I "complete" every single of my side-projects, some of them in some hours, because "completed" no longer has to mean "it's public and people can use it", mentally this feels a lot better :)
The critical thing is what the author says:
> always make sure that you're doing them for yourself, and for the right reasons
For me my side projects are generally something to have fun with and something to learn new things with. When you're finding it a slog or you feel like you've learnt what what you need to it's fine to just dump it.
Actually finishing something is of course nice and for beginners in particular there's a lot of value in going from that it's mostly there just some loose ends to tie off stage to the actually done stage but you don't have to always do this (or indeed just do it in some select cases).
Pro tip for enjoying your life at work: this also applies to you work projects. Once you realize this, you can have a lot more fun at work and even coerce work projects to be more like your for-fun/side projects. Of course this is detrimental to the company as a whole, but your company almost definitely does not care about you and you might as well extract as much enjoyment as possible.
If your coworkers are actually passionate about programming (i.e. not drones or PM brains running flowchart to increase quarterly profit), you can even make work more enjoyable for them.
Things like unconventional language choices, over-engineering of systems, unusual coding styles, obscure protocol/library use, and of course a ton of NIH can really spice up a mundane codebase.
Even stretching an "easy" module into a masterfully crafted program and going 4x over estimation can be fun sometimes (without any of the bad design choices suggested above).
Yes I stand by this bad advice, and it's allowed me to play with so much technology I would never otherwise touch at day job.
I would urge anyone who wants to "play with so much technology" to do so on your own side projects and proof of concepts rather then in enterprise engineering that you're paid for.
(and yes I accept most POCs end up being fast tracked to production anyway)
I'll tell you. I forget stuff.
So when I pick up that Openweather tool after three years of not touching it to quickly change the output a bit, I can be pretty sure the overly robust scaffolding around the project won't let me break anything.
Really yearning for crafted code that meets every one of your perfect coding style guide and preference with green checks across a huge set of static analysis tools and a large test suite, go for it!
Tired of conforming to your ultra strict style guide at work and code reviews that go in endless circles nit picking about use of spacing or whatever? Let loose and stop having to care/worry so much about the details.
You never know when your abandoned side project is somebody else's treasure. I guess open source + let somebody vibe code to completion is the right way.
Now when I put something aside I know there's a chance I might pick it up again in ten years. There wasn't much evidence of that when I was twenty-five.
It's been one of the best things for me about middle age.
These factors can always be reversed. And (whisper it) a bit of vibe-coding can also help unstick a project that ground to a halt because the next step was dull implementation rather than exciting creation.
If you are doing this for your own entertainment and learning, take it as far as pleases you. I have plenty of half finished things. I like picking one and doing some 'gardening' when I feel like it. Sometimes when I have low energy and I need to snap out of that, I just start doing simple stuff. Maybe I'll update dependencies on a project I haven't touched for ages. Or there's a bit of documentation that annoys me and I fix it. I'll see what needs doing, can use improving, etc.
There's a system to my madness where sometimes I find a use for disconnected bits of software in a business context. And sometimes that never happens and that's fine too. I abandon things as well. Mostly if I don't enjoy working on something, it just gets less and less of my attention. I have well over a hundred github projects at this point. Only a few of them have any traction at all. But once in a while I'll get a random issue report or PR on one that I haven't touched in years and that's all it takes for me to pick up where I left off.
Here’s my own “graveyard” of projects just from the last few months: https://mesmer.tools/ that immediately got the highest domain ranking I have of all my sites(38), even ones making money
I did find it to be a funny twist that, in the act of building the app, he taught himself the thing that the app was supposed to teach him when it was done.
I especially appreciate the honesty about the upcoming pricing. Do you plan/want to make it a business?
Does it use Sqlite or something on the backend, or is it all it's own? Do you know if it runs on Linux?
Edit: My answers based on a quick review (please correct if I'm wrong). It uses Postgres (cool!) and definitely runs on Linux (I see Dockerfile in there). UI is through the browser?
Now I usually just add a static landing page, some screenshots how it looked like and turn of the backend (Example: https://getbirdfeeder.com) which makes me feel better about it.
Too many "tales of side-projects that grew into successful businesses" can narrow your understanding of what it actually means. I agree that it's OK to abandon a side project, but it is a much deeper reflection.
A gaussian splat converter that I made and abanonded became incredibly useful a few months later when I needed to do a visualisation for a really specific environment
It's OK to abandon your side-project - https://news.ycombinator.com/item?id=39500386 - Feb 2024 (79 comments)
What also needs to be shipped quickly and numerously? Oh, I remember, unsolicited commercial email...
It was a project that started innocently enough, but its domain is unbelievably complex. Recovering MIPS relocation spots from a Ghidra database sounds like an easy enough task, until you're confronted with behemoth functions that span thousands of instructions and undocumented psABI extensions that produces edge cases from Hell.
But then, someone contributed a PoC COFF exporter to go along with the PoC x86 ISA analyzer and after that the Windows video game decompilation picked it up, spreading by word of mouth. I've spent a ridiculously long time fixing bugs and learning about MSVC on-the-fly (quipping "there are lies, damned lies and the Microsoft Portable Executable and Common Object File Format Specification." on the decomp.me Discord server at one point). Then other architectures started creeping up in PRs, first x86_64 and later PowerPC. It's a bottomless pit of toolchains and platforms minutiae that demand perfection to pull off and would drive anyone stark raving mad.
It was bad enough that I let it sit for months at a time, only for someone to message me and fall back into it, then discover it got even more popular while I was away. I also somehow got invited to present a poster about it at ACM CCS 2025 in Taiwan, an absolutely insane story (how many hobbyists are invited to present something at a world-class academic conference on cyber-security?) that while very enlightening also physically wiped me out.
Copilot saved this project and I really mean it. Preparing artifacts, writing tests, performing investigations and large-scale refactorings: hours of grueling, soul-crushing menial work that I no longer have to subject myself to. Features that looked impossible like generating debugging symbols became within reach. The ironclad regression test suite happened to provide the perfect feedback loop. I still review the code and design, but I no longer burn myself out on this madness.
You don't want to open source it? Don't. You want to open source it but not build a community? Don't build a community. You don't even have to answer to requests.
You don't even have to disable the PR on your forge.
You don't even have to explain clearly in the README how you envision it and show any kind of commitment.
You do you, open sourcing is already nice.
It's sad, when projects are abandoned and a whole bunch of users would be willing to (partially) maintain it, but the key holder implicitly or explicitly decided that nobody else should have access.
Forks are not he same: It's very hard to get enough traction with existing users and the discoverability is terrible.
A fork solves that. And potential maintainers willing to work together on a fork can open an issue and talk about it. The reality being that more often than not, people think that they are willing to keep maintaining it, but in practice they just won't.