Fellow hackers,
I have been following indie for a while and recently I have decided to pursue/develop something of my own as well. I have around 10 years of software development experience and worked with almost all the different technologies.
I am planning to build a simple portal which will display data from database and going to have a dashboard and user search. I am confused that I should develop SPA or normal website and which tech stack I should use (.net/python and react/durandal/custom javascript). Thanks
Hi Hase! Welcome. In short, use what your are familiar with, or lacking UI development familiarity, do the simplest thing. Hand-roll your JS for the first iteration. Once you have a product to show and a few customers, you can revisit the technology if it bothers you.
Edit: as for backend, same applies, whatever you know better. If it's the same, then .net will give you better productivity with a bit more initial setup, while python will make you productive early but haunt you later when your codebase grows (same for js).
Good luck, stay focused.
But yet you still cannot choose the right tech for the job? Something is wrong here. Anyway approach it the same way as if you had a client asking for it (how complicated is the front-end? what's the budget? when it's deadline?).
If you know a large number of technologies and are roughly as comfortable in any of them, I would look at the community around the language and the domains those languages are used in, then compare them to yourself and what you are building. I'm also a polyglot (everything from C/C++ to Perl, JS, and Elixir). I find that the joy I get from a language contributes to how many hours I'm willing to put into a project (it's not the only contributor, but it is one). In addition, if you are working in a domain that your language is strong in, you're going to move a lot faster than one that is not. e.g. doing machine learning in .NET will be a lot harder than in Python. It's not that .NET is bad for machine learning, it's just that Python is great for it. Domain specialties tend to be feedback loops. Python to a certain extent gets the best tools because the best people are using it, and the best people are using it because it has the best tools, and so on.
At the end of the day, you're trying to build something of value with the least effort possible, and have fun doing it. Base your decision around that :)
Agree with @IAmAFunction below :) Sticking with what you know is great! It's a solid way to make sure you don't overengineer (unless you want to learn some new technology, of course).
If it were me (and this is what I just did a bit ago with my product), I'd set up a back-end that is accessible via an API (I use Rails API for this, but if you know python, node.js, etc. there are some great ways to make an API using those). Then use something like React since you know that (I personally use Vue but both are amazing) and build a front-end that uses that API for the interface.
The benefit of splitting it up like that as you grow if you realize you want to change the back-end to use something else, as long as you keep the external API the same the front-end will still work great! Same with the front-end, you can always swap it out down the road and still have the same API to interact with.
Let me know if you have any questions about where to start! Happy to point you in the right direction once you figure out which technologies you're looking to build with.
Also, if you aren't too familiar with design https://refactoringui.com/book/ is an amazing resource. Expensive, but very good for developers looking to design.
Good luck!