One of the best things about personal projects is that we can choose the technology we want to work with. Corporate projects usually don’t allow such flexibility as quite often there are restrictions about hosting environment, costs, and/or dependencies on various systems that you have to interface.
This being said, when starting new project I always have serious doubts about the right choices. My heart always says to me ‘take it all’ – the most advanced and modern technologies would be chosen by default as challenge is at the core of my personality. Another thing is that I’m doing all this stuff because I want to learn something new.
On the other hand, I’ve already gained enough experience to know that the constraints life puts on us are difficult to overcome. Day is always short: work, kids, shopping, some activity and it appears you already failed with taking some good rest before next day begins. So the more complex your project is at the assumptions level, the higher is the risk that you won’t be able to follow up – which may result not only in failing on the project level, but also on the other tasks you have to accomplish each day.
Generally speaking, there are three main areas I had to make choice about:
- Client side (frontend)
So far I have worked a bit with the first version of Angular, so Aurelia looked more interesting for me. I’ve seen some videos about it but never actually used it on my own. Finally I decided that I will use Angular2 because I think it will be simply easier. It’s still a totally new framework and compared to Angular1 you have to learn a lot to use it.
As my GUI design skills are rather poor, I will also have to rely on Bootstrap, but it’s possible I will try to use SASS or LESS just to learn it as I don’t have experience with these.
- Server side
This is the only one I haven’t made up my mind about yet. My main experience is SQL Server, but I’ve been thinking to run a NoSQL project for a long time. Since this project will be an open one, except MongoDB I am still considering RavenDB from ayende. I’ll let myself think about it for a while 🙂
On the general level, that should do the job. Of course a lot of frameworks is drawing my attention but for now let’s try to keep it simple. We’ll see how things are going to develop in the future.
And what would be your choice for such a project?