The Polyglot Code Generation Framework

Write once, generate anything, and customize the output. Hofstadter will turn your designs into schemas, servers, SDKs, and more. Compose and extend modules to rapidly import and customize functionality. Create generators to bring your existing code bases into Hofstadter.


Write Once

Hofstadter turns your source of truth into a robust application. Describe your data model once as the "design" for an application. Your designs are processed by "generators" which render them into the technologies needed to implement your application.

Generate Anything

Generators read your designs and output a set of files and directories. By spanning multiple languages and technologies, generators provide you with more complete functionality out of the box. It's also easy to convert existing bases into Hofstadter.

Modify the Output

Hofstadter is aware of both the files it generates and any additions or modification you make to the output. You can add your business logic and custom code in with the generated application.

Iterate on Designs

When you update designs or customize the output, and then later regenerate, you need not worry. Hofstadter will manage the merging process and alert you to any issues like git does.

Compose Features

Modules package any mix of code, functionality, designs, and generators. You can import, configure, and compose modules or their contents. By combining multiple modules you can create advanced applications quickly.

Extend Capabilities

Hofstadter designs, generators and modules have many options for configuration and extenstion. Recombine the inputs, configuration, and generators, adding and specializing as you need.