diff --git a/keyboards/jd45/keymaps/vial/README.md b/keyboards/jd45/keymaps/vial/README.md
new file mode 100644
index 0000000000..9655c591b4
--- /dev/null
+++ b/keyboards/jd45/keymaps/vial/README.md
@@ -0,0 +1,11 @@
+## Description
+
+This keymap adds support for [Vial](https://get.vial.today) to the JD45.
+
+## Caveats 
+
+This firmware has only been tested on the [Phoenix 45](https://p3dstore.com/products/phoenix-pcb-only) PCB, which is a drop-in replacement for the original JD45 PCB. The Phoenix 45 uses the JD45 QMK config. Some of the configurations may not be supported on the JD45.
+
+## TODO
+* Add support for rotary encoders
+* Create a more robust starting keymap
\ No newline at end of file
diff --git a/keyboards/jd45/keymaps/vial/config.h b/keyboards/jd45/keymaps/vial/config.h
new file mode 100644
index 0000000000..59b4dfb7b7
--- /dev/null
+++ b/keyboards/jd45/keymaps/vial/config.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#pragma once
+
+#define VIAL_KEYBOARD_UID {0xCA, 0x2B, 0x14, 0x7A, 0x55, 0xF6, 0x51, 0xA9}
+#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
+#define VIAL_UNLOCK_COMBO_COLS { 0, 11 }
\ No newline at end of file
diff --git a/keyboards/jd45/keymaps/vial/keymap.c b/keyboards/jd45/keymaps/vial/keymap.c
new file mode 100644
index 0000000000..baad8226bf
--- /dev/null
+++ b/keyboards/jd45/keymaps/vial/keymap.c
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+#define _BASE 0
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_BASE] = LAYOUT(
+    KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC, KC_DEL,
+    KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,          KC_ENT,
+    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,
+    KC_LCTL, KC_LGUI, KC_LALT, KC_SPC,           KC_SPC,           KC_SPC,           KC_SPC, KC_RALT,   KC_RGUI, KC_RCTL
+  ),
+};
diff --git a/keyboards/jd45/keymaps/vial/rules.mk b/keyboards/jd45/keymaps/vial/rules.mk
new file mode 100644
index 0000000000..31d9ae490b
--- /dev/null
+++ b/keyboards/jd45/keymaps/vial/rules.mk
@@ -0,0 +1,6 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+LTO_ENABLE = yes
+BACKLIGHT_ENABLE = no
+MIDI_ENABLE = no
+QMK_SETTINGS = no
\ No newline at end of file
diff --git a/keyboards/jd45/keymaps/vial/vial.json b/keyboards/jd45/keymaps/vial/vial.json
new file mode 100644
index 0000000000..e00000d6ec
--- /dev/null
+++ b/keyboards/jd45/keymaps/vial/vial.json
@@ -0,0 +1,317 @@
+{
+    "lighting": "none",
+    "matrix": {
+        "rows": 4,
+        "cols": 13
+    },
+    "layouts": {
+        "labels": [
+            "Split Backspace",
+            [
+                "Bottom Row",
+                "1.75u + 1.75u Spacebar",
+                "6.25u Spacebar",
+                "6u Spacebar",
+                "2.25u + 1u + 2.75u Spacebar",
+                "1.75u + 1.75u Spacebar (HHKB)",
+                "6.25u Spacebar (HHKB)",
+                "6u Spacebar (HHKB)",
+                "2.25u + 1u + 2.75u Spacebar (HHKB)"
+            ]
+        ],
+        "keymap": [
+            [
+              "0,0",
+              "0,1",
+              "0,2",
+              "0,3",
+              "0,4",
+              "0,5",
+              "0,6",
+              "0,7",
+              "0,8",
+              "0,9",
+              "0,10",
+              {
+                "w": 2
+              },
+              "0,11\n\n\n0,0",
+              {
+                "x": 0.25
+              },
+              "0,11\n\n\n0,1",
+              "0,12\n\n\n0,1"
+            ],
+            [
+              {
+                "w": 1.25
+              },
+              "1,0",
+              "1,1",
+              "1,2",
+              "1,3",
+              "1,4",
+              "1,5",
+              "1,6",
+              "1,7",
+              "1,8",
+              "1,9",
+              "1,10",
+              {
+                "w": 1.75
+              },
+              "1,11"
+            ],
+            [
+              {
+                "w": 1.75
+              },
+              "2,0",
+              "2,1",
+              "2,2",
+              "2,3",
+              "2,4",
+              "2,5",
+              "2,6",
+              "2,7",
+              "2,8",
+              "2,9",
+              "2,10",
+              {
+                "w": 1.25
+              },
+              "2,11"
+            ],
+            [
+              {
+                "w": 1.25
+              },
+              "3,0\n\n\n1,0",
+              "3,1\n\n\n1,0",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,0",
+              {
+                "w": 1.25
+              },
+              "3,3\n\n\n1,0",
+              {
+                "w": 1.75
+              },
+              "3,4\n\n\n1,0",
+              {
+                "w": 1.75
+              },
+              "3,6\n\n\n1,0",
+              {
+                "w": 1.25
+              },
+              "3,8\n\n\n1,0",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,0",
+              "3,10\n\n\n1,0",
+              {
+                "w": 1.25
+              },
+              "3,11\n\n\n1,0"
+            ],
+            [
+              {
+                "y": 0.25,
+                "w": 1.25
+              },
+              "3,0\n\n\n1,1",
+              "3,1\n\n\n1,1",
+              "3,2\n\n\n1,1",
+              {
+                "w": 6.25
+              },
+              "3,6\n\n\n1,1",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,1",
+              "3,10\n\n\n1,1",
+              {
+                "w": 1.25
+              },
+              "3,11\n\n\n1,1"
+            ],
+            [
+              {
+                "w": 1.25
+              },
+              "3,0\n\n\n1,2",
+              "3,1\n\n\n1,2",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,2",
+              {
+                "w": 6
+              },
+              "3,6\n\n\n1,2",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,2",
+              "3,10\n\n\n1,2",
+              {
+                "w": 1.25
+              },
+              "3,11\n\n\n1,2"
+            ],
+            [
+              {
+                "w": 1.25
+              },
+              "3,0\n\n\n1,3",
+              "3,1\n\n\n1,3",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,3",
+              {
+                "w": 2.25
+              },
+              "3,3\n\n\n1,3",
+              "3,4\n\n\n1,3",
+              {
+                "w": 2.75
+              },
+              "3,6\n\n\n1,3",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,3",
+              "3,10\n\n\n1,3",
+              {
+                "w": 1.25
+              },
+              "3,11\n\n\n1,3"
+            ],
+            [
+              {
+                "y": 0.25,
+                "w": 1.25,
+                "d": true
+              },
+              "3,0\n\n\n1,4",
+              "3,1\n\n\n1,4",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,4",
+              {
+                "w": 1.25
+              },
+              "3,3\n\n\n1,4",
+              {
+                "w": 1.75
+              },
+              "3,4\n\n\n1,4",
+              {
+                "w": 1.75
+              },
+              "3,6\n\n\n1,4",
+              {
+                "w": 1.25
+              },
+              "3,8\n\n\n1,4",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,4",
+              "3,10\n\n\n1,4",
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,11\n\n\n1,4"
+            ],
+            [
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,0\n\n\n1,5",
+              "3,1\n\n\n1,5",
+              "3,2\n\n\n1,5",
+              {
+                "w": 6.25
+              },
+              "3,6\n\n\n1,5",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,5",
+              "3,10\n\n\n1,5",
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,11\n\n\n1,5"
+            ],
+            [
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,0\n\n\n1,6",
+              "3,1\n\n\n1,6",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,6",
+              {
+                "w": 6
+              },
+              "3,6\n\n\n1,6",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,6",
+              "3,10\n\n\n1,6",
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,11\n\n\n1,6"
+            ],
+            [
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,0\n\n\n1,7",
+              "3,1\n\n\n1,7",
+              {
+                "w": 1.25
+              },
+              "3,2\n\n\n1,7",
+              {
+                "w": 2.25
+              },
+              "3,3\n\n\n1,7",
+              "3,4\n\n\n1,7",
+              {
+                "w": 2.75
+              },
+              "3,6\n\n\n1,7",
+              {
+                "w": 1.25
+              },
+              "3,9\n\n\n1,7",
+              "3,10\n\n\n1,7",
+              {
+                "w": 1.25,
+                "d": true
+              },
+              "3,11\n\n\n1,7"
+            ]
+          ]
+    }
+}
\ No newline at end of file