{
  stdenv,
  lib,
  hugo,
  go,
  sbcl,
  sbclPackages,
  makeWrapper,
  openssl
}:

let
  sbcl' = sbcl.withPackages (ps: with ps; [
    deploy
    hunchentoot
    dexador
    clack
    jzon
    serapeum
    openssl
    openssl.out
    openssl.dev
  ]);
in
sbcl.buildASDFSystem {
  name = "tfcconnection";
  pname = "tfcconnection";
  version = "0.0.1";

  src = ./.;

  nativeBuildInputs = [
    makeWrapper
  ];

  buildInputs = [
    hugo
    go
    sbcl'
    openssl
    openssl.out
    openssl.dev
  ];

  nativeLibs = [
    openssl
    openssl.out
    openssl.dev
  ];

  lispLibs = with sbclPackages; [
    hunchentoot
    dexador
    clack
    jzon
    serapeum
  ];

  buildPhase = ''
  export HOME=$(pwd)
  ${sbcl'}/bin/sbcl --load build.lisp
  '';

  installPhase = ''
  mkdir -p $out/bin
  cp tfcapi $out/bin
  wrapProgram $out/bin/tfcapi \
    --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH \
  '';

  meta = with lib; {
    name = "tfcconnection";
    description = "TFC Connection Website";
    homepage = "https://tfcconnection.org";
    license = licenses.gpl3;
    maintainers = [ "chriscochrun" ];
    platforms = platforms.all;
  };
}