# Fernscout Demo

> Five journeys, to show what this thing does Written by Alex Berger.

## Reading this journal

Every page has a markdown twin: append `.md` to a day's own URL and you get
the day as markdown rather than as a rendering — a reader's view, public,
leaving out the fields a reader does not need. A trip that is not `public`
has no twin at all.

```
https://dev.fernscout.ch/example/trips/usa-2026/day/<slug>.md
```

## Writing to this journal

```
POST https://dev.fernscout.ch/api/auth/codes
     {"user": "example", "email": "<the owner's address>", "for": "write"}

POST https://dev.fernscout.ch/api/auth/codes/redeem
     {"user": "example", "email": "…", "code": "123456", "for": "write"}
     -> {"token": "fs_agent_…", "expires": "…", "scope": "write"}

Then send `Authorization: Bearer <token>` with every call below. Full
steps at https://dev.fernscout.ch/skill/new-account.md.
```

## Trips

- [Across and back](https://dev.fernscout.ch/example/trips/usa-2026): 2026-06-01 to 2026-11-20, current
- [Japan, end to end](https://dev.fernscout.ch/example/trips/japan-2027): 2027-03-28 to 2027-05-09, upcoming
- [Eighteen days, eleven parks](https://dev.fernscout.ch/example/trips/parks-2025): 2025-09-05 to 2025-09-22, past
- [Four days round the Alps](https://dev.fernscout.ch/example/trips/alps-2024): 2024-09-12 to 2024-09-15, past
- [Five months east](https://dev.fernscout.ch/example/trips/asia-2023): 2023-01-08 to 2023-06-02, past

## Endpoints

- [Status](https://dev.fernscout.ch/api/v2/example/status): where this journal and this token stand
- [Trips](https://dev.fernscout.ch/api/v2/example/trips): every trip you may write to
- Days: PUT/GET/PATCH/DELETE https://dev.fernscout.ch/api/v2/example/trips/<trip-id>/days/<slug> — see https://dev.fernscout.ch/skill/add-a-day.md
- [Media](https://dev.fernscout.ch/api/v2/example/media): one door for photographs, video, documents and imports — see https://dev.fernscout.ch/skill/ingest-photos.md
- [Figures](https://dev.fernscout.ch/api/v2/example/figures/presets): the vocabulary a person is drawn in
- Deleting: DELETE [a trip](https://dev.fernscout.ch/api/v2/example/trips/<trip-id>) or [the journal](https://dev.fernscout.ch/api/v2/example) — owner only, and neither deletes anything: the owner is mailed a link with a button on it
- [Search index](https://dev.fernscout.ch/example/search-index.json): every public entry, for finding things
- [Feed](https://dev.fernscout.ch/example/feed.xml): public entries as RSS

A private trip stays shut to approved readers too — approving somebody into the journal does not open it, and the owner has no way to grant it per person. If the plan is to share with family, guest is the trip's own value, and approving the reader is the other half of it.

## The guide

- [Getting a token, from nothing or from an existing journal](https://dev.fernscout.ch/skill/new-account.md): Prove an address, get a journal made, and get a token for it.
- [A journal's own settings, and deleting one](https://dev.fernscout.ch/skill/add-journal.md): Change what a journal says about itself, and delete one.
- [A trip: making one, and changing it afterwards](https://dev.fernscout.ch/skill/add-a-trip.md): Create a trip, describe who was on it, and change its own fields afterwards.
- [Writing a day: fields, correcting one, and publishing](https://dev.fernscout.ch/skill/add-a-day.md): Write one day as a draft, correct it, and put it on the site.
- [Photographs and video: attaching them, and the inbox](https://dev.fernscout.ch/skill/ingest-photos.md): Attach photographs and video to a day, or stage them before the days exist.
- [A trip's budget and what it actually cost](https://dev.fernscout.ch/skill/costs.md): A trip's budget, what it actually cost, and the rates that convert it.
- [Real postcards, in the post](https://dev.fernscout.ch/skill/send-postcards.md): Propose a printed postcard from a day — a person still has to send it.
- [Printing a photobook](https://dev.fernscout.ch/skill/make-a-photobook.md): Arrange a trip's photobook draft — size, cover, photographs. Ordering and paying stay the owner's own page.
- [The whole machine contract](https://dev.fernscout.ch/api/v2/openapi.json)
