Want to try fastn for your company's website?
Book a Demo

Dynamic URLs Guide

`fastn` can be used for creating dynamic websites. By default `fastn` maps the URL's path to file system to decide which `ftd` document to serve. This behaviour can be changed as described in [custom URLs guide](/custom-urls/). In this guide we will see how we can map any URL matching a given pattern to a `ftd` document.
⚠️
Static Vs Dynamic
This feature works better with dynamic hosting. If you are using `fastn` in [static site mode](/deploy/), then how the page looked when `fastn build` was called will be shown to everyone. But if you are using [dynamic mode](/deploy/) then this page would be regenerated on every page load.
Dynamic URLs are specified in `FASTN.ftd` file under the `fastn.dynamic-urls` section:
-- fastn.dynamic-urls:

# User Profile Page
url: /<string:username>/
document: profile.ftd
Lang:
ftd
In the above snippet we are saying any URL that matches the pattern `/<string:username>/` will be served by the document `profile.ftd`. When this url matches, the matching value of the `string` is stored as `username` and can be extracted using [request-data processor](/request-data/).
-- import: fastn/processors as pr

-- record r-data:
string username:

-- r-data data:
$processor$: pr.request-data

-- ds.markdown: $data.message
Lang:
ftd

Valid Types

Following types are supported:

`string`

This matches any string other than `/`.

`integer`

This matches any valid integer.

`decimal`

This matches any decimal number.