gingko/client

Gingko Writer. Tree-based writing software, written in Elm.

Elm

416

3,682 commits

updated Sep 11, 2026

See the code

README

Gingko Writer Web Deploy

Writing software to help organize and draft complex documents. Anything from novels and screenplays to legal briefs and graduate theses.

This is a ground-up rewrite of GingkoApp.com. The latest version is available online at gingkowriter.com.

This repo contains both halves of the web app:

  • client/ — Elm + JS frontend (bundled with webpack, watched with elm-watch)
  • server/ — TypeScript/Express backend
  • data/ — local database files (created on first run, gitignored)

Contributions Welcome!

To help translate Gingko Writer, join the translation project.

For code contributions, see client/CONTRIBUTING.md.


Installation & Dev Environment

1. Prerequisites

* This dependency will be removed once all user documents are migrated to SQLite.

Installation of these varies by system, so it's not covered here.

2. Clone

git clone git@github.com:gingko/client.git gingko
cd gingko

3. Server

cd server
npm i
cp config-example.js config.js
sed -i 's/couchusername/your_couchdb_admin_username/' config.js
sed -i 's/couchpassword/your_couchdb_admin_password/' config.js
npm run build
npm start

4. Client

In a new terminal:

cd client
bun i
cp config-example.js config.js
bun run newwatch

Now visit http://localhost:3000 to use your local Gingko Writer install.

Tests

  • Client end-to-end (Playwright): cd client && bun run test
  • Server unit tests (Jest): cd server && npm test

Contributors

AdrianoFerrari

3,671 commits

wmnnd

6 commits

tobloef

2 commits

ipalindromi

1 commits

gingko/client

Gingko Writer. Tree-based writing software, written in Elm.

Elm

416

3,682 commits

updated Sep 11, 2026

See the code

README

Gingko Writer Web Deploy

Writing software to help organize and draft complex documents. Anything from novels and screenplays to legal briefs and graduate theses.

This is a ground-up rewrite of GingkoApp.com. The latest version is available online at gingkowriter.com.

This repo contains both halves of the web app:

  • client/ — Elm + JS frontend (bundled with webpack, watched with elm-watch)
  • server/ — TypeScript/Express backend
  • data/ — local database files (created on first run, gitignored)

Contributions Welcome!

To help translate Gingko Writer, join the translation project.

For code contributions, see client/CONTRIBUTING.md.


Installation & Dev Environment

1. Prerequisites

* This dependency will be removed once all user documents are migrated to SQLite.

Installation of these varies by system, so it's not covered here.

2. Clone

git clone git@github.com:gingko/client.git gingko
cd gingko

3. Server

cd server
npm i
cp config-example.js config.js
sed -i 's/couchusername/your_couchdb_admin_username/' config.js
sed -i 's/couchpassword/your_couchdb_admin_password/' config.js
npm run build
npm start

4. Client

In a new terminal:

cd client
bun i
cp config-example.js config.js
bun run newwatch

Now visit http://localhost:3000 to use your local Gingko Writer install.

Tests

  • Client end-to-end (Playwright): cd client && bun run test
  • Server unit tests (Jest): cd server && npm test

Contributors

AdrianoFerrari

3,671 commits

wmnnd

6 commits

tobloef

2 commits

ipalindromi

1 commits

Languages

Elm

64.6%

JavaScript

18.3%

TypeScript

10.8%

CSS

5.2%