# Customizer Project Structure

To create customizers we use a JavaScript environment on server (nodejs) and client (Webbrowser) side. There will be a graphical editor at some point, though being able to define models with expressions in a simple way is way more powerful in our opinion.

A customizer project should live in its own directory and consists of a project file (main.yml) and additional shape scripts (JSCAD) and resource files (STL).

.
├─ main.yml
├─ shape_1.jscad
├─ plate_2.mjs
└─ mesh_3.stl

The next sections will outline in more detail the different entities of customizer project and how to implement your own customizer.