Digital Garden Builder Developer Documentation

This is the overview of developer-facing documentation for the Digital Garden Builder. You will not need to be a developer or to read these docs to use the Digital Garden Builder. Please give me a week or two.

The Digital Garden Builder is a Serverless Node.js application, that uses git as a data store. It is free and open-source software.

How It Works

BTW This section is about how this will work in a week or so, not how it currently works. Right now, both the docs site and the server are running on Vercel. There is no static export yet. Installation is not working yet either.

Each digital garden has three parts:

  • Content Repo - A git repository with all of the content for the notes, the configuration data and the Github actions for one digital garden.
  • Digital Garden Site - The website for one digital garden. Hosted using Github pages, by default.
  • These sites are generated using the garden-client, which is a React app built with the NextJS framework.
  • Digital Garden Server - CRUD API that uses Github, specifically the content repo mentioned above, for storage. Also it has the UI for installation and login.
  • The garden-server is also a React/ NextJS app. is deployed using Vercel. You could probably use Netlify or Serverless Framework.

Installing For Development

The simplest way to get started is with gitpod.

Develop Locally

  • Clone and install:
  • git clone
  • cd digitial-garden-builder
  • yarn
  • Read the READMEs for client and server and set the environment variables for both servers.
  • Start servers
  • yarn dev
  • Run tests
  • yarn test
  • See in broweser:
  • Client localhost:3202
  • Server localhost:3000

Develop With Gitpod

Click this link

Deploy With Github Pages

The builder CLI is used to generate a static HTML export of each digital garden and deploy it to Github pages.

No custom domain

If there is no custom domain, the url will probably be <username><repo-name>. In this case the USE_REPO_PREFIX environment variable should be set to true, or CSS and JavaScript will not load correctly.


If you want to host with a subdomain garden.<your-domain>.pizza

  • Set a CNAME record in DNS settings for <username>
  • Set your domain in Github pages settings and/or commit a CNAME file to gh-pages branch, in docs directory with the domain name.
  • Wait about 15 minutes.