Zero

Infrastructure

web server framework

SHOW HN2019

513points
245comments
#27of 2,195 in 2019
Top 2%of 2019 by points

How HN took it

MixedNo clear lean

31 positive, 52 neutral or asking, 8 mixed, 41 critical, out of 132 comments about the project. Thread score -0.12.

Idea: 19 for, 10 againstPrivacy: 0 for, 15 againstDesign: 2 for, 7 againstExecution: 1 for, 7 againstDocs: 0 for, 2 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Quick setup for prototypes and small apps

    From 3 comments
    • My first thought is it doesn't have enough features or too much magic BUT that is EXACTLY why it shines. I'm not going to build the next FAANG company on this but it will let me…
      joshstrange on HN
    • I think this is really nice for when I want to hack together a quick front-end for something. Once I have a working React/Node.js set up I can really quickly build something, but…
      photonios on HN
    • Great job! Took 2 minutes to install and run.
      html5web on HN
  • Markdown and MDX support is useful

    From 2 comments
    • Supports the new hotness MDX. JSX/React components inside markdown. This is awesome for standing something up quickly. Thanks for creating this!
      dstroot on HN
    • Having Markdown rendered as HTML is basically all I want when I'm standing up a single web page or a small website. This is definitely something I'll bookmark for later.
      PerryCox on HN

Objections

  • Security concerns with file-system routing and exposed files

    From 4 comments
    • > File-system Based Routing: If your code resides in ./api/login.js it's exposed at http://<SERVER>/api/login. Inspired by good ol' PHP days. > Auto Dependency Resolution: If a…
      q3k on HN
    • Because if you ever have a broken upload system that allows you to drop a JS file somewhere accessible by the file system routing, you have remote code execution. Additionally,…
      q3k on HN
    • Probably having .htaccess / .env / database configuration / files that are not supposed to be public be exposed. For instance, Rails has a public/ folder for files that are going…
      aboutruby on HN
    • > Zero reads credentials from environment variables. Zero also loads variables from .env file in your project root, if it's present. Security nightmare? Can I do myapp.com/.env…
      miki123211 on HN
  • Automatic dependency resolution is hidden magic

    From 2 comments
    • Because if you ever have a broken upload system that allows you to drop a JS file somewhere accessible by the file system routing, you have remote code execution. Additionally,…
      q3k on HN
    • Make your application directory read-only to the user running the application, as it ought to be anyway. Automatic dependency resolution however... Fantastic for experimentation,…
      adrusi on HN
  • Too much abstraction over plain Express

    From 2 comments
    • "Zero configuration" But, you can install express, copy paste the getting started code and be up and running at a similar level in 5 minutes. I...guess I don't understand why I…
      BinaryIdiot on HN
    • Wow, I love that people can wrap express and many of its components and end with something so different from its foundation. That being said, this level of "batteries included"…
      wesleytodd on HN

Requests

  • Ignore specific files or directories

    From 2 comments
    • Is there any way to "ignore" specific files or directories? For example, I want to reuse React components across different routes (exposed as jsx files). However, I don't want…
      sjroot on HN
    • Currently, files starting with _ (underscore) are hidden in zero. This is still a feature spec we need to finalize as this can create confusion. Maybe a .zeroignore file (as…
      asadlionpk on HN
  • TypeScript support

    From 1 comment
    • Are there any plans to make this support Typescript in the future? :)
      desmondl on HN
  • Python handler support

    From 1 comment
    • Looking through the code on github found a .py file handler in the works: https://github.com/remoteinterview/zero/blob/master/packages/handler-python/handler.js Any idea of a…
      davish on HN

Questions

  • How to split components that are not pages

    From 1 comment
    • This is very cool framework and I will certainly use it for small to medium sized apps or website. However, just going through the doc there doesn’t seems to be a way to split…
      gumbo on HN
  • How TLS certificates are handled

    From 2 comments
    • Weird how does it knows what certificate to get for https
      LoSboccacc on HN
    • While I embrace less configuration, you can't really avoid TLS these days. There is always configuration, many of configurations. Some implicit, some explicit.
      metalrain on HN

Alternatives named

  • Express

    From 2 comments
    • "Zero configuration" But, you can install express, copy paste the getting started code and be up and running at a similar level in 5 minutes. I...guess I don't understand why I…
      BinaryIdiot on HN
    • Wow, I love that people can wrap express and many of its components and end with something so different from its foundation. That being said, this level of "batteries included"…
      wesleytodd on HN
  • Next.js

    From 2 comments
    • Why is this any different than say, next.js?
      gjmacd on HN
    • Nextjs uses a pages/ subdirectory which gives you implicit routing, without having to compromise on the whitelist aspect. I think it's a better compromise.
      scrollaway on HN
  • Koa

    From 1 comment
  • serverjs

    From 1 comment
    • I did something very similar but arguably with even less configuration, https://serverjs.io/ ``` const server = require('server'); server(() => "Place your Node.js API here.");…
      franciscop on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/19254828)