Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Important Note: CastleDB editor has been rewritten to be integrated with HIDE. Castle library is still being developped but the editor here is legacy.

A structured database and level editor with a local web app to edit it.


CastleDB is used to input structured static data. Everything that is usually stored in XML or JSON files can be stored and modified with CastleDB instead. For instance, when you are making a game, you can have all of your items and monsters including their names, description, logic effects, etc. stored in CastleDB.


CastleDB looks like any spreadsheet editor, except that each sheet has a data model. The model allows the editor to validate data and eases user input. For example, when a given column references another sheet row, you will be able to select it directly.


CastleDB stores both its data model and the data contained in the rows into an easily readable JSON file. It can then easily be loaded and used by any program. It makes the handling of item and monster data that you are using in you video game much easier.


CastleDB allows efficient collaboration on data editing. It uses the JSON format with newlines to store its data, which in turn allows RCS such as GIT or SVN to diff/merge the data files. Unlike online spreadsheet editors, changes are made locally. This allows local experiments before either commiting or reverting.


Windows x64

OSX x64

NWJS Package

To run the package, download and put package.nw into the nwjs directory

Compile from sources:

1. Install Prerequisites

2. Build castle.js

  • Clone this repository
  • At the root of the repository folder run haxe castle.hxml
  • This will create castle.js file in the bin folder

3. Package or Run with NWJS

  • Download and copy NWJS from into the bin/nwjs directory
  • Run cdb.cmd on windows or nwjs/nwjs from bin directory on Linux
  • On OSX, you need to copy all bin files into bin/ folder, then open the NWJS application

More info

Website / documentation: