DEV Community

Cover image for What's your go-to stack these days?
Ben Halpern
Ben Halpern

Posted on

What's your go-to stack these days?

Maybe certain projects need a specialty tool in your toolbelt— but for your typical work, if you were to start a new project today, what would you reach for in order to deliver on time and on budget?

Top comments (140)

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Rust + Typescript.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

probably also worth mentioning, that Rust bindgen will generate ts typings so its perfect for some blazing wasm code if you so wish.

Collapse
 
mrjjwright profile image
John Wright

I am intrigued what you love about that combo?

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

At first it was because I wanted to try all the new hotness, but this is all quite old now so I guess I liked what both languages did for their respective areas. I like rusts no nonsense approach in that it's pretty hard to write bad code and it's pretty hard to write code from a beginners stand point, you really have to keep trying and failing and being repeatedly beaten over the head from the compiler until you end up with idomatic rust. On the other hand we have typescript, this is as flexible as you want, obviously I aspire to write strongly typed strict JavaScript but I tend to get a little lapse in my discipline over on this side, I get that freedom of prototyping speed that I don't in rust and I guess that's a nice pairing, now if I where a 10x I know this combination would lead to some incredibly resilient software.

Thread Thread
 
mrjjwright profile image
John Wright

That's fascinating. What do you mean by "now if I where a 10x I know this..."?

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted.

Alan Turing

What a quote! Because it's true, I'm a lazy developer, I like my computer to help me to code at every stage. A 10x developer is a joke about the mythical inhuman skills of a developer that is superior to all other developers. I suppose I'm saying, if I weren't the human behind the machine this stack would meet the perfect criteria for excellent software, Microsoft seem to agree with me, for their software is being reengineered in rust, and the invented typescript and this new language which we don't know a lot about yet other than it's likely typescript like but will be used in the same space as rust, zig, d and other c alternatives.

Thread Thread
 
mrjjwright profile image
John Wright

I love that

Collapse
 
kayis profile image
K

Any library recommendations?

I read Actix was good, but now has maintainer problems.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

It did have maintainer issues in the past, but has a new maintainer. You can also try Rocket which is about on par, but I dont know if its as fast.

Collapse
 
madza profile image
Madza • Edited

Results of StackOverFlow's survey on most loved languages in 2020 might agree with you :)

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

9 out of 10 DEV devs might agree with me haha 😂

Collapse
 
ben profile image
Ben Halpern

What's your Rust library/framework set look like?

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

So on the Rust side.

Actix Web although I tried Rocket which was also great, I wanted to use http2 on what is reportedly the fastest web server around. the reason being the stack I am developing is ESModule based so I am trying to move away from a bundler and get as many small requests as I can. the experience feels like 2005 but with Typescript powers, Its liberating!

For the front end, it has to be XState and lit-hml / lit-element. so enjoyable.

The intro to this project can be found here. Rust has been decided after this post was created. I am working hard on a full shop to showdev, its going really well and probably will be done next month.

Thread Thread
 
kayis profile image
K

This sounds really interesting!

Thread Thread
 
gablaroche profile image
Gabriel Laroche

This is really cool, I've been chewing at rust for web development, but I'm wondering how/where you can host a rust web server?

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

I'm likely to spin up a AWS lightsail or something small to install rust. I think that'll do for early days.

Thread Thread
 
kayis profile image
K

Lambda also has a Rust runtime.

Thread Thread
 
terkwood profile image
Felix Terkhorn

🔬 On my list of stuff to tinker with! 🔬

Collapse
 
theycallmemac profile image
James McDermott

I'm a big fan of what folks have dubbed the GoLD stack:

  • Go, the language
  • Lambda, your compute power
  • DynamoDB, a database that scales really well

Who doesn't love a little bit of serverless :D

Collapse
 
madza profile image
Madza

It almost feels like they purposely picked Lambda and DynamoDB for working with Go, just so the stack would sound that well xddd

Collapse
 
theycallmemac profile image
James McDermott

Lol yeah

Step one is always have a kick-ass name! :D

Thread Thread
 
madza profile image
Madza

Hahah, I'm currently working on a MERN stack, I'm thinking to switch out React to Vue just so I could be the mighty VENoM dev xddd

Collapse
 
katafrakt profile image
Paweł Świątkowski

I don't, I guess ;) We used lambda since quite early days but in almost every case we regretted it in the end. It always turned out that Kubernetes with some application processing (eg. Sidekiq) scales better, performs better and we have better insight into what's going on if something goes wrong.

Collapse
 
theycallmemac profile image
James McDermott

Hahah yes, definitely there are draw backs when it comes to serverless, I think it's all about the project at the end of the day.

Your final point is the most important to me, transparency is actually key for when (not if) something goes wrong :)

Collapse
 
daveparr profile image
Dave Parr

What's your experience with Dynamo DB? As far as I've heard it it's great for record based transactions, but tricky for aggregate analytics work. (Disclaimer: I've barely even read the docs :p)

Collapse
 
elasticrash profile image
Stefanos Kouroupis

Dynamo DB is great nowadays....a year ago was the worst thing I could have used ....I've never written so much code for such a small project (extremely high traffic) to handle just throttling strategies. Then one day we turned on "on demand" and never cared for that service ever again

Collapse
 
theycallmemac profile image
James McDermott

I have never used it personally for analytics, but I have heard using it in tandem with Amazon Athena is great for that kind of stuff!

I like DynamoDB a lot, though I have heard it's not great if you have a data set which is growing rapidly.

Thread Thread
 
daveparr profile image
Dave Parr

I have used Athena with an S3 data store. That worked well for that particular job :)

Collapse
 
hexrcs profile image
Xiaoru Li • Edited

This is my current go-to stack:

  • TypeScript
  • React/Next.js
  • Urql/Apollo (GraphQL client)
  • PostgreSQL (Database)
  • Nexus (GraphQL framework)
  • Prisma (Database client)

Full disclosure I'm working on an internal app for Prisma, but it's sooo nice to have VS Code write half of my code for me thanks to type-safety and intellisense. Types defined in the database schema flow all the way to React components on the frontend. 💯💯💯

Wrote an intro to this stack last week :D

Collapse
 
kailyons profile image
Loralighte

It really depends what I am doing, but for quick prototyping (which is a common thing I do):

  • VSCode
  • Python/JavaScript
  • NodeJS (if running JS)
  • Firefox (if needed)
Collapse
 
matthewbdaly profile image
Matthew Daly

Generally Laravel on the back end, with React on the front end.

I'd prefer to use Postgres rather than MySQL or MariaDB, but it tends not to be possible because the PHP community is very MySQL-focused. I also tend to use Redis as my cache and queue backend.

Collapse
 
nickyoung profile image
Nick Young

I have been really interested in getting deeper into Laravel. I heard that it meshes really well with Vue (which I already know) so it intrigued me more. I am also about to learn React. Have you tried using Laravel with both Vue and React and if so, what is your reasoning for your preference being React?

Collapse
 
matthewbdaly profile image
Matthew Daly

The default front-end toolset for Laravel uses Vue, so it's quicker to get working with Vue in Laravel than any other front end framework.

I have tried Vue a couple of times, and the issues I have with it are as follows:

  • Vue has a lot of special syntax for templating, while React is basically just Javascript and HTML with a handful of minor changes to attribute names so they don't conflict with Javascript reserved words, making it easier to remember
  • I've always had a strong affinity for Javascript, and React embraces the functional nature of Javascript to a much greater extent than Vue, particularly since the advent of the hooks API. A component is effectively just a Javascript function that returns HTML.
  • React is conceptually simpler. There's no two-way binding - instead you just pass props down from one component to another (or using context to share data with multiple components within a tree), making it fairly straightforward to understand what's going on
  • It feels more natural to make your components more granular in React than in Vue, and thus they are potentially easier to maintain
  • Vue feels less philosophically consistent than React to me. As noted above, React has an emphasis on functional programming, as opposed to OOP, and sticks pretty rigorously to it (they notably removed mixins because they caused certain problems, and encouraged the use of higher order components in their stead), while Vue is more forgiving.

I will concede that React is harder for front-end developers who don't necessarily know Javascript all that well to pick up, though.

Thread Thread
 
nickyoung profile image
Nick Young

Wow, awesome reply. Thank you for taking the time to respond :)

Collapse
 
ekafyi profile image
Eka • Edited

I just want to add that Laravel comes with its webpack-based build tool: laravel.com/docs/7.x/mix

The default installation is configured for Vue, but you can change it to React easily: laravel.com/docs/7.x/frontend#usin...

As it's really just webpack, you can even use Svelte with relatively simple setup. Basically you can bring any major UI/frontend stack that you are most comfortable with to use with Laravel.

Thread Thread
 
matthewbdaly profile image
Matthew Daly

Mix can also be used outside the context of Laravel. I use it on a legacy Zend 1 project I maintain where I've been using React for new front-end work.

The only thing that required more work is versioning - I had to roll my own solution for that.

Collapse
 
madza profile image
Madza

Laravel and Vue are awesome, plus both come with some of the best docs around.. So it's a win-win if you need to look-up smth ;)

Thread Thread
 
nickyoung profile image
Nick Young

Very true, the Vue documentation is really thorough and I have noticed the same with my experience with Laravel so far :) Always a huge plus when getting into something new!

Collapse
 
kayis profile image
K

Google Docs, Markdown, and VSCode.

(sorry, I'm a blogger by trade 🙃)

Collapse
 
loftwah profile image
Dean W Lofts

Over engineering something isn't something to brag about, your stack is perfect for blogging.

Collapse
 
terkwood profile image
Felix Terkhorn

This is my favorite response

Collapse
 
jonoyeong profile image
Jonathan Yeong

If I were aiming to deliver a project on time, I'd choose what I know: Ruby + Rails + Postgres + Vanilla JS (I don't know much about Front-end development >.<).

If I was wanting to try something new then it would be: Elixir + Phoenix + Go + Postgres/Mongo + VueJS.

Collapse
 
g_abud profile image
Gabriel Abud • Edited

Python, FastAPI, Typescript, React, and PostgreSQL

Something like this: github.com/Buuntu/fastapi-react

Collapse
 
omarkhatib profile image
Omar

thanks , I was looking to use fastapi for my new project . You assemble all what I need in one place.

Collapse
 
cjbrooks12 profile image
Casey Brooks

I'm pretty-well bought into Kotlin at this point across the whole stack. I love using Ktor for server-side apps, I'm primarily an Android dev where Kotlin has its greatest usage right now, and the fact that I can write Kotlin instead of JS just makes me giddy. Especially using this all together with MPP, sharing data models and logic is just wonderful and such a pleasant development experience.

Collapse
 
danieljsummers profile image
Daniel J. Summers

I'm in the midst of learning Kotlin. I introduced it at work, and it's pretty much just a way for me to get some functional programming in our Java 6 EE-targeted application.

Do you have (or know of) any open-source examples with Kotlin across the whole stack? My "learning" part is writing an application which, for now, uses Angular on the front end.

And, for data access, do you use Exposed, Hibernate/JPA, roll your own, or something else?

Collapse
 
damcosset profile image
Damien Cosset

React for the front-end, with Typescript. I can't say I have a go to technology for the back-end. But Java Spring Boot was fun, Loopback 4 was okay. I'll probably choose a Node.js base technology for the back.

VsCode for the editor, Chrome for the browser. And these days it's mostly RATM for the music.

Collapse
 
joaozitopolo profile image
Joao Polo

try Strapi (for nodejs)... I used Spring Boot for a time, but I think java is so bored. Loopback 4 have a good model also, but Strapi has a visual model editor... and, when you change some model, all rest api and graphql api are updated automatically.

Collapse
 
alkafaiz profile image
Faiz Alkautsar

true, strapi is helping a lot with front-end focused developer like me 😊 cut down development time quite significantly

Collapse
 
sergiodxa profile image
Sergio Daniel Xalambrí
Collapse
 
mellen profile image
Matt Ellen

For the work I'm getting paid to do, from bottom to top:

  • Microchip firmware (MPLab X),
  • VxWorks (Wind River)
  • ASP.Net MVC
  • Signal R
  • Vue

Our products are heavily regulated hardware, and supported for the foreseeable. There isn't really a "quickly knock up a prototype in docker" situation.

If I could chose, I would switch out the Microsoft stack for Django on Linux, as I find that easier to work with, but it's not too bad.

Collapse
 
matt profile image
Matt seymour • Edited

Python with django if its a large monolith app.

Go or Node for all other project and apps.

Vue on the frontend in almost all cases (unless its just static html, but even than vue can be embedded easily if something a little more exotic is required).

I make us of the entire jetbrains suite of dev tools (big fan).

Collapse
 
gollyjer profile image
Jeremy Gollehon • Edited

We're a two person shop developing mobile products with the goal of doing big things on a small budget. Ideally we get where we're going without the need to raise capital too early.

With this in mind we choose open source, community driven tools that provide high developer leverage.

  • apps
    • React Native via Expo written in Typescript
  • backend data
    • postgrSQL database + Hasura GraphQL.
  • backend business logic
    • Node + Express
  • hosting
    • Heroku with the move to AWS when a project gains traction.
Collapse
 
val_baca profile image
Valentin Baca • Edited

I've put the following in categories in ranked order for what's most familiar, safe, and known to me down to what I'd like to use and learn and isn't "just hype" to me.

Front-end Web:

  1. JS, jQuery, & Sass
  2. TS, React
  3. Svelte

App:

  1. native
  2. React Native

Backend Service (My current "shop" is very Java-heavy):

  1. Java+Spring
  2. Scala+Play
  3. Go

Event-handling:

  1. Python
  2. Go

DB:

  1. DynamoDB
  2. RDS (only if I have to)

So putting it all together, my most likely, realistic stack I'd build today would be:

  • Front end: React & React Native
  • Service: Java & Scala (for tight deadline) or Go (if I could learn on the job)
  • DB: DynamoDB

As far as other tools, theres are "givens" for me: git, JetBrains IDEs, VS Code, AWS (Fargate, S3, SNS, SQS, Athena, Data Lake, etc.)