The source code that runs www.OnlineWardleyMaps.com.
Also available as a standalone Visual Studio Extension - vscode-wardley-maps.
Developed by Damon Skelhorn.
Wardley Mapping courtesy of Simon Wardley, CC BY-SA 4.0. To learn more, see Simon's book.
Dependencies for running locally: Node.js and Yarn.
`npm install yarn -g`
Change directory to frontend.
`cd frontend/`
Install dependencies
`yarn install`
Commands:
To run locally, develop/edit. Open web browser @ http://localhost:3000
`yarn dev`
To create minified scripts/styling.
`yarn build`
To run all tests.
`yarn test`
To create package for use in vscode-wardley-maps or obsidian-wardley-maps.
`yarn package`
To validate npm package contents before publish:
`yarn package:pack`
To publish wmlandscape to npm locally:
`yarn package:publish`
Alternatively, you can also run it locally using the provided Dockerfile.
From the root repository, build a container image via
`docker build -t onlinewardleymaps .`
and then run it locally
`docker run -p 3000:3000 onlinewardleymaps`
Now you can access the frontend @ http://localhost:3000
This repository now includes a local Node.js/TypeScript API implementation of:
POST /v1/maps/saveGET /v1/maps/fetch?id=<map-id>
The API stores maps as .owm files in a configurable data directory.
To run both frontend and API together:
`docker compose up --build`
Services:
- Frontend: http://localhost:3000
- API: http://localhost:3001
Configuration options (all optional):
NEXT_PUBLIC_API_ENDPOINT(default:http://localhost:3001/v1/maps/in compose, production endpoint otherwise)OWM_DATA_PATH(default host path:./data)OWM_DATA_DIR(default container path:/data)
Example:
`OWM_DATA_PATH=./local-maps docker compose up --build`
POST /v1/maps/save
- Request JSON:
idstring (optional; if empty/missing, server generates UUID)textstring (required)mapIterationsstring (optional JSON-encoded array)
- Behavior:
- If
idis provided, the corresponding<id>.owmfile is overwritten. - If
idis not provided, a new UUID is generated.
- If
- Response JSON:
{ "id": "...", "text": "...", "mapIterations": "..." }
GET /v1/maps/fetch?id=<map-id>
- Response JSON:
{ "id": "...", "text": "...", "mapIterations": "..." }
If you find obsidian-wardley-maps, OnlineWardleyMaps or vscode-wardley-maps valuable, consider supporting its development:
Follow on X (Twitter) @MapsAsCode for updates and announcements!
Your support helps maintain and improve this plugin as well as OnlineWardleyMaps and vscode-wardley-maps. Every contribution is appreciated. Thank you for your support!
