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 backenddata/— local database files (created on first run, gitignored)
To help translate Gingko Writer, join the translation project.
For code contributions, see client/CONTRIBUTING.md.
- Node.js
- Bun
- SQLite
- Redis — for server-side sessions
- CouchDB — note your admin username and password for step 3 *
* 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.
git clone git@github.com:gingko/client.git gingko
cd gingko
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
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.
- Client end-to-end (Playwright):
cd client && bun run test - Server unit tests (Jest):
cd server && npm test
