<commit_before># Aero in 30 seconds

Instead of routing `/hello` via code you simply create a `hello` directory inside `pages`.

A page can have a [template](Templates.md), [style sheet](Styles.md), a [controller](Controllers.md), a [client script](Scripts.md) and a JSON file:

* `hello/hello.jade`
* `hello/hello.styl`
* `hello/hello.js`
* `hello/hello.json`

A controller is just an object that defines `get` or `post` methods. Or whatever you need.

```js
exports.get = (request, response) => response.end('Hello')
```

To feed dynamic data from a controller to a template just pass it to `response.render`.

```js
response.render({ message: 'You requested ' + request.url })
```

```jade
h1= message
```

Static pages only require a template file, e.g. `hello.jade`.

REST API pages only require a controller, e.g. `hello.js`.

Aero is powered by its own blazingly fast web server which has [Express-like API](#express-like-api).

```js
app.get('/', (req, res) => res.end('Hello World'))
```<commit_msg>Updated quick guide<commit_after># Aero in 30 seconds

Instead of routing `/hello` via code you simply create a `hello` directory inside `pages`.

A page can have a [template](Templates.md), [style sheet](Styles.md), a [controller](Controllers.md), a [client script](Scripts.md) and a JSON file:

* `hello/hello.jade`
* `hello/hello.styl`
* `hello/hello.js`
* `hello/hello.client.js`
* `hello/hello.json`

A controller is just an object that defines `get` or `post` methods. Or whatever you need.

```js
exports.get = (request, response) => response.end('Hello')
```

To feed dynamic data from a controller to a template just pass it to `response.render`.

```js
response.render({ message: 'You requested ' + request.url })
```

```jade
h1= message
```

Static pages only require a template file, e.g. `hello.jade`.

REST API pages only require a controller, e.g. `hello.js`.

Aero is powered by its own blazingly fast web server which has [Express-like API](#express-like-api).

```js
app.get('/', (req, res) => res.end('Hello World'))
```
{'fraction_non_alphanumeric': 0.147239263803681, 'fraction_numerical': 0.002831524303916942, 'mean_word_length': 3.7216035634743876, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2531800', 'n_tokens_mistral': 743, 'n_tokens_neox': 676, 'n_words': 249}