diff --git a/horizon.dhall b/horizon.dhall
index 9df418c8643da46be32a4118f90bb14936c30ef9..b07d7f46c14e74b52620902e875e108ab84e0718 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -11,6 +11,14 @@ let callHorizonAdopted
           revision
           (None Text)
 
+let callGitBeam
+    : H.Subdir → H.HaskellPackage.Type
+    = λ(subdir : H.Subdir) →
+        H.callGit
+          "https://github.com/haskell-beam/beam"
+          "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
+          (Some subdir)
+
 let callGitCabal
     : H.Subdir → H.HaskellPackage.Type
     = λ(subdir : H.Subdir) →
@@ -122,6 +130,10 @@ let packages =
       , base64 = H.callHackage "base64" "0.4.2.4"
       , base-compat = H.callHackage "base-compat" "0.12.2"
       , base-compat-batteries = H.callHackage "base-compat-batteries" "0.12.2"
+      , beam-core = callGitBeam "beam-core"
+      , beam-migrate = callGitBeam "beam-migrate"
+      , beam-postgres = callGitBeam "beam-postgres"
+      , beam-sqlite = callGitBeam "beam-sqlite"
       , bech32 = H.callHackage "bech32" "1.1.2"
       , bech32-th = H.callHackage "bech32-th" "1.1.1"
       , bifunctors = H.callHackage "bifunctors" "5.5.13"
diff --git a/initial-packages.nix b/initial-packages.nix
index 7276d858170ee98578798a08eb22b6ea87b2bb37..1f4ac6f91dac08a8a44f45e09edf72ee0fb4e20e 100644
--- a/initial-packages.nix
+++ b/initial-packages.nix
@@ -155,6 +155,14 @@ self: with pkgs.haskell.lib; {
 
   basement = self.callPackage (./pkgs/basement.nix) { };
 
+  beam-core = self.callPackage (./pkgs/beam-core.nix) { };
+
+  beam-migrate = self.callPackage (./pkgs/beam-migrate.nix) { };
+
+  beam-postgres = self.callPackage (./pkgs/beam-postgres.nix) { };
+
+  beam-sqlite = self.callPackage (./pkgs/beam-sqlite.nix) { };
+
   bech32 = self.callPackage (./pkgs/bech32.nix) { };
 
   bech32-th = self.callPackage (./pkgs/bech32-th.nix) { };
diff --git a/pkgs/beam-core.nix b/pkgs/beam-core.nix
new file mode 100644
index 0000000000000000000000000000000000000000..716a1f8193e0bf425acbabffc0c5e1e7efca4c39
--- /dev/null
+++ b/pkgs/beam-core.nix
@@ -0,0 +1,75 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, containers
+, dlist
+, fetchgit
+, free
+, ghc-prim
+, hashable
+, lib
+, microlens
+, mtl
+, network-uri
+, scientific
+, tagged
+, tasty
+, tasty-hunit
+, text
+, time
+, vector
+, vector-sized
+}:
+mkDerivation {
+  pname = "beam-core";
+  version = "0.10.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell-beam/beam";
+    sha256 = "05yvc8hw0b2f8dg8lz8w1a2y90pwi10iwqa0b2xjhrlacwi0fci9";
+    rev = "94461937c5ca8b89f1ff1a60bde5bffe207315b4";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/beam-core/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    dlist
+    free
+    ghc-prim
+    hashable
+    microlens
+    mtl
+    network-uri
+    scientific
+    tagged
+    text
+    time
+    vector
+    vector-sized
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    tasty
+    tasty-hunit
+    text
+    time
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://travis.athougies.net/projects/beam.html";
+  description = "Type-safe, feature-complete SQL query and manipulation interface for Haskell";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/beam-migrate.nix b/pkgs/beam-migrate.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5c84ae45b2c76cee71b51104047b5316f949c4bf
--- /dev/null
+++ b/pkgs/beam-migrate.nix
@@ -0,0 +1,77 @@
+{ mkDerivation
+, aeson
+, base
+, beam-core
+, bytestring
+, containers
+, deepseq
+, dependent-map
+, dependent-sum
+, fetchgit
+, free
+, ghc-prim
+, hashable
+, haskell-src-exts
+, lib
+, microlens
+, mtl
+, parallel
+, pqueue
+, pretty
+, scientific
+, text
+, time
+, unordered-containers
+, uuid-types
+, vector
+}:
+mkDerivation {
+  pname = "beam-migrate";
+  version = "0.5.2.0";
+  src = fetchgit {
+    url = "https://github.com/haskell-beam/beam";
+    sha256 = "05yvc8hw0b2f8dg8lz8w1a2y90pwi10iwqa0b2xjhrlacwi0fci9";
+    rev = "94461937c5ca8b89f1ff1a60bde5bffe207315b4";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/beam-migrate/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    beam-core
+    bytestring
+    containers
+    deepseq
+    dependent-map
+    dependent-sum
+    free
+    ghc-prim
+    hashable
+    haskell-src-exts
+    microlens
+    mtl
+    parallel
+    pqueue
+    pretty
+    scientific
+    text
+    time
+    unordered-containers
+    uuid-types
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://travis.athougies.net/projects/beam.html";
+  description = "SQL DDL support and migrations support library for Beam";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/beam-postgres.nix b/pkgs/beam-postgres.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4afa4708d696eddc3804eeb9ed8e4b3e0307392f
--- /dev/null
+++ b/pkgs/beam-postgres.nix
@@ -0,0 +1,101 @@
+{ mkDerivation
+, aeson
+, attoparsec
+, base
+, beam-core
+, beam-migrate
+, bytestring
+, case-insensitive
+, conduit
+, fetchgit
+, free
+, hashable
+, haskell-src-exts
+, hedgehog
+, lib
+, lifted-base
+, monad-control
+, mtl
+, network-uri
+, postgresql-libpq
+, postgresql-simple
+, scientific
+, tagged
+, tasty
+, tasty-hunit
+, text
+, time
+, tmp-postgres
+, transformers-base
+, unordered-containers
+, uuid
+, uuid-types
+, vector
+}:
+mkDerivation {
+  pname = "beam-postgres";
+  version = "0.5.3.0";
+  src = fetchgit {
+    url = "https://github.com/haskell-beam/beam";
+    sha256 = "05yvc8hw0b2f8dg8lz8w1a2y90pwi10iwqa0b2xjhrlacwi0fci9";
+    rev = "94461937c5ca8b89f1ff1a60bde5bffe207315b4";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/beam-postgres/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    attoparsec
+    base
+    beam-core
+    beam-migrate
+    bytestring
+    case-insensitive
+    conduit
+    free
+    hashable
+    haskell-src-exts
+    lifted-base
+    monad-control
+    mtl
+    network-uri
+    postgresql-libpq
+    postgresql-simple
+    scientific
+    tagged
+    text
+    time
+    transformers-base
+    unordered-containers
+    uuid-types
+    vector
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    beam-core
+    beam-migrate
+    bytestring
+    hedgehog
+    postgresql-simple
+    tasty
+    tasty-hunit
+    text
+    tmp-postgres
+    uuid
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://haskell-beam.github.io/beam/user-guide/backends/beam-postgres";
+  description = "Connection layer between beam and postgres";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/beam-sqlite.nix b/pkgs/beam-sqlite.nix
new file mode 100644
index 0000000000000000000000000000000000000000..96553036b57e82af579d9b8fac8b8a57613569c3
--- /dev/null
+++ b/pkgs/beam-sqlite.nix
@@ -0,0 +1,81 @@
+{ mkDerivation
+, aeson
+, attoparsec
+, base
+, beam-core
+, beam-migrate
+, bytestring
+, dlist
+, fetchgit
+, free
+, hashable
+, lib
+, monad-control
+, mtl
+, network-uri
+, scientific
+, sqlite-simple
+, tasty
+, tasty-expected-failure
+, tasty-hunit
+, text
+, time
+, transformers-base
+, unix
+}:
+mkDerivation {
+  pname = "beam-sqlite";
+  version = "0.5.2.0";
+  src = fetchgit {
+    url = "https://github.com/haskell-beam/beam";
+    sha256 = "05yvc8hw0b2f8dg8lz8w1a2y90pwi10iwqa0b2xjhrlacwi0fci9";
+    rev = "94461937c5ca8b89f1ff1a60bde5bffe207315b4";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/beam-sqlite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    attoparsec
+    base
+    beam-core
+    beam-migrate
+    bytestring
+    dlist
+    free
+    hashable
+    monad-control
+    mtl
+    network-uri
+    scientific
+    sqlite-simple
+    text
+    time
+    transformers-base
+    unix
+  ];
+  testHaskellDepends = [
+    base
+    beam-core
+    beam-migrate
+    sqlite-simple
+    tasty
+    tasty-expected-failure
+    tasty-hunit
+    text
+    time
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://haskell-beam.github.io/beam/user-guide/backends/beam-sqlite/";
+  description = "Beam driver for SQLite";
+  license = lib.licenses.mit;
+  broken = false;
+}