wax

Version, currently main branch1 version
  • main branchlatestAug 5, 2026

github.com/jgaskins/wax

Code generator for Crystal backend web apps and APIs

4 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  wax:
    github: jgaskins/wax
    branch: main

main is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
>= 1.10.1
License
MIT
Author
Jamie Gaskins
Target
  • wax from src/cli.cr
Executable
  • wax

Dependencies

Runtime Dependencies

  • db*github: crystal-lang/crystal-db
  • pg*github: will/crystal-pg
  • redis*github: jgaskins/redis
  • bcrypt*github: jgaskins/bcrypt
  • dotenv*github: gdotdesign/cr-dotenv
  • sentry*github: jgaskins/sentry, branch: multiple-runners
  • interro*github: jgaskins/interro
  • msgpack*github: crystal-community/msgpack-crystal
  • armature*github: jgaskins/armature
  • conveyor*github: jgaskins/conveyor
  • anthropic*github: jgaskins/anthropic

Development Dependencies

README

wax

Wax is an opinionated Crystal code generator for web applications and APIs. It provides conventions to follow to write your backend Crystal code more quickly using a few different Crystal shards:

  • Armature for HTTP routing
  • Interro for querying your Postgres database
  • Conveyor for background jobs
  • Redis as the backing store for caching, background jobs, and sessions
  • Dotenv for loading configuration from .env files

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      wax:
        github: jgaskins/wax
  2. Run shards install to install wax and its dependencies

Usage

From your terminal:

bin/wax generate app YourAppName

Wax will generate all the files your app needs to get started for your app. You can also abbreviate generate as g:

bin/wax g app YourAppName

Generating

You can generate several kinds of files:

| Files | Command | |-------|---------| | App | bin/wax g app OnlineStore | | Models | bin/wax g model Product id:uuid:pkey title:string description:string | | Migration | bin/wax g migration add column products active:boolean | | Routes | bin/wax g route Catalog | | Components | bin/wax g component DatePicker |

Development

TODO: Write development instructions here

Contributing

  1. Fork it (https://github.com/jgaskins/wax/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors