Let's say you are hired to create a web app for a company that describes itself as "Etsy for dogs" (whatever that means).
You'll be the only developer on the project for a while so you get to make all your own choices, but if the project succeeds, it will need to live on indefinitely.
What is your tech stack of choice?
Top comments (131)
Frontend: Svelte + Tailwind
Backend/Auth: NHost (Hasura/Postgres)
TailwindCSS + Next JS (with Typescript) + Prisma (with Postresql) - very simple setup, easy to deploy, nice dev experience. You could go with custom node js server alongside with nextjs if you want to, but for the most small/mid size projects NextJS builtin API routes feature should be good enough.
I have been using the same with Supabase (PostgreSQL). Easiest stack to work with and reason about
Database: DynamoDB
API: AWS Gateway API w/ Lambdas (any language)
Auth: AWS IAM
Frontend: NextJS on Vercel
CSS: Ask my web designer
All of this will scale automatically, requires no dedicated servers and is served from edge locations.
Love the "Ask my web designer" part :')
Can you give a little more detail on the Api? I've wanted to try that combo but I'm not sure about the cold start
Cold starts can be long for interpreted languages like Python, Node.js and Ruby. Here's a comparison of 20 lambda executions from cold start where a user is created:
Create User
Payload:
thanks a lot for that info, are you using Express or Nest for Nodejs?
I'm not using a framework for these functions. API Gateway provides the url REST endpoints and those endpoints are linked to event handler functions. The functions are stand-alone and just import the packages required within the function.
The TALL stack π
I second that! It's essentially the Rails/Hotwire version for PHP, Larave/Livewire. In fact Livewire was created before Hotwire.
The TALL stack makes building reactive apps so simple and fun π
FYI: PETAL Stack in Elixir
2018-09-07
Rails Hotwire was introduced 2020-06-24 as NEW MAGIC.
Meanwhile tallstack.dev was public 4 months before PETAL.
Sometimes chain reactions are just inevitable.
TL;DR?
Tailwind, Alpine.js, Laravel, and Livewire. A full-stack development solution, built by Laravel community members.
Yay finally PHP is becoming a thing
Wow I didn't know this was a thing. Now I'm interested.
I wouldn't dream of doing it any other way than following:
Frontend: Svelte
Css: Tailwind
REST Api: FastEndpoints (.Net 6)
Data Access: MongoDB.Entities
Architecture: Vertical Slices with REPR pattern for endpoints.
Huh, I had never heard of Fast Endpoints until recently (Nick Chapsas did a video about it). Need to write a little toy project to try it out.
Frontend: Vuejs + Tailwind
Backend: Django with Restful Framework, MySQL
Definitely FastAPI (Python) backend and Svelte with TypeScript frontend. Blazingly fast. β‘
Put in PostgreSQL as the DB, which can be SQL, MongoDB and Redis at the same time. It's just so overpowered. πͺ
I'm confused, how is it mongo.
Very good question π
Postgres has native JSON support and allows you to access json fields (even unlimited nested ones) in SQL statements. This gives you the schemaless flexibility of MongoDB if you for example build a simple table with "key varchar" and "data json" fields. But at the same time you can build very complex queries, write DB-procedures, triggers and all the other goodies of powerful RDBMs.
It's not a perfect analogy, but Postgres is object-relational. You can have columns that are typed as objects instead of just regular built-in types, so you can get some of the benefits of object storage without fully committing to the document db model.
My go-to is Vue 3 + Typescript + SCSS on the front end, Node + Express + Postgres on the back end, and Heroku. I can have a webapp up and running in no time at all with this stack. For me it's all about familiarity and speed-to-value. If you're more comfortable with something else, use that.
Tempted to go with Rails/Hotwire. Seems sort of tough to sprinkle in, but if I get to start from scratch I feel like I could be productive committing to that approach.
I feel similarly.
The REGAL stack: ReScript Elm GraphQL Amplify & AppSync, Lambda
UI: Elm + TailwindCSS + Amplify to host + AWS CodeDeploy wired up to repo
API: ReScript + GraphQL + AppSync to host + Lambda to satisfy GraphQL calls