diff --git a/src/database/entities/january.rs b/src/database/entities/january.rs
index cb6f9ffb54a7d3953c501a4f3b340849cf5d737b..7c3c6182902996d96c18ea08aa378957ecc6fddd 100644
--- a/src/database/entities/january.rs
+++ b/src/database/entities/january.rs
@@ -107,9 +107,8 @@ impl Embed {
 
                 v
             })
-            // This will also remove newlines, but
-            // that isn't important here.
-            .collect::<String>();
+            .collect::<Vec<&str>>()
+            .join("\n");
 
         // ! FIXME: allow multiple links
         // ! FIXME: prevent generation if link is surrounded with < >
diff --git a/src/database/entities/message.rs b/src/database/entities/message.rs
index cca5b28eeed9f04b2bfea24356864175c959aa64..04238edc99dc0e1836b8d6cb38b0faf74c60bd8a 100644
--- a/src/database/entities/message.rs
+++ b/src/database/entities/message.rs
@@ -1,4 +1,4 @@
-use crate::util::variables::VAPID_PRIVATE_KEY;
+use crate::util::variables::{VAPID_PRIVATE_KEY, USE_JANUARY};
 use crate::{
     database::*,
     notifications::{events::ClientboundNotification, websocket::is_online},
@@ -231,6 +231,10 @@ impl Message {
     }
 
     pub fn process_embed(&self) {
+        if !*USE_JANUARY {
+            return;
+        }
+
         if let Content::Text(text) = &self.content {
             let id = self.id.clone();
             let content = text.clone();
diff --git a/src/routes/root.rs b/src/routes/root.rs
index 9ca42d67cb81da6dc958b35a8f88d80be7da28e7..d14ff388e42b167160cd7b5305275cbfc43ecb5d 100644
--- a/src/routes/root.rs
+++ b/src/routes/root.rs
@@ -1,6 +1,6 @@
 use crate::util::variables::{
-    APP_URL, AUTUMN_URL, DISABLE_REGISTRATION, EXTERNAL_WS_URL, HCAPTCHA_SITEKEY, INVITE_ONLY,
-    USE_AUTUMN, USE_EMAIL, USE_HCAPTCHA, USE_VOSO, VAPID_PUBLIC_KEY, VOSO_URL, VOSO_WS_HOST,
+    APP_URL, JANUARY_URL, AUTUMN_URL, DISABLE_REGISTRATION, EXTERNAL_WS_URL, HCAPTCHA_SITEKEY, INVITE_ONLY,
+    USE_AUTUMN, USE_JANUARY, USE_EMAIL, USE_HCAPTCHA, USE_VOSO, VAPID_PUBLIC_KEY, VOSO_URL, VOSO_WS_HOST,
 };
 
 use mongodb::bson::doc;
@@ -22,6 +22,10 @@ pub async fn root() -> JsonValue {
                 "enabled": *USE_AUTUMN,
                 "url": *AUTUMN_URL
             },
+            "january": {
+                "enabled": *USE_JANUARY,
+                "url": *JANUARY_URL
+            },
             "voso": {
                 "enabled": *USE_VOSO,
                 "url": *VOSO_URL,
diff --git a/src/util/variables.rs b/src/util/variables.rs
index 1bd71e9461cd403507e293b66256468dea8ea617..788bb94ffc5979505379ea4cd67da1ed6f316e39 100644
--- a/src/util/variables.rs
+++ b/src/util/variables.rs
@@ -49,6 +49,7 @@ lazy_static! {
     pub static ref USE_HCAPTCHA: bool = env::var("REVOLT_HCAPTCHA_KEY").is_ok();
     pub static ref USE_PROMETHEUS: bool = env::var("REVOLT_ENABLE_PROMETHEUS").map_or(false, |v| v == "1");
     pub static ref USE_AUTUMN: bool = env::var("AUTUMN_PUBLIC_URL").is_ok();
+    pub static ref USE_JANUARY: bool = env::var("JANUARY_PUBLIC_URL").is_ok();
     pub static ref USE_VOSO: bool = env::var("VOSO_PUBLIC_URL").is_ok() && env::var("VOSO_MANAGE_TOKEN").is_ok();
 
     // SMTP Settings