Ask HN: What stack you use to build websites? - bryk
======
rogual
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 :)

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

~~~
rogual
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.

------
kromem
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.

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

Jekyll if it doesn't need to by dynamic.

------
neverminder
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.

~~~
abhishekjha
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).

------
ravenstine
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.

------
spondyl
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.

------
jetti
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

------
komuW
Language: Go,

Framework: [https://github.com/apex/up](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

~~~
kromem
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.

~~~
komuW
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](https://up.docs.apex.sh/#links)

------
jimmy162
Vapor - Swift on the server!

If you haven't heard of it, check out
[https://vapor.codes](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.

~~~
cutler
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.

------
rs86
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.

------
niftylettuce
[https://lad.js.org](https://lad.js.org)

------
nkristoffersen
Static sites: GatsbyJS on S3 or Firebase hosting.

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

------
adtac
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.

------
kaniskode
Flask or Django for dynamic sites.

Jekyll hosted with Netlify for static sites.

------
matthewmacleod
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.

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

~~~
acdw
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.

~~~
EliRivers
I got downvoted. Emacs sure isn't popular.

Ha. Of course it is!

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

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

Otherwise Rails with PostgreSQL.

------
tmaly
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.

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

~~~
manitoo
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.

------
sonaltr
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)

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

For fun, Java servlets/JSPs

~~~
RandomBK
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?

~~~
theandrewbailey
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/](https://www.demandware.com/)

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

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

~~~
bgdkbtv
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.

------
franzcusmai
Lamp with CakePhp

------
jwho82
LAMP with Symfony. Ionic for mobile dev.

------
kusmi
Lua/Torch backend + Redis + React

------
LukeTowers
OctoberCMS running on a LNAMP stack

------
mbn12
For sadomasochism: assembly

~~~
pdeuchler
Same but DotNetNuke

------
tmastro
Mainly Ruby on Rails

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

------
RobGav
Static website built and managed by Publii CMS.

