
Ask HN: What tech stack would you choose for building your next app? - roadbeats
Hi all,<p>I feel like I&#x27;m behind the trends in building apps. I see lots of new stuff-as-a-service, and need to refresh my knowledge.<p>Could you tell what would you choose for your next app ?<p>Backend &#x2F; frontend does not matter.<p>Thanks in advance.
======
mschaef
It really depends on the target platform, who will wind up maintaining the
code (and for how long!), and how the build will be done.

But the short version is that I would (and do) favor Clojure for personal
projects. These are cases where I have limited time to invest, a high desire
for tangible results, and no other developers to worry about. For that set of
tradeoffs (and my skillset), this has generally been the best way for me to
achieve my goals. (I also have some code that abstract out some patterns I
find useful or importatn.)

In these sorts of projects, if I need client side code, I'll tend to favor
straight JavaScript (with markup rendered by Hiccup) if I can get away with
it, and ClojureScript/Reagent if I have a requirement that implies a need for
client side logic. (Tolerance of lost network connections, incremental page
update, and the like.)

For more commercial projects, I'd be thinking TypeScript/React with a Java
(JVM?) backend for starters. I'd also be open to Node or Python for the back
end, but it really depends on the skillset of the team and where the best
libraries are.

And all of this would be done with an eye towards the exit. Any codebase that
has a reasonable life expectancy will likely have to at least interoperate
with other language ecosystems, if not incorporate them bodily. Being mindful
of how that might happen is important. (Which practically speaking, means
decent interface definitions, testing, and the like.)

------
7373737373
Pythons' Flask + Vue

[https://testdriven.io/blog/developing-a-single-page-app-
with...](https://testdriven.io/blog/developing-a-single-page-app-with-flask-
and-vuejs/)

------
fortytw2
Go, Postgres and a dirt simple React/Typescript/Parcel app as the frontend.
99% of the time you won’t need anything else.

~~~
arkanciscan
+1 Parcel. It really is a breath of fresh air after dealing with Webpack.

~~~
ng12
That's good to hear. I've been on the hunt for a replacement for create-react-
app -- in my experience it's problematic in an enterprise environment. I love
Webpack but I don't want to recommend it to junior developers. I'm hoping
Parcel is a better candidate.

~~~
arkanciscan
I wouldn't go _that_ far. Parcel is fine for small stuff, but it doesn't allow
nearly as much control as Webpack. In enterprise you're likely to run into
limitations. Parcel 2 is supposed to get plugin support, but who knows if
that'll be any better than Webpack.

------
tboyd47
Web:

If I'm paying: Wordpress, LAMP, vanilla JS, MySQL, and PHP

If I'm maintaining: Ruby on Rails, PostgreSQL, JQuery, ReactJS

If I'm building a resume: Either C# or Python, SQL, and Javascript, hosted on
either AWS or Azure.

Mobile: Swift/iOS and Java/Android both.

~~~
cmehdy
You're more likely to get somewhere with Kotlin on Android now, although
knowing your way around Java constructs will definitely remain useful for a
long time.

~~~
brailsafe
As a web guy and spmetimes hobbyist Android person, has Kotlin surpassed Java
in terms of support or some other quality on Android?

~~~
suyash
That won’t happen anytime soon, 90% of libraries and majority of Google’s own
sample projects are in Java.

------
wishinghand
For the frontend I always use Nuxt, which is a server side rendered flavor of
Vue. Vue just makes sense to me with how it handles markup, styling, and code
in a single component’s scope. The only time I really make use of Vuex, the
Vue solution for Redux, is if there’s user data that I need to share into
other views.

For backend I’d want something either rock solid and fault tolerant like
Elixir, or very speedy like Rust or even Go. Kind of depends if I’m doing this
in my own or with others.

------
riter
For quick proof of concepts

 _Backend:_ Flask -> MySQL -> Docker -> Digital Ocean

 _Frontend:_ Vanilla JS + Bootstrap or VueJS + Template

Have yet to fail me. It makes for easy transition once things get serious and
I want to migrate over to GCP/AWS

------
codegeek
frontend: Vue Backend: Golang/Laravel PostgresQL database

No SPA. I use server side templates and just call the vue components in them
as needed.

~~~
brailsafe
Mind expanding on that last bit? I'm working with a fairly convoluted
Flask/Pylons based framework which I'd love to use Vue in but don't want to
lose server rendering. Are you just piecing small components together that
individually call apis or what's your setup?

~~~
codegeek
Basically, on server side, I have templates like this:

users.page.tmpl (in Golang):

    
    
        {{template "admin" .}}
    
        {{define "title"}}Users{{end}}
    
        {{define "main"}}
        <users></users>
        {{end}}
    

Then I have a Users.vue that does the heavy lifting with API calls on loading
existing data when component mounts etc.

Using this, I can use server side routing as needed and no need for client
side routers or SPA etc.

------
semireg
After 5 years on iOS/Android I wanted to build a cross platform desktop app. I
came up with an idea (make thermal label printers a joy to use) and started
hacking a proof of concept using [https://github.com/electron-react-
boilerplate/electron-react...](https://github.com/electron-react-
boilerplate/electron-react-boilerplate).

It’s been an incredible learning process, super laborious and an absolute joy
to see people buying my app and emailing with questions and ideas.

I’ve had to learn React, modern JS development, semantic UI, redux, native
node modules, maintaining a cross platform build system, publishing on app
stores, selling direct and building my own license system using
react/express/graphql/jwt not to mention auth, and other APIs, deployment to
Heroku... the list goes on and on.

Check out my app at [https://label.live](https://label.live)

------
Porthos9K
I'd like to use BCHS[1] next time around.

[https://learnbchs.org/](https://learnbchs.org/)

I want something that's simple, and reasonably secure by default so that if
the crap I build turns out to be insecure, it's my own damn fault.

~~~
non-entity
So I'm assuming you'd write the application as a a collection of CGI programs?
Either that or does OpenBSD's websercer support developing handlers as sort-of
extensions like ISAPI with IIS?

~~~
Porthos9K
Yep. I'd use CGI.

~~~
non-entity
I'm actually intrigued, I might try this stack out.

------
maxharris
I'm working on a new frontend framework, as well as a couple of applications
that make use of it:
[https://github.com/maxharris9/layout](https://github.com/maxharris9/layout)

One of my goals is for my framework to compete with Flutter. So why not just
use Flutter? Two reasons: Flutter's API is object-oriented, and Layout's is
functional. I also prefer a declarative style for specifying views, but can't
stand Babel's bigness/slowness, so I built a JSX transformer
([https://github.com/maxharris9/jsx-layout](https://github.com/maxharris9/jsx-
layout)).

------
noodle
My current swiss army knife is Rails+Vue for web/api, plus React Native for
mobile if necessary.

Of course, I'd use something different if the project necessitated anything in
particular.

------
mc3
Getting it done:

Frontend - Typescript/React + miscellaneous libraries. Maybe CSS compiler,
maybe raw CSS.

Backend - I'd use C# and .NET but that is for reasons of familiarity. I would
also be comfy using NodeJS but I prefer the comparative sanity of C#.NET.

For Fun:

[https://safe-stack.github.io/docs/overview/](https://safe-
stack.github.io/docs/overview/)

------
nyxtom
Web/services and keeping it boring and basic:

Aurelia, Mongo, HAProxy, Nginx, Express, Redis, ELK, Ansible

Depends on the dependencies, some things I need have very great
implementations and support in golang (network traffic, routing).

------
rsinger87
Postgres, Django (with Rest Framework) and TypeScript/Angular.

------
gitgud
Front-end = Nuxt (vue) + Vuetify.

\- Simple, great abstractions, many enterprise grade components

Back-end = Firebase (Firestore db and Cloud Functions)

\- Simple, cheap/free, scalable

------
hpliferaft
React/AWS lambda/AWS DynamoDb+S3 for prototyping CRUD variations.

Anything else would depend on the app's features.

------
hiccuphippo
There's a bunch of new python web frameworks built for asyncio that I'd like
to try.

------
mijkal
My side project is React + Firebase (Node functions + NoSQL database +
websockets) — love it!

------
toufique
Elixir + Vue

------
patrickgordon
React w/ Typescript

Firebase coz cbf backends

------
suyash
Java, Node.JS and JavaScript.

For Mobile - Android ; Java, iOS - Swift

------
rocketpastsix
Laravel, Vue, Tailwind, MySQL, OpenAPI, JSON:API.

------
bradstewart
Rails

Vue (if necessary)

------
PaulHoule
Websockets.

