Platform CLI Use cases
Learn
Developer docs User guide Quickstart CLI and AI agents Blog
Company
Services About Contact Links Get started
Music and entertainment

Lantern Ramblers: a tribute band site with tour dates, a setlist archive and live song stats

A website for a Grateful Dead tribute band: tour dates that move to past shows on their own, a setlist archive with a song filter, live song stats counted in Liquid, band pages, media, and booking inquiries saved as private drafts through a Raytha Function, built on Raytha by an AI agent with the CLI in about 45 minutes.

Build time
About 45 minutes
Built with
Raytha 2.0.1 and the raytha CLI 0.1.1
Industry
Music and entertainment
Rebuild
One script, from GitHub
Lantern Ramblers: a tribute band site with tour dates, a setlist archive and live song stats
Walkthrough

See it in action

A short, silent tour of the finished site, recorded from the real pages.

Silent walkthrough, 1080pOpen the MP4
The site

Take the tour

10 screens from the finished site, on desktop and on a phone. Use the arrow keys, swipe, or open any screen full size.

01 / 10Home page with the band name over drifting colour and the next show with its poster
The write-up

For each Raytha use case we take a realistic brief, hand it to an AI agent with the raytha CLI, and publish what comes out: the site, the files behind it, and a kit you can use to rebuild it yourself. This one is a website for a Grateful Dead tribute band: tour dates, a setlist from every show, song statistics, the band, photos and recordings, and a way for venues to get in touch.

The agent built it on a fresh Raytha 2.0.1 instance. Nobody opened the admin. Every template, content type, show, setlist, page, form handler and menu went in through the CLI, from files in a directory.

What was built

Lantern Ramblers are a fictional six-piece from Asheville, North Carolina, who play the songs of the Grateful Dead. Their site has:

  • A home page with the band name set large over slowly drifting colour, the next show with its poster and a countdown in days, the next five dates, the most-played songs as a bar chart, the band, the latest setlist, recent media and a booking call to action.
  • A tour page with 13 upcoming shows and 18 past ones. Each upcoming show has the venue, city, door times, ages, a ticket status (on sale, few left, sold out, free, tickets soon) and a button to the venue's own ticket page. Special nights such as the Halloween run and New Year's Eve stand out with a warm gradient.
  • Shows that file themselves. Upcoming and past come from one list: the template compares each show's date with today, so the morning after a gig it moves to "Where we've been" and links to its setlist. Nobody has to edit anything.
  • A setlist archive with every song of every show, set one, set two and the encore, with arrows for songs that run into each other. You can narrow it to a year, or click any song to see only the nights it was played, with the song highlighted.
  • A song stats page: shows in the archive, different songs, songs played, the biggest night, a top ten bar chart, the most common openers and encores, and a searchable table of the whole songbook with how often each song was played and in what share of shows. The same numbers are available as JSON at /songs.json.
  • A page for each of the six players, with a bio, their gear and the song they would play every night.
  • A media page of photos, videos and soundboard recordings, filterable by kind. Videos and recordings open on the sites that host them.
  • A booking page with what the band brings, the rooms they have played and an inquiry form. Inquiries are checked on the server and saved as private drafts that only the band can read. There are no payments anywhere on the site.

The design is psychedelic but tasteful: a deep plum night, warm cream type and a sunset gradient from amber through rose to violet, with soft colour blobs that drift behind the headers, a slowly turning colour wheel for a logo, a scrolling ticker and wavy dividers. All the motion stops for visitors who ask their system for reduced motion. Headlines are set in Fraunces, a soft, rounded serif with a lively italic, the text is Instrument Sans and dates and labels use DM Mono. The posters and portraits are abstract artwork drawn by a script, so every image is license-free and no real people are shown. The band is a fan tribute, so the site uses no Grateful Dead logos or artwork. On a 390px phone the menu folds away, show rows stack and the stats sit two to a row.

How the song stats work

There is no stats table and nothing to recalculate. Each setlist is three plain text fields, one song per line, with a > at the end of a line when the song runs into the next. The song stats page is a second list view over the same setlists, with its own Liquid template. As the page renders, the template walks every setlist and adds each song to one long string as a |Song| token. Counting a song is then just splitting that string on its token, and sorting the counts gives the top ten. Openers are the first line of set one, and encores come from the encore field. Drums and Space are left out of the counts.

So when the band adds tonight's setlist in the admin, the stats, the home page chart and the archive all update on the next page view. A Raytha Function at songs.json does the same sums in JavaScript for anyone who wants the raw numbers, and ?song= returns every date a single song was played.

How the booking form works

Raytha does not have a form builder, but it does have Raytha Functions: small JavaScript programs that answer HTTP requests at a path you choose. The booking page is an ordinary HTML form that posts to a function at forms/booking. The function:

  1. Ignores the submission if a hidden "website" field is filled in. People never see that field; spam bots fill it.
  2. Trims every value to a sensible length and checks that there is a name, a valid email address, a message and a known kind of event, and that the date asked for is not already in the past.
  3. Saves the inquiry as a draft in a booking requests content type that has no public pages.
  4. Sends the visitor to a thank-you page that greets them by first name, or back to the form with a short explanation of what to fix.

Features, and the Raytha features behind them

Feature How it is built
Shows, setlists, band, media and booking requests Five content types from one schema document. Shows use a date, a dropdown for the ticket status and an attachment for the poster; setlists use a one-to-one relationship to their show and long text for each set; members have a color for their accent.
64 seed items Content import from JSON Lines, with posters, portraits and photos uploaded during the import and each setlist linked to its show by name.
Upcoming and past shows One list view sorted by date, with a Liquid template that compares each date with today.
Setlist archive and song filter A list view whose template reads ?year= and ?song= and follows the relationship to show the venue.
Song stats A second list view over the same setlists, with a template that counts songs in Liquid, plus a widget that does the same for the home page chart.
Stats as JSON A Raytha Function at songs.json that reads the setlists through API_V1.GetContentItems.
Booking inquiries A plain HTML form that posts to a Raytha Function, which checks the fields and calls API_V1.CreateContentItem to save a draft. The booking requests list view is not published.
Show, setlist, member and media pages Detail templates for each content type. A past show's page looks up its setlist through the relationship.
Home, Booking and Thank you Site pages built from 11 custom widget templates (hero with the next show, next shows, top songs, band strip, latest setlist, media strip, call to action, page header, booking info, booking form, thank-you).
Navigation Two menus: the main menu and a footer menu.

The brief

This is the brief, as given to the agent.

Build a website for a Grateful Dead cover band on a fresh Raytha instance with the raytha CLI. No clicking around the admin. Use a fictional band name, and no Grateful Dead logos or trademarks beyond describing it as a Grateful Dead tribute.

Look and feel

  • Psychedelic but tasteful, with a design of its own. Display type that is well proportioned, not overly wide or squished.
  • Responsive. It has to look good on a phone as well as a desktop.

Content and pages

  • Tour dates, upcoming and past, and a setlist archive with song stats.
  • The band members, media and photos.
  • Booking information with a way to get in touch. No payments.

Done means

  • raytha check passes with no broken routes.
  • Screenshots of the result on desktop and mobile.
  • A kit in the examples repository that rebuilds the site on a fresh install.

How long it took

About 45 minutes of agent time, from an empty install to raytha check passing on every route, including the visual design, the generated artwork, 18 setlists, the two functions and writing all of the content.

Rebuild it yourself

The theme, schema, seed content, the artwork script, page definitions, functions and menus are in the raytha-examples repository, with a build.sh that rebuilds the whole site into any Raytha 2.x instance. Point it at your site with RAYTHA_URL and RAYTHA_API_KEY and run it.

Share Post LinkedIn

Build yours on Raytha

Free, open source and ready to deploy in minutes. Bring a brief and an AI agent.