diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index ddc8b262e265569974cf9973cd46c2610b1be286..1ba0a698d64cdcb51dac4f62981cc22478a763d7 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -6,12 +6,12 @@
 
 #include "common/scm_rev.h"
 #include "core/telemetry_session.h"
+#include "web_services/telemetry_json.h"
 
 namespace Core {
 
 TelemetrySession::TelemetrySession() {
-    // TODO(bunnei): Replace with a backend that logs to our web service
-    backend = std::make_unique<Telemetry::NullVisitor>();
+    backend = std::make_unique<WebService::TelemetryJson>();
 
     // Log one-time session start information
     const auto duration{std::chrono::steady_clock::now().time_since_epoch()};
diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp
index c61522ff1dac194279282e8b404bc63bc41393f1..a2d007e77975de7c7ebc792f5f3cc9e0cb66d375 100644
--- a/src/web_service/telemetry_json.cpp
+++ b/src/web_service/telemetry_json.cpp
@@ -9,8 +9,6 @@
 
 namespace WebService {
 
-TelemetryJson::TelemetryJson() {}
-
 template <class T>
 void TelemetryJson::Serialize(Telemetry::FieldType type, const std::string& name, T value) {
     sections[static_cast<u8>(type)][name] = value;
diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h
index cc511cdd1b1eaa937782e94a942b5c64656f0d28..39038b4f9ceadad24619fb683622648871f515e5 100644
--- a/src/web_service/telemetry_json.h
+++ b/src/web_service/telemetry_json.h
@@ -17,7 +17,7 @@ namespace WebService {
  */
 class TelemetryJson : public Telemetry::VisitorInterface {
 public:
-    TelemetryJson();
+    TelemetryJson() = default;
     ~TelemetryJson() = default;
 
     void Visit(const Telemetry::Field<bool>& field) override;