# Shpadoinkle Disembodied
[](https://gitlab.com/platonic/shpadoinkle)
[](https://shpadoinkle.org/disembodied)
[](https://opensource.org/licenses/BSD-3-Clause)
[](https://builtwithnix.org)
[](https://hackage.haskell.org/package/Shpadoinkle-disembodied)
[](http://packdeps.haskellers.com/reverse/Shpadoinkle-disembodied)
[](https://matrix.hackage.haskell.org/#/package/Shpadoinkle-disembodied)
This module provides static site generation tools for Html.
## Usage
Lets say you have the following API routes for you SPA application:
```haskell
type Pages m
= "about" :> View m Int
:<|> View m ()
```
And you have a view for each. You can now produce a `SiteSpec` mapping these routes to the views.
```haskell
site :: SiteSpec () (Pages m)
site = about 0 :<|> const home
```
Which can be written to static pages with `writeSite`. Each route will become a directory,
and each View will become an `index.html` file in that directory.