Ask for it in its final state and prefix with “I want to build a ...” - in other words give the model the reins.
If you like what it suggests you can swap to IDE - scaffold a new project and paste the code in. That’ll free you from paid tiers.
With this method I finally made a photo gallery website to thank our guests for coming to our engagement party! I started in v0 to get a nice landing page, then pasted that code into a new nextjs repo. To spruce up the photo viewer, I downloaded the readme.md for a component I like (Spotlight.js - thank you devs!) Next, I pasted that readme - plus the 3 or so key code files from the repo - into a Claude conversation and said “please redo the code using the component documented in the attachment”.
Seeing it run in Claude Artifacts got me over the hump - now all that was left was tweaking instead of big hairy decisions.
(Pre-empting the responses, I agree the workflow is smoother in Windsurf, Zed, Cursor, Cody, Contiue, or Aider. Pasting code back and forth forces me to read it, which leads to finding more bugs and removing more superfluous bits.)
You still have those domains OP! You can do it!
Thanks to this workflow and these new tools, I get stuck on way fewer bugs and documentation rabbit-holes on my way to something I can polish and make beautiful.
It's okay to not finish side projects — they were fun for a bit! Good for you for finding some low-cost fun!
I make music in my spare time and in the past year I think I barely have an EP worth of tracks that are _nearly finished_, but I've got dozens of neat loops. I've come to peace with this because the value I'm looking for is in the act of spontaneous creation with my instruments.
I put down movies, tv shows, video games when they start to feel like an obligation rather than a fun pursuit. The value starts to taper off. I think that's okay. I have a day job making computer things, a family… free time is so precious. Why force a non-interest?
I have thoughts about this.
I'm in my 40s and for most of my life I had an unending series of unfinished projects that I felt guilty about. Today, I am able to finish some stuff, including some pretty large, hard projects. Better, I don't feel guilty about the stuff I don't finish.
The trick for me is to be deliberate and mindful about why I'm embarking on a particular project.
If it's because I want to feel good by:
* Sharing something with others.
* Accomplishing a difficult, challenging task.
* Proving to myself that I can do something.
* Getting the social cachet of being a creative, productive person. (Maybe this is shallow, but who doesn't like to feel impressive in the eyes of their peers?)
Then the goal of the project is the product it and I focus my attention and discipline on it. I try to have as few of these as possible—like only one at a time—so that my willpower is not diluted.
If it's because I want to feel good by:
* Improving a skill.
* Exploring an unfamiliar domain or learning something new.
* Relaxing by tinkering on something I like.
Then the goal of the project is the process and I don't feel bad about not finishing. The real treasure is all the stuff I learned and did along the way and there is no real destination. I can have as many of these as I want because there's no real failure mode here. They're all recreation.
Once I got more honest and clear with myself about my goals for each project, I started to be able to finish the ones where that mattered and stopped feeling bad about the ones where it doesn't.
[1]: https://www.reddit.com/r/AskReddit/comments/p71j9x/what_do_y...
Ironically, I've been meaning to polish this comment up to be a full article for a while but haven't gotten around to it yet.
This describes a large number of projects that I start. Getting comfortable that this is the real reason behind a lot of what I want to do and being OK with something being unfinished goes a really long way to not stressing about unfinished projects.
> Ironically, I've been meaning to polish this comment up to be a full article for a while but haven't gotten around to it yet.
Lol. Just slap it in your blog. Right now, just like it is. Then maybe go and polish it up. Or set a pomodoro timer and polish it right now and publish once 25 minutes have elapsed or something.
I once sent a professor in my department my favorite Emacs packages—he's an Emacs user too but was wondering what some of the hot new packages were. When I sent him a long-ish Slack message, he just said to publish the list as-is on my blog.
I was initially unsure—I do like to do several drafts—but I decided it couldn't hurt. I edited a little to make the grammar more correct, but it landed on my blog and is currently the most-visited post. Go figure.
So, for those stuck on publishing posts on their blog: just post. Post post post post. Don't over-think it. Don't try to have the flashiest blog post. Just write. ;)
(The Emacs post, for those curious: https://lambdaland.org/posts/2024-05-30_top_emacs_packages/ )
I still start a whole bunch of things and then get busy or distracted or it stops being interesting or I hit a roadblock.
But a few years ago I started looking at my existing projects and deciding for each exactly what they need to be releasable. It doesn't mean done; just a good stopping point. And I just try to get there. And then I work on what is needed to release. It's documentation, READMEs, package management, installers, logos, screen shots, etc. And I treat all that as separate project.
For some reason thinking of the release as a separate project helps me to get it done.
And it's now a process that I can repeat over and over. I have all these defined steps that I do now when I release something and it becomes easier to do. Then, at least then if I never get back to one of these projects, I have contributed something to the world.
I am at the point where I can use it, which means that every feature can be a shiny new thing, yet be small enough to do quickly. So...get to that point as quickly as you can.
But on the flip side, I spent over three years working on my project before it was usable. How did I maintain motivation that long? Pure, searing hatred.
My project is a build system for removing my dependence on CMake. Yes, I hate CMake that much.
Hating CMake every time I had to use it was enough motivation.
So to not be haunted by your projects, run on hatred until you succeed. Or maybe any strong emotion.
I like to use Bluejuice's Vitriol as a motivating music when I am in that headspace.
" Fuck the whole world and what everybody's saying, hey Good luck and don't dare give up Give it a little bit of vitriol "
It took me close to 20 years to finally shed the guilt of unfinished software projects.
Side projects can just be about having "fun". Just as going for a walk, or reading a book, listening to music, etc can just be done for fun. I don't have to finish any of these things. I don't have to finish side projects. Fun things don't have to be useful, purposeful, practical, or anything but they should be fun.
For example, I have a lingering inactive car project, where I can still say I learned something about poking around with a multimeter, disassembling car parts, soldering, Arduino chips, and CAN buses.
Sometimes, if I have to do something boring, I make it challenging by either trying to automate it, or do it in a more efficient way.
I wrote earlier this week on HN[1] about my very recent experience trying to ship _something_ (in the "product" category) to alpha testers in <1d and to an open beta in <7d, and it's something I recommend highly for people who are stuck wanting to go from "almost done" to "done" before shipping.
There is so much valuable feedback to be gained by shipping _something_ as soon as possible, and often just the act of getting that feedback goes a long way towards breathing fresh life into a project you might be starting to feel a little burnt out on.
what's fun about side projects is that the scope is unconstrained. you work on whatever you want to work on. you change scope at any time.
I found it helpful to explicitly think about the scope of my side projects. to answer the question "what will I ship when this is done." The answer is, of course, that it's never done -- that's because the scope can change at any time. the solution is to keep the lofty ideal very large but greatly cut the scope of the intermediate steps.
the answer isn't discipline of "finish it" -- it's the discipline to "scope it."
I might spend an hour on a project and move to the next one, or I might get excited and stay with it for a few weeks making a medium fix or enhancement. Just knowing I'll come back around to each project makes me feel less guilty about leaving them hanging.
Some projects at work suffer some a similar quirk - the last 10%-20% of the work remaining on the project takes longer than the rate at which the first 80% of the project is completed.
It's like the leftover bits that aren't as exciting or engaging (bug fixes, documentation, little tweaks) always end up making that work feel like a chore rather than a joy.
Years ago a colleague coined a term for their ideal way of working - Mood Driven Development - they worked on what they wanted to work on.
It feels like it has a similar trait to creative work such as art or writing or music - you let the creative block have its moment, then when that passes and the creative juices start to flow, that's the moment to do the work, but if you achieve flow state then it ceases to be work, it's just natural.
I've been feeling similarly haunted by projects, which I now call a "one man war of attrition":
[1] https://taylor.town/attrition
It's a weird spot, because you need enough discipline to convince yourself to expend more effort than watching Netflix, but also not stress yourself out.
As a concept, "building in public" has been not great for convincing myself to do more.
I think TodePond's "slippy mindset" might be more useful for these situations:
Also, I'd consider whether you really truly want to finish these projects, or if you moreso just want them to be finished. I've found that there's a big difference between wanting to work on something and wanting that thing to be finished, if that makes sense. In general, if it's not your main project, if you don't truly want to work on it, don't.
For hardware, don't even begin to build it until it's fully designed. That sucks the fantasy and freedom away.
Build it to throw away. I built a boat, sailed it a few times, then abandoned it on the beach. That attitude helped me quickly make a useful thing not obsess over perfection.
Have small milestones where it's OK to stop at. I have a few projects that are in service but nowhere near complete to my original fantasy. They're still useful enough.
I’ve found that people may reach out and offer to implement things if your project scratches their itch and get it in a much better shape than it would have been languishing in a private repository.
The same philosophy applies to other ventures and ideas. Just ship it.
This is a common mantra, but I completely disagree with it. I have tons of finished software projects. And yes, I do mean things that need zero maintenance and continue to work after more than a decade without me having to touch the code at all. I don’t necessarily use all of them anymore, but they still work.
And they’re not stuff that’s only useful to me, either. I particularly remember a script I built to unofficially get data from a project. After the project made their own version, I deprecated mine. After years of not using the script, I deleted it. Not even a day later, I had multiple people asking me to bring it back because my version did some small thing in a way they preferred.
Software can be finished, it’s not that hard.
Of course, this is all a matter of perspective and semantics.
I suppose if something becomes obsolete enough that no one's interested in developing it further, it could be considered "finished". But even here, it seems like people still have some interest in very old software sometimes, resurrecting it to run on emulators perhaps, and sometimes even making changes (if they can get the source code) to improve its operation on newer systems.
That has nothing to do with the software’s finished state. An NES game which runs bug free and without performance issues on the NES doesn’t stop being complete because someone else decides to run it in a different environment decades later.
> There's always something that can be improved in software.
No, there’s not always something which can be improved. There’s always something that can be fiddled with, which is not at all the same thing.
By your logic, no painting is ever finished, nor is any novel, nor any meal, nor any internet comment, nor literary anything. Things are finished when the author decides they completely fulfil their need, it’s not your opinion as an outsider that matters.
This is usually not true. Whenever I get back to something, I realise it was just 1h of work to implement that feature I've been procrastinating 2 years on. We (humans) are very bad at estiamting how long something will take. It's not that finishing the project will be easy, but doing that specific task you've delayed so much, you know what? That's really easy to do, and can even be fun.
Regarding reaching 90% completion. A project is likely never done. What helped me procrastinate less is realising that the goal is not to finish the project, I will never be happy with it. The goal is to make some progress, regardless how small it is. This also fixes the common fear of "finishing a project". If there is no finish line, you are never at 90%.
And, as a last thing: building is the easy part. Once you make the project, having people actually see it and use it will be harder, especially if you are an engineer at heart. So, don't be afraid of making something good enough to be released. Release it. No one will care about it anyway.
You can run each project on its own subdomain on a shared domain. Example: app1.mysite.com app2.mysite.com. This can save you tens of dollars a year and save you some headaches. Probably not optimal for SEO, but for random projects it's pretty good.
Example: I'm making a little game for Pico-8. Totally useless, and I'll probably abandon it, but it's a lot of fun right now. I even enjoy playing it :-)
If I set a goal to run 5km everyday and one day I run 4km I feel like I've failed. Somehow not meeting the goal invalidates any positive feelings of running the 4km.
I think a lot of side projects have an implicit, unstated goal of "finishing" or "releasing". This is setting yourself up for the same trap as the runner.
It also helps if instead of "run for 5km" I think of the destination "run to the supermarket, to get some cake".
With side-projects is not "add 3 features". It's "add feature A, which then enables B, C, D functionalities".
Also, the more you work on something, the more questions you answer and even more new questions show up. By doing something on your project, you make progress, you unveil the previously unkown. I like thinking of implementing something not as getting closer to the finish line, but as expanding the horizon and seeing more into the distance, instead or looking at a close, dense fog wall of "what could have been".
Compare that to professional life, where so many times we get stuck in death marches, feeling like we can’t say no to projects that have already lost any change to reach their full goal. With side projects, at least we have the control to decide if it’s worth it or not.
Something I’ve started doing that's a very good exercise is brainstorming my project ideas with ChatGPT. I’ll treat it like a project manager, spill all my thoughts, talk through adding features and finding ways to make the idea bigger. If it still feels exciting after that, I’ll dive in. Even if I don’t, it’s like letting intrusive thoughts come and go during a meditation session, afterwards regardless of the outcome I feel I can clear my head and just move on.
And I get it. It's probably best to call it quits on many projects like this. To accept that you've had your fun with the concept, and that you shouldn't force yourself to finish something you've got no more passion for.
But it's easier said than done, and the sunk cost fallacy always lurks in the back of your mind regardless.
1) doing the work is always beneficial for learning and experience
2) rediscovery of an oldie but goodie can be its own endorphine popper
3) more often than not, new goals or circumstances emerge that add new relevance to incomplete bits and pieces
I can imagine there are probably more similar reasons to see unfinished work as investment rather than time lost
You could: Pick them up (cd into the project dir) Say thank you cd .. && rm -rf $projectdir
Seems like a simple solution: do smaller stuff, reduce the scope. Start side projects you can finish in a day, or a week, or whatever you can usually manage. Instead of aiming to build a space shuttle, make a bicycle. Those are fun and useful too. Make your project do one simple, stupid thing. No feature creep, no bells and whistles, just do one thing.
Alternatively, continue as you are but learn to accept yourself. Admit that any side project you start is something you’re not going to finish and don’t make it about finishing, but instead about enjoying the process.
I know this sort of sounds... simplistic... but, well, observe that when you aren't thinking about it, the half-finished projects don't hurt you. You just need to extend that to when you are thinking about them.
Your projects are not obligations. Nobody is waiting for them. Nobody is going to fire you, or ground you, or anything else, if you don't finish them. Even if you did put up a post somewhere or something talking about how you've got this wonderful new thing you totes promise will be available in three months... nobody cares yet. And even if they do, well, declare bankruptcy and move on. If that's their biggest disappointment this week they will be in an enviable position.
In fact from a perfectly rational point of view, many of those projects maximize their value to you in precisely the state they are in now. It's quite easy for a released project to go quite negative in value to you, due to obligations suddenly actually appearing, having a system that can be hacked and maybe people who can be hurt by a hacked system, etc.
I developed a rule of thumb from this. It's very klunky, I won't deny that, I never found a good phrasing for it, but I think of "Never engage in an endeavor where the worst case scenario is complete success." It's really my side projects I'm thinking of when I say this. Do I have an interesting idea for how to create a new type of community site or bulletin board or Reddit competitor? Sure, that's fun to program, but what if it actually worked? Do I want to actually own such a thing? Goodness gracious no. So maybe I do the fun part and then just let it sit on the hard drive, and call it a win.
I find myself in a very relatable state and also a software dev. I have bursts of motivation at different times of year, but also still have an endless pile of nearly finished projects that I feel guilty about when I have that new shiny project in hand.
Drop me a message if you want to chat.
Hang in there
I regularly read/hear about people who frequently buy domain names and never use them. Why? You already know you’re not going to ship, why waste the money and deprive someone else of the name?
For me, the process normally goes:
1. Inspiration strikes, I start noodling on an idea
2. I get really excited and start exploring the domain name state space for places to host it
3. Life happens, the idea ends up being bad/hard/some better alternative exists, etc.
I think buying the domain is kind of an accountability thing in some ways, the same way people pay for instrument/language/etc lessons when they could learn online for free. It makes you more committed to the process.
For ideas that I've had, the ones that get domains likely have a much higher completion rate than the ones that don't
I also own a few dozen domains, movies I haven't seen, and boardgames I haven't played.
I don't know why I do it, probably some consumerist lust and existential dread of possibility never owning much in the real world like property or a home.
Does that project no longer spark joy? Delete.
But then, I get a rush out of dropping off loads of unused stuff at Goodwill.
1. a rekindle of the spark and time flies. Good.
2. or an assessment of "... you know what, just bin it". Also good.
3. a "meh" moment where I go do something else. Neutral in regards to these projects but fine for your choice of time.