# Introduction

Maze is a web development framework written in the Crystal language which implements the server-side MVC pattern using the object-oriented paradigm. Many of its components and concepts will seem familiar to those of us with experience in other web frameworks like Phoenix, Ruby on Rails or Python's Django. Maze is based on [Amber](https://amberframework.org) and the purpose of Maze is to extend Amber with specific features and design goals that are outside of, and sometimes incompatible with, the core goals of the Amber project. See the [Maze](https://github.com/mazeframework/maze) project on github for details about the main differences between Maze and Amber.

![Maze Framework](https://github.com/mazeframework/mazeframework.github.io/blob/master/assets/images/maze.svg)

Maze aims to deliver developer happiness, productivity, and bare metal performance. The Crystal language is heavily inspired on Ruby delivering familiarity and productivity making it easy to read and write code with a lower learning curve for experienced Ruby developers.

Crystal also has some modern features like macros, concurrency model, union types, c bindings, built in dependency manager. Maze takes advantage of all these features providing you a familiar structure to develop a web application.

Maze offers a familiar set of tools for fast prototyping and developing enterprise-grade web applications, like Generators, Database management, CLI, Deployment tools, Docker support, Encrypted secrets, WebSockets, and more. If you come from the rails world, you will feel right at home but be aware, Maze is not Rails; it's type-safe, compiled, and embraces the best features from many different frameworks so you might notice pipes for routing which is more similar to Phoenix framework.

The aim of this introductory guide is to present a brief, high-level overview of Maze Framework, the parts that make it up, and the layers underneath that support it.

## Getting Help

If you’re stuck, there are a number of places you can get help.

* [**Gitter**](https://gitter.im/mazeframework/maze) for quick questions.
* [**Stack Overflow**](https://stackoverflow.com/questions/tagged/maze-framework) for questions about the Crystal Language and Maze Framework.
* [**Github**](https://github.com/mazeframework/maze) for getting acquainted with source code, current issues and progress.
* [**Online Guides**](https://mazeframework.gitbook.io/maze) for getting down and dirty working with Maze.
* [**Twitter**](https://twitter.com/mazeframework) to see latest news and announcements about Maze Framework.

## Contributing

Contributing to Maze can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine. You don’t have to become a lifelong contributor to enjoy participating in Maze.

Maze is a community effort and we want You to be part of ours [Join Maze Community!](https://github.com/mazeframework/maze/blob/master/.github/CONTRIBUTING.md)

## First Steps

Learning a new framework can be intimidating and exciting at the same time. To help you along, we have created a cookbook packed with examples and recipes to get the common tasks completed.

If you are new, you should start off with the [guides](/maze/guides.md).

If you want a step by step tutorial try the [quick start](/maze/getting-started.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mazeframework.gitbook.io/maze/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
