← Back to personal projects

Tribute Music · Archive

Jackie Leven

Open project
The homepage with a verse from My Philosophy

The Scottish songwriter Jackie Leven (1950–2011) has been part of my life since I first saw him on stage in Drammen in the early 2000s. The site brings his own writing back from the Internet Archive and carries on the work of the people who once built jackieleven.com.

How the site came about

Ever since that concert Jackie has been part of my life. Not constantly, not always as close, sometimes absent for a while, but he keeps coming back and is there when I need him. I find it hard to explain why, and I don't really want to try. This spring he came back with particular intensity, strongly enough that I wanted to know more about him as a person.

Searching for him, I realised how far he is fading into obscurity. The website that revealed so much of him is no longer online. On social media there is little activity, in the press hardly anything at all. His music is rarely played on the streaming services, and the one song that gets more attention probably owes it to the title rather than to the music.

That is how this site came about. Of my own projects it is the one that matters most to me.

The history of jackieleven.com

The address has a history of its own. Jan Saghaug founded a fan site under this name in 1996, and from 2002 Jackie wrote his monthly column there, The Deep Pool. In 2008 his website moved to jackieleven.co.uk; the .com domain was parked later that year and subsequently used for unrelated content.

For a long time the address was a centre for everything to do with him. With the new site I hope to carry on some of the work of the people who created that fan site and developed Jackie's websites with him.

Jackie's writing

The old sites have been offline for years, but many of their entries survive in the Internet Archive. “The Deep Pool” collects his columns and blog posts from 2002 through to the announcement of his death in November 2011, in the original English and with links to the surviving archive copies.

The timeline places excerpts from this writing alongside events in his life. These quotations remain in English on both versions of the site. Where biographical accounts disagree, or where a year is only approximate, the entry says so.

The pastiche

Under “Biography” there is a book in fifteen chapters, told in the first person. It is not by Jackie. We wrote it, following his way of telling a story, and it combines memories from his columns and blog posts with imagined scenes and conversations. The notes at the end of each chapter explain what we drew on and what we imagined.

The labelling matters to me. Jackie liked to embellish his stories, and his documented memories often sound invented already. Unmarked first-person prose beside them would soon make it impossible to tell which parts came from him. So “Pastiche” appears in the page title and the notice above every chapter, documented quotations are set apart as such, and the chapter pages stay out of the search engines.

Finding his voice

Most of the work went not into the writing but into getting his tone right. The standard was at hand: his own texts, tens of thousands of words of them. The first chapters were accurate and still sounded like a machine. Only the comparison with his prose showed where the difference lay. It was not the words but the rhythm. Jackie's sentences meander through commas and dashes and often arrive nowhere, while the drafts divided the same material into self-contained units with a clean landing.

The first correction went wrong. The measurement turned into a target, the sentences grew longer and longer, and the text became hard to read. His characteristic is not length but variation: a sentence of twelve words beside one that runs half a page. An autobiography is also read differently from a monthly column, and what works there as a quirk becomes tiring over a hundred pages.

For the pass through all the chapters, a small tool flags sentence shapes that are rare in his writing. It decides nothing. None of the passages it flagged at the end was changed: they were Jackie's own words, other people's direct speech, bare facts and jokes in his register. A rule applied automatically would have levelled them and left a text with no author in it.

The work and other voices

The discography follows his releases from 1973 to 2024, from John St. Field through Doll by Doll to the solo years and side projects, with track lists, documented credits and listening links. Anyone who does not know him will find a short introduction under “Listen”, with pieces from different years and line-ups.

“Voices” gathers what others have written and said about him from 1978 to the present: interviews, reviews, portraits, concert reports, obituaries and broadcasts, each with a short summary and a note on whether the source can still be read.

Contributions

Anyone who would like to share memories of Jackie, or to help with the site, is welcome to get in touch. I would also be glad to hear about mistakes and about writing that is still missing from the collection.

Searching the archive

The search combines keyword and semantic retrieval. It can find names, titles and specific phrases, as well as material about a topic whose wording the reader does not know. Both methods contribute candidates to a shared result list, which a model then reranks for relevance to the query.

Results link to readable passages and identify their sources. Jackie's own writing, other people's accounts and editorial commentary remain distinguishable. The search retrieves existing material rather than generating a new answer from it.

From PHP to Go

The first version was written in PHP. When I wanted to add semantic search to the growing archive, I moved the application to Go in one day with coding agents. The content, appearance and public URLs were preserved. Texts and catalogues were already separate from the program logic, and the existing website provided a reference for comparing behaviour and presentation.

The Go application loads the JSON catalogues at startup and renders pages from HTML templates and Markdown texts. It uses the Go standard library, while the browser still runs vanilla JavaScript. Search is a separate service with a PostgreSQL index for keyword retrieval and text vectors. Embeddings and subsequent relevance reranking are computed through DeepInfra.

The search index is built separately from the website and released as a versioned snapshot, keeping editorial content apart from its derived search data. nginx forwards requests to the Go application; the search API and database are not directly exposed to the public.