Skip to content
core parts of a Wanda app
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status GitHub release GitHub


Wanda is a web framework aimed to make web development workflow more enjoyable and easier by mimic the best parts of Ruby on Rails. By being written in Crystal programing language, this framework also attemps to solve the performance matter of Ruby language but still give developers the same felling as if they were making app in Ruby/Rails.

Wanda-engine is core part that difine and drive structure and workflow of an wanda-based application. The engine is required by default in Wanda Template. Thanks to many other developers, the framework consists of the following shards:

  • Kemal : provide handy DSLs for communicating with HTTP server.
  • : ActiveRecord insprited database ORM for Crystal.
  • wanda-csrf : Based on kemal-csrf, adding csrf protection to your wanda application.
  • : running tasks at specific time.
  • : Crystal's port of Rails's ActiveSupport
  • cache: Support caching

The Wanda Framework focuses mainly on backend-development, that means how front-end stuff will be done is completely up to you. The default (and recommended) setup at Wanda Template uses VueJS(with single file components supported), axios and turbolinks. Bundled using webpack4.


  1. In the Wanda Template, add the dependency to your shard.yml:

        github: TheEEs/wanda
        version: 0.1.1
  2. Run shards install

After installation there will be two files bin/ and bin/ lie in your project directory. bin/ is a task manager containing code for generating, destroying files, database migration, scaffolding application.

bin/ is the entry-file of Wanda app. To run your application, type:

$ crystal bin/



    1. Add support for other databases
    1. Add support for websocket
    1. Make view caching more flexible


  1. Fork it (
  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


  • TheEEs - creator and maintainer
You can’t perform that action at this time.