diff --git a/lib/pleroma/web/preload/instance.ex b/lib/pleroma/web/preload/instance.ex
index 0b6fd33139bacec08fabbd5beb0ae4557b6ce021..50d1f3382fe66b7192a5ba0781d70ec8c95e3b31 100644
--- a/lib/pleroma/web/preload/instance.ex
+++ b/lib/pleroma/web/preload/instance.ex
@@ -3,14 +3,15 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Preload.Providers.Instance do
+  alias Pleroma.Plugs.InstanceStatic
   alias Pleroma.Web.MastodonAPI.InstanceView
   alias Pleroma.Web.Nodeinfo.Nodeinfo
   alias Pleroma.Web.Preload.Providers.Provider
 
   @behaviour Provider
-  @instance_url :"/api/v1/instance"
-  @panel_url :"/instance/panel.html"
-  @nodeinfo_url :"/nodeinfo/2.0"
+  @instance_url "/api/v1/instance"
+  @panel_url "/instance/panel.html"
+  @nodeinfo_url "/nodeinfo/2.0.json"
 
   @impl Provider
   def generate_terms(_params) do
@@ -27,7 +28,7 @@ defp build_info_tag(acc) do
   end
 
   defp build_panel_tag(acc) do
-    instance_path = Path.join(:code.priv_dir(:pleroma), "static/instance/panel.html")
+    instance_path = InstanceStatic.file_path(@panel_url |> to_string())
 
     if File.exists?(instance_path) do
       panel_data = File.read!(instance_path)
diff --git a/lib/pleroma/web/preload/status_net.ex b/lib/pleroma/web/preload/status_net.ex
index 367442d5c035cfc1aab19108ef7290d31ce10e6a..9b62f87a2da108f4a4d718d877fc6e5bbb2f326b 100644
--- a/lib/pleroma/web/preload/status_net.ex
+++ b/lib/pleroma/web/preload/status_net.ex
@@ -4,10 +4,10 @@
 
 defmodule Pleroma.Web.Preload.Providers.StatusNet do
   alias Pleroma.Web.Preload.Providers.Provider
-  alias Pleroma.Web.TwitterAPI.UtilView
+  alias Pleroma.Web.TwitterAPI.UtilController
 
   @behaviour Provider
-  @config_url :"/api/statusnet/config.json"
+  @config_url "/api/statusnet/config.json"
 
   @impl Provider
   def generate_terms(_params) do
@@ -16,9 +16,10 @@ def generate_terms(_params) do
   end
 
   defp build_config_tag(acc) do
-    instance = Pleroma.Config.get(:instance)
-    info_data = UtilView.status_net_config(instance)
+    resp =
+      Plug.Test.conn(:get, @config_url |> to_string())
+      |> UtilController.config(nil)
 
-    Map.put(acc, @config_url, info_data)
+    Map.put(acc, @config_url, resp.resp_body)
   end
 end
diff --git a/lib/pleroma/web/preload/timelines.ex b/lib/pleroma/web/preload/timelines.ex
index e531b8960e1bbf7e2663dd5363f8f88e2d7e4f06..57de0405104bcf7599260e9278b44aff7e36abff 100644
--- a/lib/pleroma/web/preload/timelines.ex
+++ b/lib/pleroma/web/preload/timelines.ex
@@ -8,7 +8,7 @@ defmodule Pleroma.Web.Preload.Providers.Timelines do
   alias Pleroma.Web.Preload.Providers.Provider
 
   @behaviour Provider
-  @public_url :"/api/v1/timelines/public"
+  @public_url "/api/v1/timelines/public"
 
   @impl Provider
   def generate_terms(params) do
diff --git a/lib/pleroma/web/preload/user.ex b/lib/pleroma/web/preload/user.ex
index 3a244845b499f0d9221815465eeafa0f32726240..b3d2e9b8dd25efa6f2d90e3fef4a6a7ec8c8a085 100644
--- a/lib/pleroma/web/preload/user.ex
+++ b/lib/pleroma/web/preload/user.ex
@@ -3,11 +3,12 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Preload.Providers.User do
+  alias Pleroma.User
   alias Pleroma.Web.MastodonAPI.AccountView
   alias Pleroma.Web.Preload.Providers.Provider
 
   @behaviour Provider
-  @account_url :"/api/v1/accounts"
+  @account_url_base "/api/v1/accounts"
 
   @impl Provider
   def generate_terms(%{user: user}) do
@@ -16,10 +17,10 @@ def generate_terms(%{user: user}) do
 
   def generate_terms(_params), do: %{}
 
-  def build_accounts_tag(acc, nil), do: acc
-
-  def build_accounts_tag(acc, user) do
+  def build_accounts_tag(acc, %User{} = user) do
     account_data = AccountView.render("show.json", %{user: user, for: user})
-    Map.put(acc, @account_url, account_data)
+    Map.put(acc, "#{@account_url_base}/#{user.id}", account_data)
   end
+
+  def build_accounts_tag(acc, _), do: acc
 end
diff --git a/test/fixtures/preload_static/instance/panel.html b/test/fixtures/preload_static/instance/panel.html
new file mode 100644
index 0000000000000000000000000000000000000000..fc58e4e933118097d51e1380d5fa71a09b7341cc
--- /dev/null
+++ b/test/fixtures/preload_static/instance/panel.html
@@ -0,0 +1 @@
+HEY!
diff --git a/test/web/preload/instance_test.exs b/test/web/preload/instance_test.exs
index 42a0d87bc67fa0ab7ca07c6075b948e4848b4de5..a46f2831248626a0340dfbe0865e3f7168701d6a 100644
--- a/test/web/preload/instance_test.exs
+++ b/test/web/preload/instance_test.exs
@@ -8,7 +8,7 @@ defmodule Pleroma.Web.Preload.Providers.InstanceTest do
 
   setup do: {:ok, Instance.generate_terms(nil)}
 
-  test "it renders the info", %{"/api/v1/instance": info} do
+  test "it renders the info", %{"/api/v1/instance" => info} do
     assert %{
              description: description,
              email: "admin@example.com",
@@ -18,14 +18,25 @@ test "it renders the info", %{"/api/v1/instance": info} do
     assert String.equivalent?(description, "Pleroma: An efficient and flexible fediverse server")
   end
 
-  test "it renders the panel", %{"/instance/panel.html": panel} do
+  test "it renders the panel", %{"/instance/panel.html" => panel} do
     assert String.contains?(
              panel,
              "<p>Welcome to <a href=\"https://pleroma.social\" target=\"_blank\">Pleroma!</a></p>"
            )
   end
 
-  test "it renders the node_info", %{"/nodeinfo/2.0": nodeinfo} do
+  test "it works with overrides" do
+    clear_config([:instance, :static_dir], "test/fixtures/preload_static")
+
+    %{"/instance/panel.html" => panel} = Instance.generate_terms(nil)
+
+    assert String.contains?(
+             panel,
+             "HEY!"
+           )
+  end
+
+  test "it renders the node_info", %{"/nodeinfo/2.0.json" => nodeinfo} do
     %{
       metadata: metadata,
       version: "2.0"
diff --git a/test/web/preload/status_net_test.exs b/test/web/preload/status_net_test.exs
index ab6823a7efc2b81ac653b4cec042333f3959f77b..df7acdb115936334888874cf88fa1ecd508d005e 100644
--- a/test/web/preload/status_net_test.exs
+++ b/test/web/preload/status_net_test.exs
@@ -8,7 +8,8 @@ defmodule Pleroma.Web.Preload.Providers.StatusNetTest do
 
   setup do: {:ok, StatusNet.generate_terms(nil)}
 
-  test "it renders the info", %{"/api/statusnet/config.json": info} do
-    assert info =~ "<name>Pleroma</name>"
+  test "it renders the info", %{"/api/statusnet/config.json" => info} do
+    assert {:ok, res} = Jason.decode(info)
+    assert res["site"]
   end
 end
diff --git a/test/web/preload/timeline_test.exs b/test/web/preload/timeline_test.exs
index da6a3aded001e05b6592c4808bfddb9b1de9c23b..fea95a6a465b44e4931dce899dde8a2a560e68d8 100644
--- a/test/web/preload/timeline_test.exs
+++ b/test/web/preload/timeline_test.exs
@@ -9,7 +9,7 @@ defmodule Pleroma.Web.Preload.Providers.TimelineTest do
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.Preload.Providers.Timelines
 
-  @public_url :"/api/v1/timelines/public"
+  @public_url "/api/v1/timelines/public"
 
   describe "unauthenticated timeliness when restricted" do
     setup do
diff --git a/test/web/preload/user_test.exs b/test/web/preload/user_test.exs
index 99232cdfa9fa7f3ecbdc6e636dee88d50c2c8528..83f065e27aaaa2382bddd9b1ec1036686f9fd6aa 100644
--- a/test/web/preload/user_test.exs
+++ b/test/web/preload/user_test.exs
@@ -9,13 +9,11 @@ defmodule Pleroma.Web.Preload.Providers.UserTest do
 
   describe "returns empty when user doesn't exist" do
     test "nil user specified" do
-      refute User.generate_terms(%{user: nil})
-             |> Map.has_key?("/api/v1/accounts")
+      assert User.generate_terms(%{user: nil}) == %{}
     end
 
     test "missing user specified" do
-      refute User.generate_terms(%{user: :not_a_user})
-             |> Map.has_key?("/api/v1/accounts")
+      assert User.generate_terms(%{user: :not_a_user}) == %{}
     end
   end
 
@@ -23,11 +21,13 @@ test "missing user specified" do
     setup do
       user = insert(:user)
 
-      {:ok, User.generate_terms(%{user: user})}
+      terms = User.generate_terms(%{user: user})
+      %{terms: terms, user: user}
     end
 
-    test "account is rendered", %{"/api/v1/accounts": accounts} do
-      assert %{acct: user, username: user} = accounts
+    test "account is rendered", %{terms: terms, user: user} do
+      account = terms["/api/v1/accounts/#{user.id}"]
+      assert %{acct: user, username: user} = account
     end
   end
 end