by remoteinterview

remoteinterview / zero

Zero is a web server to simplify web development.

5.6K Stars 202 Forks Last release: Not found Apache License 2.0 642 Commits 156 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Zero Server

Zero configuration web framework.

Features | Installation | Getting Started | Examples | Docs

Join the community on Discord

Zero is a web framework to simplify modern web development. It allows you to build your application without worrying about package management or routing. It's as simple as writing your code in a mix of Node.js, React, HTML, MDX, Vue, Svelte, Python, and static files and putting them all in a folder. Zero will serve them all. Zero abstracts the usual project configuration for routing, bundling, and transpiling to make it easier to get started.

An example project with different types of pages, all in one folder:

A basic mono-repo


Auto Configuration: Your project folder doesn't require config files. You just place your code and it's automatically compiled, bundled and served.

File-system Based Routing: If your code resides in

it's exposed at
. Inspired by good ol' PHP days.

Auto Dependency Resolution: If a file does

, it is automatically installed and resolved. You can always create your own
file to install a specific version of a package.

Multiple Languages: Zero is designed to support code written in many languages all under a single project. Imagine this:

  1. Exposing your Tensorflow model as a python API.
  2. Using React pages to consume it.
  3. Writing the user login code in Node.js.
  4. Your landing pages in a mix of HTML or Markdown/MDX.

All under a single project folder as a single web application.

Play on Glitch

You can play with Zero without installing it locally. Click the button below:

remix this


You can install

globally by:
npm install -g zero

Getting Started

Let's start by making a website that tells us server time.

First we need to create an API endpoint in Node.js to tell us time in JSON.

Create a new folder and add a new file

in that folder. In this file, export a function that accepts
objects (like Express):
// time.js
const moment = require("moment");

module.exports = (req, res) => { var time = moment().format("LT"); // 11:51 AM res.send({ time: time }); };

Once saved, you can

into that folder and start the server like this:

Running this command will automatically install any dependencies (like momentjs here) and start the web server.

Open this URL in the browser:


You just created an API endpoint ๐ŸŽ‰:

Time API

Keep the server running. Now let's consume our API from a React page, create a new file

and add the following code:
// index.jsx
import React from "react";

export default class extends React.Component { static async getInitialProps() { var json = await fetch("/time").then(resp => resp.json()); return { time: json.time }; }

render() { return

Current time is: {this.props.time}

; } }

This is a standard React component. With one additional hook for initial data population:

is an
static method which is called by
when the page loads. This method can return a plain object which populates

Now go to this URL:

and you should see the current server time rendered by React while
-ing an API endpoint you created earlier:

Time In React

automatically bundles your code and supports server-side rendering. You don't need to fiddle with webpack anymore.

That's it! You just created a web application.

Supported Languages

Auto Dependency Resolution

If a file does

, the latest version of that package is automatically installed from NPM and resolved.

But sometimes you want to use a specific version or a dependency from a private repository. You can do that by creating a

in your project folder and adding dependencies to it. Zero will install those versions instead.

Example (package.json):

  "name": "myapp",
  "dependencies": {
    "underscore": "^1.4.0",
    "private_ui_pkg": "git+"


Please see our


Zero is Apache-2.0 licensed.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.