diff --git a/subprojects/nemora-postd/meson.build b/subprojects/nemora-postd/meson.build
index b1c8921..21f8421 100644
--- a/subprojects/nemora-postd/meson.build
+++ b/subprojects/nemora-postd/meson.build
@@ -28,7 +28,6 @@
 sdbusplus = dependency('sdbusplus')
 threads = dependency('threads')
 logging = dependency('phosphor-logging')
-fmt = declare_dependency(compile_args: '-DFMT_STRING_ALIAS=1', dependencies: dependency('fmt'))
 
 protoc = find_program('protoc', native: true)
 
@@ -55,7 +54,7 @@
   'src/serializer.cpp',
   proto,
   include_directories: include_directories('.'),
-  dependencies: [protobuf, phosphor_dbus_interfaces, sdbusplus, threads, logging, fmt],
+  dependencies: [protobuf, phosphor_dbus_interfaces, sdbusplus, threads, logging],
   install: true
 )
 
diff --git a/subprojects/nemora-postd/nemorad.cpp b/subprojects/nemora-postd/nemorad.cpp
index 33a034a..0ad8010 100644
--- a/subprojects/nemora-postd/nemorad.cpp
+++ b/subprojects/nemora-postd/nemorad.cpp
@@ -18,21 +18,18 @@
 #include "src/nemora.hpp"
 
 #include <arpa/inet.h>
-#include <fmt/format.h>
 
 #include <CLI/CLI.hpp>
 #include <phosphor-logging/log.hpp>
 
 #include <csignal>
 #include <cstdint>
-#include <iostream>
 #include <regex>
 #include <string>
 #include <thread>
 #include <unordered_map>
 #include <vector>
 
-using fmt::format;
 using phosphor::logging::level;
 using phosphor::logging::log;
 
diff --git a/subprojects/nemora-postd/src/host_manager.cpp b/subprojects/nemora-postd/src/host_manager.cpp
index eb0a2b9..b771146 100644
--- a/subprojects/nemora-postd/src/host_manager.cpp
+++ b/subprojects/nemora-postd/src/host_manager.cpp
@@ -14,17 +14,14 @@
 
 #include "host_manager.hpp"
 
-#include <fmt/format.h>
-
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/message.hpp>
 
+#include <format>
 #include <functional>
-#include <iostream>
 #include <variant>
 
-using fmt::format;
 using phosphor::logging::level;
 using phosphor::logging::log;
 
@@ -79,7 +76,7 @@
     auto count = postcodes_.size();
     if (count > 0)
     {
-        std::string msg = format("Draining Postcodes. Count: {}.", count);
+        std::string msg = std::format("Draining Postcodes. Count: {}.", count);
         log<level::ERR>(msg.c_str());
     }
 
diff --git a/subprojects/nemora-postd/src/serializer.cpp b/subprojects/nemora-postd/src/serializer.cpp
index 69324d9..f87d6d2 100644
--- a/subprojects/nemora-postd/src/serializer.cpp
+++ b/subprojects/nemora-postd/src/serializer.cpp
@@ -16,11 +16,10 @@
 
 #include "event_message.pb.h"
 
-#include <fmt/format.h>
-
 #include <phosphor-logging/log.hpp>
 
-using fmt::format;
+#include <format>
+
 using phosphor::logging::level;
 using phosphor::logging::log;
 
@@ -34,9 +33,9 @@
             break;
         default:
             log<level::ERR>(
-                format("Type with ID {} not supported by "
-                       "Serializer::Serialize(const NemoraDatagram*)",
-                       static_cast<int>(dgram->type))
+                std::format("Type with ID {} not supported by "
+                            "Serializer::Serialize(const NemoraDatagram*)",
+                            static_cast<int>(dgram->type))
                     .c_str());
     }
 
@@ -64,7 +63,7 @@
         platforms::nemora::proto::EventSeries::NATIVE_32_BIT);
 
     log<level::INFO>(
-        format("NemoraEvent {}", pb.DebugString().c_str()).c_str());
+        std::format("NemoraEvent {}", pb.DebugString().c_str()).c_str());
     pb.SerializeToString(&result);
     return result;
 }
diff --git a/subprojects/nemora-postd/src/socket_manager.cpp b/subprojects/nemora-postd/src/socket_manager.cpp
index 13f3269..884e1d6 100644
--- a/subprojects/nemora-postd/src/socket_manager.cpp
+++ b/subprojects/nemora-postd/src/socket_manager.cpp
@@ -17,15 +17,14 @@
 #include "serializer.hpp"
 
 #include <errno.h>
-#include <fmt/format.h>
 #include <sys/socket.h>
 #include <unistd.h>
 
 #include <phosphor-logging/log.hpp>
 
 #include <cstring>
+#include <format>
 
-using fmt::format;
 using phosphor::logging::level;
 using phosphor::logging::log;
 
@@ -59,10 +58,11 @@
                       sizeof(bcast->destination6));
     if (err < 0)
     {
-        log<level::ERR>(format("SocketManager::SendDatagram: Couldn't sendto "
-                               "socket (IPv6): {}",
-                               std::strerror(errno))
-                            .c_str());
+        log<level::ERR>(
+            std::format("SocketManager::SendDatagram: Couldn't sendto "
+                        "socket (IPv6): {}",
+                        std::strerror(errno))
+                .c_str());
     }
 
     // Send serialized data (v4)
@@ -71,10 +71,11 @@
                  sizeof(bcast->destination));
     if (err < 0)
     {
-        log<level::ERR>(format("SocketManager::SendDatagram: Couldn't sendto "
-                               "socket (IPv4): {}",
-                               std::strerror(errno))
-                            .c_str());
+        log<level::ERR>(
+            std::format("SocketManager::SendDatagram: Couldn't sendto "
+                        "socket (IPv4): {}",
+                        std::strerror(errno))
+                .c_str());
     }
 
     CloseSocketSafely(fd);
