Madhurima Mindscape

Modules, Materials, Moments, Memories, and More

๐Ÿก Home ๐Ÿ“‘ Saved ๐Ÿ“‚ Blogs

Unfinished Projects

November 6, 2026

Calculating reading time...

We all love starting new projects. A new idea comes to mind, and suddenly we are excited about building something amazing. We imagine all the features, the possibilities, and how this might become our best project yet.

But what happens after a few weeks or months? Sometimes we lose interest, discover a more exciting idea, encounter complicated bugs, or simply move on to learning something different. Eventually, our laptops become collections of unfinished projects, abandoned experiments, and folders that we barely remember creating.

The interesting thing is that these projects were once extremely important to us. We invested time, effort, and creativity into them. However, our interests and priorities change, and something that once seemed incredibly important can eventually become nothing more than clutter.

Project Folder Illustration

Project Folder Illustration(Source)

In this article, I want to discuss how I organize my old projects without necessarily losing the ideas behind them. I'll also explain how to restructure older projects, document unfinished work, and decide which projects deserve another chance and which ones are better off being deleted.

Project Importance is subjective and temporary. What matters to you today might not matter as much tomorrow, and that's completely fine.

๐Ÿ“‚ 1. Categorize Your Projects Before Doing Anything

The first thing I recommend is categorizing all your existing projects. Instead of looking at hundreds of folders and randomly deciding what to do with them, divide them into three simple categories.

These are the three categories I personally find useful:

  • Finished: Projects where the main functionality has already been implemented.
  • Partially Implemented: Projects where the main idea exists, but some important functionality is still missing.
  • Ideation / Unfinished: Projects that were started but never developed far enough to become functional.

Let's understand how to deal with each category.

โœ… 2. Finished Projects: Give Them a Proper Ending

By finished projects, I don't necessarily mean projects that are completely polished or production-ready. I mean projects where the main functionality or the central idea has already been implemented.

For example, suppose you started building a web scraping tool that accepts a website URL and extracts information from that website. If the main scraping functionality already works, you can consider the project functionally complete, even if the interface, documentation, and deployment are still pending.

These projects are usually the easiest ones to finish because most of the difficult implementation work is already behind you.

Instead of leaving them in your laptop forever, create a small checklist of everything required to properly wrap them up.

  • Improve the frontend or user interface, if necessary.
  • Fix obvious bugs and clean up unnecessary code.
  • Add a proper README with installation and usage instructions.
  • Include screenshots or a demonstration of the project.
  • Deploy the project if it makes sense.
  • Upload the source code to GitHub.

If you want to keep the project private, you can always create a private GitHub repository instead of making everything publicly accessible.

The idea is simple: don't let a nearly completed project remain unfinished just because you never got around to writing its documentation or organizing its files.

๐Ÿ› ๏ธ 3. Partially Implemented Projects: Focus on One Important Feature

The second category consists of projects where you have implemented some functionality, but something important is still missing.

This usually happens because of a difficult bug, an implementation issue, a technology limitation, or simply because the project became more complicated than you initially expected.

For these projects, I recommend identifying just one important feature that would make the project useful. Don't immediately start implementing every feature you originally planned.

Let's take the same web scraping tool as an example. Suppose the scraping functionality works, but you never implemented the feature that allows users to export the extracted data.

Instead of trying to implement the entire original roadmap, focus on adding that one essential feature. Once it works, you can document the project, upload it, and consider it complete enough to preserve.

You don't always need to build the perfect version of something. Sometimes implementing the minimum functionality required to make the original idea usable is more than enough.

๐Ÿ’ก My tip: If you have limited time, prioritize the feature that makes the biggest difference rather than trying to complete every small improvement.

๐Ÿšง 4. Unfinished Projects: Document What You Have and Move On

This is probably the largest category for most developers. These are projects that you started enthusiastically but eventually abandoned.

Maybe you got bored, couldn't implement a particular feature, encountered too many bugs, or realized that the project was much more complicated than you expected. Sometimes, you simply lost interest in the technology you were using.

For these projects, you have two choices: try to finish them if you genuinely want to, or document whatever you have already done and move on.

Even if you decide not to complete a project, I recommend writing down the original idea, the functionality you implemented, and the features you had planned.

You can create a README containing:

  • Project idea: What were you trying to build?
  • Implemented features: What actually works?
  • Incomplete features: What did you plan to implement but never got around to?
  • Challenges: What bugs, technical issues, or limitations did you encounter?
  • Future scope: What could someone potentially improve or implement?
  • Project status: Clearly mention that the project is unfinished or no longer maintained.

You can then upload the project to GitHub and preserve it for future reference.

One important thing: be honest about the state of your project. There is absolutely nothing wrong with uploading an unfinished project as long as you clearly communicate what works and what doesn't.

This way, even if you never return to the project, the original idea and whatever you learned while building it won't be completely lost.

๐Ÿ—‚๏ธ 5. Maintain an Index of Your Projects and Ideas

Categorizing projects is useful, but maintaining an index makes the entire process much more effective.

When you have multiple projects, it becomes difficult to remember what each folder contains, which projects are complete, and which ones still have potential.

I recommend maintaining a simple index containing the project name, its current status, a short description, and a link to its repository.

You can maintain this index in a Markdown file, a spreadsheet, or even a dedicated GitHub repository.

For example, you could create a repository specifically for organizing your projects and ideas.

project-index/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ finished-projects.md
โ”œโ”€โ”€ partially-implemented.md
โ”œโ”€โ”€ unfinished-projects.md
โ”œโ”€โ”€ project-ideas.md
โ””โ”€โ”€ learning-resources.md

This gives you a central place to look whenever you want to revisit an old project or find something interesting to work on.

Another habit I personally have is collecting resources whenever I plan to learn something new.

I might create a text file or Markdown document and keep adding useful links, tutorials, documentation, and other references. But sometimes I eventually lose interest in learning that particular technology.

Instead of allowing those resources to remain scattered across my laptop, I prefer preserving them in a dedicated repository or GitHub Gist.

This way, even if I don't use those resources immediately, I can find them again whenever I need them.

๐Ÿ—‘๏ธ 6. Don't Be Afraid to Delete Old Projects

Deleting projects can be surprisingly difficult. Sometimes we become so attached to an idea that we hesitate to remove it, even when we know we will probably never work on it again.

However, not every project deserves to stay on your laptop forever.

If you have absolutely no intention of continuing a particular project, don't want to invest any more effort into it, and don't see any meaningful future scope, deleting it is completely fine.

Before deleting it, however, consider whether there is anything worth preserving.

  • Was there an interesting idea behind the project?
  • Did you implement any useful logic or functionality?
  • Did you discover a useful technique or approach?
  • Are there resources or references you might need later?
  • Is there anything worth documenting for future use?

If the answer is yes, preserve those things separately. You can add them to your project index, a dedicated ideas repository, or a GitHub Gist.

Once you have preserved whatever is genuinely useful, you can safely remove the old project from your system if you no longer need it.

Sometimes the code itself is so messy that you don't want to maintain it or even document it in detail. That's fine too. You don't have to preserve every line of code you have ever written.

The important thing is to distinguish between preserving a useful idea and keeping an entire project that has become nothing more than clutter.

๐Ÿงน 7. Decide Whether a Project Should Stay Local, Be Published, or Be Deleted

One important part of organizing old projects is deciding what you actually want to do with each one.

Not every project needs to be deployed, uploaded to GitHub, or maintained forever. Different projects have different purposes, and it's completely fine to treat them differently.

I usually think about three possible outcomes:

๐Ÿ  Keep It Local

Some projects are simply experiments. Maybe you were testing a library, learning a new concept, or trying something that you don't intend to share with anyone.

If you still find the project useful and want to continue experimenting with it, keeping it locally is perfectly fine. There is no need to turn every experiment into a public GitHub repository.

๐ŸŒ Upload or Deploy It

If you think a project has potential, or you might want to improve it in the future, consider uploading it to GitHub.

Depending on its purpose, you can also deploy it so that people can actually interact with what you have built.

Even if it is unfinished, a properly documented repository can be useful as a reference for your future self or other developers.

โŒ Delete It

Finally, there are projects that you simply don't want to continue.

Maybe the idea no longer interests you, the technology is something you don't plan to use again, or the project has become too messy to justify maintaining it.

If you have already preserved anything useful, deleting the project is a reasonable decision.

๐Ÿ’ก My tip: Don't keep a project just because you once thought it was important. Decide based on whether it has any value to you now or might have meaningful value in the future.

๐Ÿ”ง 8. Restructure Older Projects Before Revisiting Them

There is another problem with older projects that I think is worth discussing: their code structure.

When we start learning programming, we are beginners. We don't necessarily understand how to organize files, separate responsibilities, write reusable code, or structure an application properly.

As a result, some of our older projects can be extremely messy. You might find everything inside a single file, duplicated code, unclear variable names, unnecessary dependencies, and an overall structure that is difficult to understand.

This becomes especially frustrating when you revisit an old project after learning better development practices. You immediately notice all the things you would have done differently.

Instead of immediately adding new features, spend some time understanding and restructuring the existing code.

  • Organize files into meaningful directories.
  • Separate different functionalities into appropriate modules.
  • Remove unnecessary or duplicated code.
  • Use meaningful variable and function names.
  • Remove unused dependencies where possible.
  • Update outdated documentation and setup instructions.
  • Fix obvious bugs before implementing additional features.

You don't need to completely rewrite an old project. Sometimes a few structural improvements are enough to make it understandable and maintainable again.

Also, don't confuse restructuring with unnecessarily rewriting everything. The goal is to make the project easier to work with, not to turn a small cleanup into another never-ending project.

โณ 9. Spend Your Free Time Finishing Older Projects Instead of Always Starting New Ones

One habit I have found particularly useful is trying not to start a new project every time I have some free time.

We are naturally attracted to new ideas. Starting something feels exciting because everything is fresh, and we can imagine all the possibilities.

But before starting another project, take a look at what you have already built.

You might discover that you already have a project with most of its functionality implemented. Perhaps it only needs a small feature, some documentation, or a little restructuring before it can be considered complete.

Instead of starting from scratch, you can invest that time in something you have already put effort into.

And if you decide that an older project isn't worth continuing, organize it, preserve the useful ideas, and move on.

This approach helps prevent your collection of unfinished projects from growing endlessly.

๐Ÿ’œ Importance Is Subjective and Temporary

I think the most important thing to understand is that the importance of a project changes over time.

When you first start building something, you might be extremely excited about it. You have a new idea, you are learning a new technology, and you can imagine all the possibilities. At that particular moment, the project feels incredibly important.

But after some time, your interests change. You learn new things, become more experienced, move on to different technologies, and develop different priorities. Suddenly, that old project doesn't feel as exciting anymore.

And that's completely normal.

You don't have to finish every project you start. You don't have to preserve every folder on your laptop, and you certainly don't have to keep working on something just because you once thought it was going to be amazing.

If you have a partially implemented project using a technology you no longer work with, you can document what you learned, preserve the useful resources, and upload it for future reference. Even if you never use that technology again, the project can still serve as a record of what you explored.

So, whenever you have some free time, try organizing your older projects before starting another new one. Finish the ones that are close to completion, document the ones you want to preserve, restructure the ones worth revisiting, and delete the ones that no longer serve any purpose.

Remember, the objective isn't to maintain an endless collection of projects. It's to make sure that the time, effort, and ideas you invest in building things don't turn into unnecessary clutter.

You don't have to keep building everything you once imagined. Sometimes, knowing what to finish, what to preserve, and what to let go of is just as important as starting something new.

What do you usually do with your unfinished projects? Do you revisit them, upload them for future reference, or simply delete them? I would love to hear about your approach!

Explore my GitHub   |   Connect on LinkedIn