Glance

Self-hosted feeds and info dashboard

Dashboards & Startpages ★ 37.2k stars Easy setup AGPL-3.0

Glance is a self-hosted dashboard that aggregates feeds, weather, calendars, and service widgets into a single page. It targets users who want an information-dense home page. It is deployed via Docker or a binary.

Key features

  • Aggregates RSS, weather and more
  • YAML configuration
  • Lots of built-in widgets
  • Single lightweight binary

Quick deploy

A starting point for self-hosting Glance - check the official docs for the full set of options.

  • Image glanceapp/glance
  • Web port 8080
  • Persist /app/config
Docker Compose
services:
  glance:
    image: glanceapp/glance
    ports:
      - "8080:8080"
    volumes:
      - ./config:/app/config
    restart: unless-stopped
docker run
docker run -d --name glance \
  -p 8080:8080 \
  -v ./config:/app/config \
  --restart unless-stopped \
  glanceapp/glance

Pros & cons

Strengths

  • Information-dense layout
  • Very lightweight
  • Easy config

Trade-offs

  • YAML-only configuration
  • Young project

Glance replaces

Last reviewed Aug 26, 2026 · 825 words

Glance's entire product is one YAML file, and whether you like it comes down to whether this looks like a feature or a chore:

pages:
  - name: Home
    columns:
      - size: small
        widgets:
          - type: calendar
          - type: weather
            location: Dublin, Ireland
      - size: full
        widgets:
          - type: rss
            limit: 12
            feeds:
              - url: https://lwn.net/headlines/rss
              - url: https://hnrss.org/frontpage
          - type: monitor
            sites:
              - title: Jellyfin
                url: https://jellyfin.example.com

To me it is a feature. The result renders as a dense, fast, ad-free start page that a single Go binary serves from about 128 MB, and the config lives in git like everything else on my server. With 36,599 stars since a 2024 first release it has become the default answer for "information dashboard" as opposed to "app launcher", and that distinction is the whole review.

Feeds, not icons, are the point

Homepage and Heimdall are launchers: a grid of your services with status dots. Glance can do that with its bookmarks and monitor widgets, but its centre of gravity is content. RSS with thumbnails, Hacker News and Reddit front pages, YouTube channel uploads, GitHub release feeds for the software you run, Twitch, market prices, a weather strip, a calendar, and a docker-containers widget that reads the socket. It is closer to a personal newspaper than to a homelab console. If you want a page you open 20 times a day to launch things, Homepage remains the better tool; if you want a page to replace your browser's new tab, this is it.

Running it

services:
  glance:
    image: glanceapp/glance
    ports:
      - "8080:8080"
    volumes:
      - ./config:/app/config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped

Put glance.yml in ./config. The server watches the file and reloads on save, so iterating on layout is edit, save, refresh. Secrets go in through ${API_KEY} environment substitution rather than into the file, and $include lets you split a large config into per-page files. There is no database, no login, and no state; the 128 MB figure is generous and it usually idles well below that. If you would rather skip Docker, the release page ships a static binary for Linux, macOS and Windows on both amd64 and arm64, and glance --config glance.yml is the entire invocation, which makes a Raspberry Pi or an old laptop a perfectly good host.

The layout model in three rules

A page holds up to 3 columns. A column is either small, which has a fixed narrow width for clocks, weather and calendars, or full, which takes the remaining space and is where feeds go. At most 2 columns on a page can be small. That is the whole grammar, and it forces good layouts: a small-full-small page reads like a newspaper, a full-small page like a blog with a sidebar. On phones the columns collapse into tabs, so anything you put in a small column on the right is one swipe away rather than lost. Colours come from a theme block using HSL values for background, primary and contrast, plus an optional custom CSS file, and the same theme applies to every page.

The widgets that earn their space

monitor gives you uptime dots without a monitoring stack, but it has no alerting, so keep Uptime Kuma for the notifications. releases lists new versions of the GitHub projects you name, which is a low-effort way to notice that Immich shipped a breaking change before you pull it. custom-api fetches any JSON endpoint and renders it with a small template language, which is how people show their Paperless inbox count or Sonarr queue without a dedicated widget. extension embeds output from another service that speaks Glance's format. Between those four you can cover most of what a launcher does plus what a launcher cannot.

Where the YAML-only model hurts

There is no UI for editing, no per-user pages, and no authentication. The first two are by design and the third means you must front it with a reverse proxy that handles login, or keep it on a VPN. Appearance is tunable through a theme block and custom CSS, not through drag and drop. And because it is young, widgets occasionally change their config keys between releases; pin the image tag and read the changelog before upgrading.

What I'd do

Run it on port 8080 behind your proxy, reachable only from home or over a VPN, with a feed-heavy first page and a second page named after your homelab holding monitor, docker-containers and releases. If you already have a launcher you like, keep it and add Glance as the new-tab page; the two are not rivals. For a first dashboard from the dashboards category, pick Glance if you read more than you click and Homepage if you click more than you read.

Compare Glance

11 head-to-head comparisons.

Similar dashboards & startpages apps