Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What stack you use to build websites?
34 points by bryk on March 15, 2018 | hide | past | favorite | 47 comments



Almost always Django. Customers love Django Admin, and when they don't, it's really easy to tweak.

For dynamic apps that don't fit the Django model, I'll bust out Node.js, and for static sites, just a plain Python script to generate HTML files.

Boring choices, but the older I get, the more I'm OK with that :)


For someone looking to learn to code web-app's from scratch, would you advise Django over Vanilla JS, Node, or Vue?


If I were you I'd want to really good with plain Python (or Node) before learning a framework, but that's because I'm the kind of person who wants to know how everything works. Once you've written a few CRUD apps you'll wish there was a tool to do some of the common stuff for you, and Django will be waiting for you.

But, if you're not that kind of person it's perfectly OK to jump straight into Django. You'll certainly get further more quickly, even if you won't be able to explain exactly what your code is doing.


I don't think it's that important what technology you decide to learn first, largely because learning new languages / tech stacks gets easier as your frame of reference grows.

What I think is important is sticking to one thing until you have a good grasp of it.


Go & Postgresql on the server.

Angular 2+ on the frontend.

Why?

Go is fast and bare bones, and works nicely as a backbone to an API (especially with a GraphQL intermediary). Postgresql plays very nicely with Go, especially if writing queries by hand.

Angular 2+ is great. Vue is also really nice, but I love what Typescript brings to the table and find that Angular being built around TS makes me enjoy it more than retrofitting Vue + TS definitions. I decided on Angular 2+ with great trepidation, but the bad rap carry-over from AngularJS turned out to be entirely undesreved. It's a wonderful framework, and I'm enjoying it greatly.

Also, a shout-out for AWS Lambda. I use it here and there for heavy workloads (personally I wouldn't replace my webserver with it entirely yet), and it made my server infrastructure MUCH more pleasant.


ASP.NET Core. VueJS on the frontend if it's a webapp.

Jekyll if it doesn't need to by dynamic.


Backend language: Scala. Long live FP and type safety.

Backend framework: Play. Inspired by RoR, works with Java/Scala. Light, fast, scalable out of the box.

Database: PostgreSQL. Introduction is not needed.

Database library: Slick. Nothing beats compile time type safety.

Frontend language: Typescript. Better than pure JS hands down.

Frontend framework: Angular (5). Because Typescript is a first class citizen.


I have a question. How do you speed up the database CRUD operations when the number of records fitting a certain criteria may range to 10000 or more. It takes a lot of time to get this over the network and the user is not going to use/see all of it at once. Given such constraints, how do you speed up the query so that there's little to no lag time for the user(at least for say first 100 records).


It depends on what you mean by a website. If it's one level above a static page, a static site with frequent changes, I'll make my own build chain in Node.js with Gulp and host the pages in S3 and Cloudfront.

Or I will use Rails behind Nginx if the site is more dynamic. Each release would get built into a Docker image and be deployed that way. HAProxy would be there mostly to forward requests to multiple apps if there are any.

For a site that needs a lot of client side scripting, I use Ember. I'm so happy with it that I will probably use it with Fastboot for those times I would have used Rails. In terms of databases, I've been using CouchDB unless I had an overwhelming need for relational records. It saves time because CRUD and websocket/eventsource/longpolling come with it out of the box.


For anything dynamic, I usually start with Django but I'm not opposed to building with Node and React

For my personal site, I rebuild it in whatever language I'm trying to learn. In this case, I'm rewriting part of it in golang which I use at work.


For work, VueJs and ASP.NET MVC (on .NET 4.6.2, not core).

For fun, a mixture of VueJs and Elixir/Phoenix and ASP.NET Core


Language: Go,

Framework: https://github.com/apex/up

Hosting: AWS lambda

I can't speak highly enough of up, it's amazing for creating serverless(sic) apps without changing the way you structure your app. I also use up for some python apps


How much slower are web requests vs a live server?

I see that Up has a warming feature - is that sufficient enough to avoid slow requests for you?

Does the reliance on Up as a service make you nervous for using them for production? How much hot water would you be in if they close their doors?

Are you using Up Pro?

I know - lots of questions, but it seems like a neat offering I hadn't seen before, and I can't find any testimonials elsewhere online.


Hi,

1. Apart from the startup latency i haven't noticed much of a big difference between up/lambda and a live server. And lambda will keep your function warm for AFAIK, 1hr, so if your app has lots of traffic you never experience startup latency.

2. Up is open source, if they close their biz, I'd just continue using their code. I haven't used up pro yet.

3. Up has been around for probably under 1yr so you may not see a lot of testimonials yet. It is made by tj(the same guy who made expressJS, the nodejs web framework among other softwares)

You can direct more questions ; https://up.docs.apex.sh/#links


Vapor - Swift on the server!

If you haven't heard of it, check out https://vapor.codes. It's an absolutely amazing framework that is non-blocking in version 3. The performance you can squeeze out of it is unbelievable.


That site has some serious problems on my OS X Sierra/Chrome. Every time I load the tab it just freezes the whole browser. Great advert for all the claims they're making.


Have you built any web apps using the framework?


We mostly do rails apps but one of our 4 projects use elixir/phoenix on the backend and react on the frontend.

We are really pleased with the performance of BEAM and the functional flavor of elixir clearly leads to code that is easier do read and to test.

We have been toying with Elm lately.



Static sites: GatsbyJS on S3 or Firebase hosting.

Web apps: ReactJS on s3 hitting NodeJS API on AWS EB.


I'm getting very comfortable with plain Go without any frameworks for the backend. Postgres for databases.

For a quick prototype, I'd use Vue.js and Spectre for CSS. I suck at frontend anyway.

Deployed behind nginx.


Flask or Django for dynamic sites.

Jekyll hosted with Netlify for static sites.


Linux, PostgreSQL, Rails, Webpack, React and Sass. For the most part.

This is a great solution for general-purpose use, dropping React of course if there’s no need for interactivity.


I'm writing the HTML and CSS in Emacs, applying common elements with Make, and feeding it to an Apache server over on NearlyFreeSpeech.


I'm doing basically the same thing but with markdown thru pandoc as well. It's very basic but it works for my personal use.


I got downvoted. Emacs sure isn't popular.

Ha. Of course it is!


HTML/CSS/JS & LAMP with Craft CMS for dynamic sites, just HTML/CSS/JS on S3 for static sites.


Basic websites? Probably Jekyll with some build tools like gulp. Never needed anything more for that.

Otherwise Rails with PostgreSQL.


right now I am using a Go framework called Gin for my food site.

I use libsass with bourbon.io and I have a Makefile to compile the binary, generate the css, minify things.

For blogging, I have used Wordpress

But I have recently started looking on moving over to Hugo to generate html using a bootstrap 4 template.


I'm thinking about going with Clojure for a POC. Anyone using Clojure?


Excellent choice. Two of the best reasons to recommend:

1. Hiccup syntax is a great way to “template” HTML, being clojure-native data structures with the full power of the language available to you.

2. REPL-driven workflow makes it a dream to debug things like request handlers.

You will miss out on some perks from bigger/more popular frameworks—there’s no built-in admin panel waiting for you—but you can take advantage of the Lisp Curse here and quickly build out what’s missing. I find it’s a worthwhile trade-off.


for work: nodejs + react (usually serverless, but if not, then with k8s/ecs)

for experimenting: golang + react (want to see what the fuss is all about)

for fun: elixir + pheonix (since I never got on the rails bandwagon)


For work, server-side Javascript (not Node.js)

For fun, Java servlets/JSPs


Are you able to talk a bit about your server-side Javascript setup? What was your decision making process for using something other than Node? How does the ecosystem of libraries and supporting infrastructure look like?


It's not something that I chose in particular. I work at a Salesforce Commerce Cloud[0] partner, with half a dozen clients. The language syntax is Javascript (in fact, I'm sure that it's built on the JVM's JS engine), but uses a proprietary API. The platform is laser focused on doing scaleable e-commerce, although it has somewhat competent CMS and CDN functionality, at least enough as necessary to load pages fast and sell things. Once you start doing things like newsletter list management, file uploads, and even product reviews, its less than optimal.

[0] https://www.demandware.com/


ASP.NET Core + Vue/Ang/React + SQL Server on Azure


Just websites? Static HTML and assets, served from Caddy.


Laravel, Vue, Postgres.

Experimenting with Laravel/Lumen API only for backend, and NuxtJS with SSR.

Also AdonisJS is looking promising to go into that JS world with both front and back ends.


Lamp with CakePhp


LAMP with Symfony. Ionic for mobile dev.


Lua/Torch backend + Redis + React


OctoberCMS running on a LNAMP stack


For sadomasochism: assembly


Same but DotNetNuke


Mainly Ruby on Rails


PostGres, Redis, Go, Vue. Why? because I am able, not able to understand anything else.


Static website built and managed by Publii CMS.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: