I’m a solo freelance programmer and want to write an app for internal project management, somewhere I can add projects, milestones, tasks, etc. and track them as I work on them, occasionally remind me of things like take a break, lunch time, etc. and over time I can track on which category I worked how many hours, etc.<p>I’m actually confused between whether to build this as a Web or Windows Desktop app. I’m considering latter because it can run efficiently on my laptop in the system tray using least memory and resources, web-based on the other hand will force me keep running an apache server too which will be an overhead (unless I host it on Google Cloud or someplace which might be an option?)<p>The only reason for considering web-based is that eventually I’m planning to make this tool open source and with web-based, many others can find this useful too (including OSX/Linux users). At that point, I may consider expanding its schema to include multi-user connectivity, client login, etc. but that’s going too far at this point!<p>The idea is that this tool should be useful not just for me but other freelancers, students, etc. who might be in my shoes. From that perspective, what do you think is the right technology to use? Web based or Windows based?<p>(I’ve extensively worked on C#/WinForms projects before and I’m thinking Visual Studio Express for desktop development. If web-based, it’ll be php/mysql based)
><i>The idea is that this tool should be useful not just for me but other freelancers, students, etc. who might be in my shoes.</i><p>In my opinion, you should start with this. <i>Should</i>, <i>might</i>, <i>freelancers, students, etc</i>...<p>Hypotheticals that are allowed to survive and vagueness of the target audience do a better job at filling up code cemeteries than does the stack choice.<p>Now... if you don't care about the outcome or building something useful and don't mind spending a lot of time on the thing for the sake of it and only want to do this project as an excuse to learn a technology, then by all means have at it. Then again, you'd have made up your mind about the technology you want to learn.<p>If you want to build something useful, starting with the technology is not the way to go.<p>All the best,
Personally I would suggest build it as quickly as possible in whatever tech you feel more comfortable and giving you something that will be immediately useful. This will also help you fine tune the user flow and data model. Thinking of others, opensource etc is version 2 IMHO.<p>If you go down the Desktop app, maybe consider using sqlite and spending some time thinking about a MVC model (or fancier if you want). This will help somewhat if you need to split it into a web app.<p>Resource wise (for a web app), a lot of people have raspberry-pi's lying around. It could be hosted on that and shouldn't be too resource heavy. Also nginx is the web server du jour nowadays rather than apache. I believe it's leaner.