3 ms·
well, you answered your own question - bootstrap it yourself. i know exactly where you're at, unfortunately. my advice is - go with backend as api and separate
by 1337n008 7y ago
well, you answered your own question - bootstrap it yourself. i know exactly where you're at, unfortunately.
my advice is - go with backend as api and separate frontend. define the api(protobuf+swagger plugin, not raw anonymous json because you will get lost in fluid schema later on and with 10+ routes you will go crazy without schema) and strict interfaces. so you know how data will flow. just pure basics, not all the functionality you have in your mind/vision. avoid DRY, copy code all over the place, go with kiss and most importantly YAGNI. use tech you know, not what is fancy right now.
then proceed to implement it in the fastest way possible. the end result should be a MVP with the worst code you can imagine. I myself have never been able to execute it, unfortunately. Each programmer strives for perfection which in this stage means time wasted not delivering the end product. I am certain that this way, no matter the size of the project, you should be able to produce something usable within 3 months.
You WILL be struggling with authN but mostly authZ(unsolved problem) so go for the simplest solution you can think of.
Next important thing is to do a monolith first. NO EXCEPTION. Forget microservices or SOA at this stage. I too fell into this trap and kinda keep repeating this mistake over and over. People like to use too much abstraction. Just brute-force it.
Then make sure you run one single VPS. No cloud, not kubernetes, no docker, nothing. Run it as close to metal as possible without any infra mumbojumbo fancy scheduler...tech..whatnot. And avoid cloud VPS. Look at OVH, Hetzner, DO or whatever. Just not cloud VPS because they are crazy expensive. Don't go for bare metal just yet(and avoid cloud altogether, it will bankrupt you in the long run, bare metal is where it's at).
Once you get the MVP up and running, look for first paid customer(s) and listen to their feedback. That feedback is free and no one else can give you better information than actual users. Also don't bother promoting the project on forums looking for people to test it for free. That is a dead end, trust me. Spend few bucks on some basic presentation page and some ads. Most notably it should be immediately clear on the website what your product does. I'd say 80% of companies these days fail at this horribly.
When you take payments, always upfront and annually will be better than monthly.
Once you get there, let us now :)
Good luck soldier.
- evo_9 7y agoThanks man super solid across the board and mirroring what I've already kinda decided on almost all this. Good reminders too (aka use what you know, kiss, etc). Good stuff!