Thoughts on side projects

    Any coder with a few years of experience will possess a graveyard of side projects. Some of us will have a rare few that saw the light of production and were deployed. A few of us lucky ones will even have users or customers using the end product. But the reality is that most of them will remain incomplete. I'm not convinced that it's a bad thing though. Most of them are there to serve my tinkering needs. Some of them exist because I was trying to learn something. So despite never seeing any production usage, almost all of my side projects have served as didactic vehicles.

    Every time I start a new project, I'm always faced with the responsibility of making some decisions. I relish them. I think they're part of what makes doing side projects exciting. One example is the naming of the project. I know it's a little silly, and I agree that you can always rename something at a later point. But I've spent embarrassing number of hours thinking about names, and searching for neat domains for them. A times, I have the name ready even before the idea has fully formed in my mind. I remember once that I determined to work on something simply because I came up with a name that I thought would be amazing to have as a product. Again, it's a silly to have this as a road block but it's also part of the fun.

    Usually, when after I've decided on the name, I already know what I want to build. But there have been times when I didn't precisely know what I wanted. I may have a vague notion, and maybe even an outline. But not the full picture. These bouts might be rare but not uncommon in my experience. I think that's completely normal. I will spend some time refining the idea(s) before actually starting to code. But sometimes I just start hacking at it.

    Another thing I keep struggling with is the structuring of the project. This is one important decision to make. This is made worse due to the myrid of choices and conventions that have come and gone throughout the years.

    I'm a web developer by trade so my favorite form of these projects is as web apps. Django framework is a natural choice for me since I have years of experience with it. From time and again, I'm also considering other platforms or frameworks, it really depends on the type of the project. Over the years I've used different starter templates and structures. I've even created my own boilerplates. But most of the time, I just default back to the django-admin startproject command and slowly build from there.

    to-write: ...

    • ideal project structure
    • building a cookiecutter template?
    • considering an omnibus like Django project as a ground for side projects. Is that even feasible?