dev_setup
Explains how to install, run, test, profile, and contribute to the Vimflowy project locally.
What this file does
Explains how to install, run, test, profile, and contribute to the Vimflowy project locally.
When to use it
- You want to run Vimflowy in development mode with hot reloading
- You need to run unit tests or lint the codebase
- You plan to contribute code or add new features to Vimflowy
- You want to build a production version of Vimflowy for personal use
Assumes this stack
DEVELOPMENT SETUP
For development, you'll want to run vimflowy locally. My aim is for setup to be painless, so let me know if anything goes awry.
Installation
With recent versions of node (6.x) and npm:
git clone https://github.com/WuTheFWasThat/vimflowy.git
cd vimflowy
npm install
Run
Simply run:
npm start
After a short wait, you should see the app at http://localhost:3000/
When source code changes, assets should be automatically (incrementally) recompiled.
This uses Create React App, so most of that documentation applies. For example, to use a different port, you set thePORT environment variable.
Note that you may make new documents simply by visiting
http://localhost:3000?doc=<documentname>#
NOTE: You may notice that the development version is a bit slow. If you're looking to run vimflowy for personal usage (not development), you'll want to compile the assets in production mode:
npm run build
npm run startprod
Notably, you can run a SQLite backend, for persistence to your server. See here for more info.
Tests
To run a process that monitors and runs tests when files change:
npm run watchtest
To run unit tests manually once (and get a more detailed report):
npm test
Typechecking
To manually run typescript checking:
npm run typecheck
Linting
To manually lint the project:
npm run lint
Profiling
For profiling, you should use browser profiling when possible. However, though the results will be less realistic, you can also profile unit tests. Something like:
npm run profiletest
node-tick-processor *-v8.log > processed_log
less processed_log
Guidelines to contributing
Just send a pull request. Remember to write tests when appropriate!
For any questions, don't hesitate to submit an issue or contact me at [githubusername]@gmail.com. Let me know especially if you plan on adding new features! I'm happy to chat about design, give pointers for where to start reading code, etc.
I've marked a number of github issues with the label small_task, which could be good places to start.
What's inside
6 sections: installation, run, tests, profiling, contributing, plus 9 code examples and 3 npm scripts
Change this for your project
- Replace
WuTheFWasThat/vimflowywith your own repository URL - Replace
[githubusername]@gmail.comwith your contact email - Replace
storage/SQLite.mdwith your own backend documentation path if different
Where it goes
Keep it in your repository where the agent or team that needs it will read it.
Related Documents
Dev Setup Install Instructions
Walks through setting up a conda environment, installing dependencies, and configuring MinKNOW for simulated Flongle replay and adaptive sampling.
canvas_dev_setup
Guides developers through setting up a local Canvas LMS instance with Apache and integrating it with the Wiki Education Dashboard via LTI 1.3.
My current setup (2026 edition)
Documents a developer's personal IDE, terminal, macOS, iOS, hardware, and tooling choices in 2026.