         |> Map.new()
         |> Project.new()
 
-      GlobalBindings.put(:site, %{
-        name: proj.site_name,
-        description: proj.site_description,
-        author: proj.author,
-        author_email: proj.author_email,
-        server_root: proj.server_root,
-        base_url: proj.base_url
-      })
-
-      {:ok, %Project{proj | src: src, dest: dest}}
+      {:ok, proj}
     else
       # From File.read/1:
       {:error, reason} when is_atom(reason) ->

    end
  end

  @spec load_exs(binary(), binary()) :: Result.t(Project.t())
  defp load_exs(src, dest) do
  end
end


  alias Serum.GlobalBindings
  alias Serum.Project
  alias Serum.ProjectValidator
  alias Serum.Result
  alias Serum.Validation

  @spec load(binary(), binary()) :: Result.t(Project.t())
  def load(src, dest) do
    case do_load(src) do
      {:ok, proj} ->
        GlobalBindings.put(:site, %{
          name: proj.site_name,
          description: proj.site_description,
          author: proj.author,
          author_email: proj.author_email,
          server_root: proj.server_root,
          base_url: proj.base_url
        })

        {:ok, %Project{proj | src: src, dest: dest}}

      {:error, _} = error ->
        error
    end
  end

  @spec do_load(binary()) :: Result.t(Project.t())
  defp do_load(src) do
    cond do
      File.exists?(Path.join(src, "serum.exs")) -> load_exs(src)
      File.exists?(Path.join(src, "serum.json")) -> load_json(src)
      :else -> {:error, {:enoent, Path.join(src, "serum.exs"), 0}}
    end
  end

  @spec load_json(binary()) :: Result.t(Project.t())
  defp load_json(src) do
    path = Path.join(src, "serum.json")

    with {:ok, data} <- File.read(path),
