
Ask HN: Best tech stack for solo dev'd app? - throwaway45349
Context:<p>I&#x27;ve been using a lot of GCP services (App Engine, Firebase Auth, Cloud Firestore, etc..) for a website I&#x27;m working on, but lately I&#x27;ve been seriously considering the switch back to bog standard Linux (cron, bash, POSIX, systemd) instead of building upon a proprietary platform.<p>A lot of things are unnecessarily complex with my current setup. e.g., for batch jobs, I have a webserver which is pinged by a managed service, whereas a small binary + cron job could be easier to manage. Using a NoSQL database may be cheap with such tiny usage, but I&#x27;m missing the power of SQL, namely, integration with everything under the sun.
======
leon_sbt
If you already know Ruby on Rails, do that.

If you already know Python well, do Django or Django REST.

If you don't have any prior language affinities, go Javascript/Typescript on
the whole stack. Language switching is a real problem for me.

I'd stick with App Engine/Heroku for prod. I like Postgres alot, especially
with JSONB. Since it functions as a MongoDB-like database if needed.

If App Engine fails you, you should be able to switch to another provider very
easily, or a standard VM without a code rewrite only a CI/CD rewrite

With that being said,I run a monorepo. /api folder has Feathers JS with
Postgres /admin folder has react admin website /website folder has public
facing react website.

Everything can run local during dev. Everything is CI/CD piped 12 factor
styled One git push and merge to master, deploys everything. I love it.

If a single provider fails me, I can switch pretty easily.

------
dmlittle
The best tech stack is highly dependent on who's asking the question. Use the
one that you're most familiar/comfortable with. Don't feel compelled to use
the "latest flashy trend" just because people are talking about it. For
example, using HTML with vanilla JS is still a perfectly valid approach over
React/Vue/Angular/etc..

------
_448
Depends on what language you are comfortable with.

If you want barebones minimalist stack and are comfortable with C++, then you
can try Wt[0]. Wt is not a framework, it is a toolkit and actually works like
Qt but for web development. And the team developing that are super helpful
even though they are a small team.

If you want dynamic programming with virtual machine, then try Elixir or
straight way go to Erlang.

For front-end I will prefer jQuery+Bootstrap, KnockoutJs or Svelte and use
Unpoly[1] if doing server-side rendering. (These I am recommending because I
am not a front-end developer, others may have better suggestion)

For mobile development, I would recommend Flutter for front-end and Dart
and/or Kotlin and/or C++ for mobile middleware.

For DB, it is either PostgeSQL or CouchDB for me.

[0] [https://www.webtoolkit.eu](https://www.webtoolkit.eu)

[1] [https://www.unpoly.com](https://www.unpoly.com)

------
hershvar
If you want speed of development, look into frameworks that provide a high
level of abstraction (RoR, laravel, django, etc). Lots of batteries included
and tons of documentation.

If you want to learn new tech, anything that catches your interest.

------
atomashpolskiy
I vouch for JVM, specifically:

* Bootique (better Spring Boot),

* Vert.x (reactive framework and libraries for unmatched performance),

* Akka (for distributed coordination, if necessary; though depending on the use case, it might be simpler to just use external services, like Zookeeper or Consul -- Bootique has integration with those)

Honorable mention goes to Netty, which is great for high performance
networking, but going so far is rarely needed in most servers.

~~~
k0t0n0
Its crazy how much ram JVM needs. A simple "hello world!" REST API on JVM
takes about 350mb of ram. same version in go takes around 9mb and 2mb using
fastHTTP.

~~~
atomashpolskiy
JVM has default memory usage limits and sophisticated GC algorithms, which may
cause the JVM process to allocate more memory than actually needed for the
application's data. In most traditional Java's use cases (long running, memory
intensive apps and servers) this is beneficial, but if you know the upper
bound on the total size of the data to be smaller than the default limit
(which varies by the environment), it's easy to restrict it further with a
couple of program parameters. For example, after some tuning I commonly run a
full-fledged Java-based BitTorrent client with under 64 MB of RAM in total.
You can definitely run a Jetty web server with Hello world page with 32 MB RAM
or less.

------
minerjoe
Solo? How about streatching your wings and learing something mind/programming
expanding. Choose one ecosystem of Common Lisp, or Smalltalk, or Forth, or
Haskell, or Ocaml. The list goes on. If you haven't deep doven into one of
them, and your faced with an opportunity to learn and fail and get your self
up again and learn and...

------
xupybd
I'm looking into the safe stack for F#. I'm no functional nut but like the
error checking and concise code you get. F# is well integrated with the .net
world.

I've not made the move but it's the most promising stack I've looked into.

