glance is a free, open source social networking project written in Go and released under AGPL-3.0. It has 37,086 GitHub stars, 1,463 forks and 318 open issues, and was last pushed 13 days ago. On this registry it ranks #3 of 44 tracked projects in Social Networking, with 5 head-to-head comparisons available. It gained 27 stars over the last 3 tracked days.

What is glance?

What it is

Glance is a self-hosted dashboard application written in Go and released under the AGPL-3.0 license. It gathers feeds and status information from many sources into a single customizable page, so that a user can read news, follow channels and watch server health from one interface instead of opening a separate tab or application for each source. It lives in the self-hosted and homelab ecosystem, alongside other Docker-packaged services that users run on their own hardware. The project has been on GitHub for about two years, holds roughly 37,000 stars and 1,454 forks, and its topic list places it among aggregators, feed readers, dashboards and homepage tools.

The concrete problem it solves is fragmentation. Reading RSS feeds, subreddit posts, Hacker News threads, YouTube uploads, Twitch streams, weather forecasts, market prices, Docker container status and server statistics normally means visiting many separate sites and clients. Glance collects those sources as widgets on a page built from a YAML configuration file, so a single self-hosted URL becomes the starting point for daily reading and for checking the state of the machine it runs on. Because the interface is assembled from widgets rather than fixed to one content type, the same deployment can serve someone who mainly wants feeds and someone who mainly wants container and server monitoring.

Key capabilities

  • Displays RSS and Atom feeds as configurable widgets, with options such as item limits, collapse-after counts and cache duration.
  • Shows posts from chosen subreddits, with optional thumbnails.
  • Shows Hacker News and Lobsters posts.
  • Lists YouTube channel uploads and Twitch channels.
  • Reports weather forecasts for a given location, along with units and hour-format settings.
  • Tracks market prices by symbol, and repository releases for chosen projects.
  • Monitors Docker container status and server statistics.
  • Supports custom widgets, grouped widgets, calendar widgets and preconfigured pages, with themes and user-supplied CSS.
  • Configuration is done through YAML files covering pages, columns, column sizes and widget options.

Who uses it and how

  • Homelab operators run it as a homepage that shows Docker container status and server statistics next to their feeds.
  • Feed readers use it to follow RSS and Atom sources, including personal blogs, in one place with per-feed titles and limits.
  • People tracking creators add YouTube channels and Twitch channels to a page so new uploads and live streams are visible without visiting each platform.
  • Community watchers combine subreddit, Hacker News and Lobsters widgets to
project readme (upstream, from github) — read inline

Glance

InstallConfigurationDiscordSponsor

Community widgetsPreconfigured pagesThemes

A lightweight, highly customizable dashboard that displays
your feeds in a beautiful, streamlined interface

Features

Various widgets

  • RSS feeds
  • Subreddit posts
  • Hacker News posts
  • Weather forecasts
  • YouTube channel uploads
  • Twitch channels
  • Market prices
  • Docker containers status
  • Server stats
  • Custom widgets
  • and many more...

Fast and lightweight

  • Low memory usage
  • Few dependencies
  • Minimal vanilla JS
  • Single

Configuration

Configuration is done through YAML files, to learn more about how the layout works, how to add more pages and how to configure widgets, visit the configuration documentation.

Preview example configuration file
pages:
  - name: Home
    columns:
      - size: small
        widgets:
          - type: calendar
            first-day-of-week: monday

          - type: rss
            limit: 10
            collapse-after: 3
            cache: 12h
            feeds:
              - url: https://selfh.st/rss/
                title: selfh.st
                limit: 4
              - url: https://ciechanow.ski/atom.xml
              - url: https://www.joshwcomeau.com/rss.xml
                title: Josh Comeau
              - url: https://samwho.dev/rss.xml
              - url: https://ishadeed.com/feed.xml
                title: Ahmad Shadeed

          - type: twitch-channels
            channels:
              - theprimeagen
              - j_blow
              - piratesoftware
              - cohhcarnage
              - christitustech
              - EJ_SA

      - size: full
        widgets:
          - type: group
            widgets:
              - type: hacker-news
              - type: lobsters

          - type: videos
            channels:
              - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
              - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
              - UCsBjURrPoezykLs9EqgamOA # Fireship
              - UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee
              - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium

          - type: group
            widgets:
              - type: reddit
                subreddit: technology
                show-thumbnails: true
              - type: reddit
                subreddit: selfhosted
                show-thumbnails: true

      - size: small
        widgets:
          - type: weather
            location: London, United Kingdom
            units: metric
            hour-format: 12h

          - type: markets
            markets:
              - symbol: SPY
                name: S&P 500
              - symbol: BTC-USD
                name: Bitcoin
              - symbol: NVDA
                name: NVIDIA
              - symbol: AAPL
                name: Apple
              - symbol: MSFT
                name: Microsoft

          - type: releases
            cache: 1d
            repositories:
              - glanceapp/glance
              - go-gitea/gitea
              - immich-app/immich
              - syncthing/syncthing

Installation

Choose one of the following methods:

Docker compose using provided directory structure (recommended)

Create a new directory called glance as well as the template files within it by running:

mkdir glance && cd glance && curl -sL https://github.com/glanceapp/docker-compose-template/archive/refs/heads/main.tar.gz | tar -xzf - --strip-components 2

click here to view the files that will be created

Then, edit the following files as desired:

  • docker-compose.yml to configure the port, volumes and other containery things
  • config/home.yml to configure the widgets or layout of the home page
  • config/glance.yml if you want to change the theme or add more pages
Other files you may want to edit
  • .env to configure environment variables that will be available inside configuration files
  • assets/user.css to add custom CSS

When ready, run:

docker compose up -d

If you encounter any issues, you can check the logs by running:

docker compose logs

Docker compose manual

Create a docker-compose.yml file with the following contents:

services:
  glance:
    container_name: glance
    image: glanceapp/glance
    restart: unless-stopped
    volumes:
      - ./config:/app/config
    ports:
      - 8080:8080

Then, create a new directory called config and download the example starting glance.yml file into it by running:

mkdir config && wget -O config/glance.yml https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml

Feel free to edit the glance.yml file to your liking, and when ready run:

docker compose up -d

If you encounter any issues, you can check the logs by running:

docker logs glance

Manual binary installation

Precompiled binaries are available for Linux, Windows and macOS (x86, x86_64, ARM and ARM64 architectures).

Linux

Visit the latest release page for available binaries. You can place the binary in /opt/glance/ and have it start with your server via a systemd service. By default, when running the binary, it will look for a glance.yml file in the directory it's placed in. To specify a different path for the config file, use the --config option:

/opt/glance/glance --config /etc/glance.yml

To grab a starting template for the config file, run:

wget https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml

Windows

Download and extract the executable from the latest release (most likely the file called glance-windows-amd64.zip if you're on a 64-bit system) and place it in a folder of your choice. Then, create a new text file called glance.yml in the same folder and paste the content from here in it. You should then be able to run the executable and access the dashboard by visiting http://localhost:8080 in your browser.


Other

Glance can also be installed through the following 3rd party channels:



Common issues

Requests timing out

The most common cause of this is when using Pi-Hole, AdGuard Home or other ad-blocking DNS services, which by default have a fairly low rate limit. Depending on the number of widgets you have in a single page, this limit can very easily be exceeded. To fix this, increase the rate limit in the settings of your DNS service.

If using Podman, in some rare cases the timeout can be caused by an unknown issue, in which case it may be resolved by adding the following to the bottom of your docker-compose.yml file:

readme truncated — read the full docs on github

Frequently asked questions

Is glance free to use?

glance is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does glance do?

A self-hosted dashboard that puts all your feeds in one place

What is glance written in?

glance is primarily written in Go. Its source is publicly available at https://github.com/glanceapp/glance, and it has 37,086 GitHub stars.