# Codebase Overview
Neo.mjs uses a mono-repo structure and the the folders should be mostly self explanatory.
## apps
This contains demo apps created with the createApp build script. Demo apps are created together in this repo, to allow for work on the framework source in parallel. (Note: The createApp build script creates a neo.mjs app shell within this repository's app folder.) Once a demo app is done, we usually use `npx neo-app` to create a new shell and move it into the neo namespace.
## buildScripts
This contains the nodejs based programs such as createApp. The tooling (webpack) to create the dist versions, themes & docs output.
## dist
This should NOT be checked into version control. It will get generated from build scripts. Please do not remove from `.gitignore`.
## docs
This contains the codebase for the documentation site and the docs output (generated with the geneate-docs-json script). The documentation app is built using neo.mjs. Take a look at the API section of the online version of the online version for Chrome v80+ to get an idea about the class heirarchy of neo.mjs.
## examples
This contains examples of various UI elements. Many of the UI elements get added into the docs app (examples section).
## node_modules
This should NOT be checked into version control. Please do not remove from `.gitignore`.
## src
This contains the bulk of the framework code. You will spend most of your time working here.
## resources
This contains mostly static assests such as style sheets and images for the neo themes (dark and light thenes) and structuring.
## test
This contains the siesta based unit & user interaction tests. This part definitely needs more love and contribution.
## Slack Channel for questions & feedback
There are some Javascript legends hiding in the shadows and waiting to be discovered.
Join our community:
Slack Channel Invite Link
Build with :heart: in Germany
Copyright (c) 2015 - today, Tobias Uhlig
& Rich Waters