Slinky: A self-hosted start page

A colorful, retro-style graphic illustration of a circular slinky coil featuring red, yellow, and teal segments on a cream background.

One of the browser conveniences that I appreciate is ready access to commonly used links, presented in a neat and categorized way. Every time I create a new tab, I just want to see those links. There are of course many browser extensions that present a page when the user opens a new tab. Mozilla has its own default ad-ridden page on Firefox. For my part, I don’t want news, weather, “trending stories,” or ads. I just want my curated links. That’s why I created Slinky.

It’s a self-hosted start page. For several years, I used the extension “A Fine Start” to present new-tab and new-window links. Its aesthetics and behaviour were close to ideal. But in a world where everything is on a subscription model, I could not justify another monthly fee to support syncing my bookmarks. I also needed something that would work on iOS. For a while, I had a complicated system to keep my A Fine Start bookmarks in sync using nightly JSON export/import. It was cumbersome to keep everything aligned between machines.

So that is how Slinky got started.

Screenshot of the Slinky self-hosted start page

Installation

The code lives at Slinky. Clone the repository and work from that tree. You will need Go 1.25+ to build; Debian 12’s golang-go package is too old. The supported install is a systemd service on Debian 12. Full commands, unit files, and environment variables are in the README. What follows is only a sketch.

git clone https://github.com/NSBum/slinky.git
cd slinky

On the Debian host, with Go 1.25+ installed:

make slinky

If you would rather not install a current Go on the server, build a Linux amd64 binary elsewhere (make linux on macOS) and copy it into the clone. Then follow the README to install the binary, systemd unit, and /etc/slinky/slinky.env. Set SLINKY_ACCESS_PATH there — that string is the secret path component in the homepage URL. Enable the service, then open http://<host>:8080/<access-path>/. There is no login screen. Anything else, including /, returns 404.

A fresh install is empty. Add bookmarks in the browser, or paste an A Fine Start JSON export under Settings → Import bookmarks.

Usage

Use the URL with the secret path component as your homepage, not the site root. Settings shows the exact URL to copy.

  • Firefox: Settings → Home → Homepage and new windows (and optionally new tabs) → Custom URLs.
  • Safari: Settings → General → Homepage, and set new windows/tabs to Homepage.
  • Chrome / Edge: you can set a custom home URL, but new tabs still use Chrome’s NTP unless you also use an extension.

For new tabs in Firefox I use the New Tab Override extension.

The access path is the protection: anyone who can guess the URL can view and edit. For a page of bookmarks, that is a reasonable trade for not logging in every time you open a tab.

Honestly, if this is all too much trouble, or if you don’t have experience with self-hosting, or if the security issues worry you, just use A Fine Start. It’s great.

If you run into trouble, see my contact page.

Donald Trump’s pseudo-principles of adult behaviour

I’ll admit to being a pushover for lists of pithy advice for living. One that I return to frequently are those compiled by John Perry Barlow.

In 1977, John Perry Barlow wrote a list of twenty-five principles of adult behaviour.

Reading through these principles in the midst of the self-serving, self-enriching careless chaos that Donald Trump has wreaked on the world, I decided to write a parallel set of principles as Trump himself might do. I give you - by way of contrast - Donald Trump’s Principles of Adult Behaviour.

# John Perry Barlow’s Principle Donald Trump’s Principle
1 Be patient. No matter what. Never wait for anything. Patience is a vice.
2 Don’t badmouth: Assign responsibility, never blame. Say nothing behind another’s back you’d be unwilling to say, in exactly the same tone and language, to his face. Constantly slam other people. Use your vilest words and harshest tone.
3 Never assume the motives of others are, to them, less noble than yours are to you. Everyone is out to get you.
4 Expand your sense of the possible. The best idea is the first one to pop in your head. You are the smartest person ever.
5 Don’t trouble yourself with matters you truly cannot change. Try to control everything to your advantage.
6 Expect no more of anyone than you yourself can deliver. The suckers are there to serve you. Play as much golf as you want. Let them do the work.
7 Tolerate ambiguity. Ambiguity is for losers. It’s “my way or the highway.”
8 Laugh at yourself frequently. Never laugh at yourself. You are in the same league as Alexander the Great. Did he laugh at himself? Uh, no…
9 Concern yourself with what is right rather than who is right. Don’t concern yourself with what is right. Only be concerned with how much it benefits you.
10 Never forget that, no matter how certain, you might be wrong. You are never wrong.
11 Give up blood sports. Embrace blood sports.
12 Remember that your life belongs to others as well. Do not endanger it frivolously. And never endanger the life of another. You are the centre of the universe. Everyone else is expendable.
13 Never lie to anyone for any reason. (Lies of omission are sometimes exempt.) Lies are the lifeblood of your image. Always lie.
14 Learn the needs of those around you and respect them. Ignore the needs of those around you.
15 Avoid the pursuit of happiness. Seek to define your mission and pursue that. Satisfying your every whim. Your happiness is paramount.
16 Reduce your use of the first personal pronoun. The first person pronoun is the most important.
17 Praise at least as often as you disparage. Never praise anyone, unless they have debased themselves for you first.
18 Never let your errors pass without admission. Ignore your mistakes. Because you don’t make them.
19 Become less suspicious of joy. Do not let others be happy.
20 Understand humility. Humility is for the weak, suckers and losers.
21 Forgive. Never forgive or forget if someone crosses you. Persecute them forever.
22 Foster dignity. There is no such thing as inherent dignity. If you are weak or poor, then you are nothing.
23 Live memorably. Grab as much as you can.
24 Love yourself. If you love yourself, you’ll be soft. May as well stoke the fires of self-hate.
25 Endure. TACO