Monthly Downloads: 32
Programming language: Haskell
License: GNU Affero General Public License v3.0
Tags: Web     Bookmarks & Link Sharing    

Espial alternatives and similar software solutions

Based on the "Bookmarks and Link Sharing" category.
Alternatively, view Espial alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Espial or a related project?

Add another 'Bookmarks and Link Sharing' Software solution



Espial is an open-source, web-based bookmarking server.

It allows mutiple accounts, but currently intended for self-host scenarios.

The bookmarks are stored in a sqlite3 database, for ease of deployment & maintenence.

The easist way for logged-in users to add bookmarks, is with the "bookmarklet", found on the Settings page.

Also, see the android app for adding bookmarks via an Android Share intent https://github.com/jonschoning/espial-share-android

demo server

log in — username: demo password: demo



Docker Setup

see https://github.com/jonschoning/espial-docker

Server Setup (from source)

  1. Install the Stack executable here:

  2. Build executables

    stack build
  3. Create the database

    stack exec migration -- createdb --conn espial.sqlite3
  4. Create a user

    stack exec migration -- createuser --conn espial.sqlite3 --userName myusername --userPassword myuserpassword
  5. Import a pinboard bookmark file for a user (optional)

    stack exec migration -- importbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile sample-bookmarks.json
  6. Import a firefox bookmark file for a user (optional)

    stack exec migration -- importfirefoxbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile firefox-bookmarks.json
  7. Start a production server:

    stack exec espial


See config/settings.yml for changing default run-time parameters & environment variables.

  • config/settings.yml is embedded into the app executable when compiled, so after changing config/settings.yml, run stack build again to apply the new settings.
  • config/settings.yml values formatted like _env:ENV_VAR_NAME:default_value can be overridden by the specified environment variable.
  • Example
    • _env:PORT:3000
      • environment variable PORT
      • default app http port: 3000

SSL: use reverse proxy



  • Install the yesod command line tool: stack install yesod-bin --install-ghc

  • Start a development server:

    yesod devel


  • See purs/ folder

Import Bookmark file format (pinboard compatible format)

see sample-bookmarks.json, which contains a JSON array, each line containing a FileBookmark object.


[ {"href":"http://raganwald.com/2018/02/23/forde.html","description":"Forde's Tenth Rule, or, \"How I Learned to Stop Worrying and \u2764\ufe0f the State Machine\"","extended":"","time":"2018-02-26T22:57:20Z","shared":"yes","toread":"yes","tags":"raganwald"},
, {"href":"http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/flags.html","description":"7.6. Flag reference \u2014 Glasgow Haskell Compiler 8.2.2 User's Guide","extended":"-fprint-expanded-synonyms","time":"2018-02-26T21:52:02Z","shared":"yes","toread":"no","tags":"ghc haskell"},