Skip to content
Open Data Editor


Open Data Editor uses a client/server architecture wrapped into a desktop application. As a server, we use a Python codebase that uses frictionless-py for data and metadata processing. As a client, we use this codebase written in TypeScript that uses React for components and Zustand for state management. As a desktop wrapper, we use Electron for NodeJS.


To start working on the project you need the following dependencies in your machine:

  • Python 3.11+
  • Node 20+
  • python3.11-dev (For PyInstaller)


NPM is included into the Node distribution so we just need to install hatch:

pip3 install hatch


Before starting with the project we recommend configuring hatch. The following line will ensure that all the virtual environments will be stored in the .python directory in project root:

hatch config set 'dirs.env.virtual' '.python'
hatch shell # Enter the venv

Now you can setup you IDE to use a proper Python path:



To start working on the project install the dependencies:

make install


We highly recommend enabling TypeScript checks for your IDE.



To work on the whole application:

make start

Note that there are few CSV files in the data folder to test the app. You can find more in the internet (it’s good to test it using different files).


Running the server in isolation:

make server # default folder
# OR
hatch run start <data-folder> # optionally provide a data folder path


Running the client in isolation:

make client
# OR
npm run start


Previewing descript application:

make preview
# OR
npm run preview


Documentation is written with Starlight (in the portal directory). The source articles are in the portal/content/docs directory. To start a live-reload server and work on the docs:

make docs

It will be automatically published on CloudFlare when merged to the main branch with previews available for pull requests.