Crystal is a fully customizable metaprogramming engine that:

- uses high level specifications and low level generators to help you build apps, websites and other software for any programming language

- is meant to be used on an ongoing basis beyond project creation

- allows multiple generators to be added (or removed) to a project or another generator at anytime

- has its own built-in package manager so you can easily search, install and update generators

- allows you to create your own generators

- allows you to publish generators for others to use

- uses a standardized specification

- allows additional specifications when creating generators

- makes language integration and migration easier