diff --git a/keyboards/neo/neo60/info.json b/keyboards/neo/neo60/info.json
new file mode 100644
index 0000000000..a006a00ed2
--- /dev/null
+++ b/keyboards/neo/neo60/info.json
@@ -0,0 +1,99 @@
+{
+ "keyboard_name": "NEO60",
+ "manufacturer":"NEO Studio",
+ "url": "",
+ "maintainer": "NEO Studio",
+ "usb": {
+ "vid": "0x4E45",
+ "pid": "0x3630",
+ "device_version": "0.0.1"
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8" ],
+ "rows": [ "A6", "A7", "B0", "B1", "B9" ]
+ },
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "C13",
+ "on_state": 1
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
+ "layouts": {
+ "LAYOUT_wired": {
+ "layout": [
+ {"matrix": [0, 0], "x":0, "y":0},
+ {"matrix": [0, 1], "x":1, "y":0},
+ {"matrix": [0, 2], "x":2, "y":0},
+ {"matrix": [0, 3], "x":3, "y":0},
+ {"matrix": [0, 4], "x":4, "y":0},
+ {"matrix": [0, 5], "x":5, "y":0},
+ {"matrix": [0, 6], "x":6, "y":0},
+ {"matrix": [0, 7], "x":7, "y":0},
+ {"matrix": [0, 8],"x":8, "y":0},
+ {"matrix": [0, 9], "x":9, "y":0},
+ {"matrix": [0, 10], "x":10, "y":0},
+ {"matrix": [0, 11], "x":11, "y":0},
+ {"matrix": [0, 12], "x":12, "y":0},
+ {"matrix": [0, 13], "x":13, "y":0},
+ {"matrix": [0, 14], "x":14, "y":0},
+ {"matrix": [1, 0], "x":0, "y":1, "w":1.5},
+ {"matrix": [1, 1], "x":1.5, "y":1},
+ {"matrix": [1, 2], "x":2.5, "y":1},
+ {"matrix": [1, 3], "x":3.5, "y":1},
+ {"matrix": [1, 4], "x":4.5, "y":1},
+ {"matrix": [1, 5], "x":5.5, "y":1},
+ {"matrix": [1, 6], "x":6.5, "y":1},
+ {"matrix": [1, 7], "x":7.5, "y":1},
+ {"matrix": [1, 8], "x":8.5, "y":1},
+ {"matrix": [1, 9], "x":9.5, "y":1},
+ {"matrix": [1, 10], "x":10.5, "y":1},
+ {"matrix": [1, 11], "x":11.5, "y":1},
+ {"matrix": [1, 12], "x":12.5, "y":1},
+ {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5},
+ {"matrix": [2, 0], "x":0, "y":2, "w":1.75},
+ {"matrix": [2, 1], "x":1.75, "y":2},
+ {"matrix": [2, 2], "x":2.75, "y":2},
+ {"matrix": [2, 3], "x":3.75, "y":2},
+ {"matrix": [2, 4], "x":4.75, "y":2},
+ {"matrix": [2, 5], "x":5.75, "y":2},
+ {"matrix": [2, 6], "x":6.75, "y":2},
+ {"matrix": [2, 7], "x":7.75, "y":2},
+ {"matrix": [2, 8], "x":8.75, "y":2},
+ {"matrix": [2, 9], "x":9.75, "y":2},
+ {"matrix": [2, 10], "x":10.75, "y":2},
+ {"matrix": [2, 11], "x":11.75, "y":2},
+ {"matrix": [2, 12], "x":12.75, "y":2},
+ {"matrix": [2, 13], "x":13.75, "y":2, "w":1.25},
+ {"matrix": [3, 0], "x":0, "y":3, "w":1.25},
+ {"matrix": [3, 1], "x":1.25, "y":3},
+ {"matrix": [3, 2], "x":2.25, "y":3},
+ {"matrix": [3, 3], "x":3.25, "y":3},
+ {"matrix": [3, 4], "x":4.25, "y":3},
+ {"matrix": [3, 5], "x":5.25, "y":3},
+ {"matrix": [3, 6], "x":6.25, "y":3},
+ {"matrix": [3, 7], "x":7.25, "y":3},
+ {"matrix": [3, 8], "x":8.25, "y":3},
+ {"matrix": [3, 9], "x":9.25, "y":3},
+ {"matrix": [3, 10], "x":10.25, "y":3},
+ {"matrix": [3, 11], "x":11.25, "y":3},
+ {"matrix": [3, 12], "x":12.25, "y":3, "w":1.75},
+ {"matrix": [3, 14], "x":14, "y":3},
+ {"matrix": [4, 0], "x":0, "y":4, "w":1.25},
+ {"matrix": [4, 1], "x":1.25, "y":4, "w":1.25},
+ {"matrix": [4, 2], "x":2.5, "y":4, "w":1.25},
+ {"matrix": [4, 6], "x":3.75, "y":4, "w":6.25},
+ {"matrix": [4, 11], "x":10, "y":4, "w":1.25},
+ {"matrix": [4, 12], "x":11.25, "y":4, "w":1.25},
+ {"matrix": [4, 13], "x":12.5, "y":4, "w":1.25},
+ {"matrix": [4, 14], "x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/default/keymap.c b/keyboards/neo/neo60/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f277a29052
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/default/keymap.c
@@ -0,0 +1,58 @@
+/*
+Copyright 2024 NEO
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include QMK_KEYBOARD_H
+#include "debounce.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_wired(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_wired(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_KB_11, QK_KB_12,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+
+ case QK_KB_11:
+ resetDebounce(5);
+ break;
+
+ case QK_KB_12:
+ resetDebounce(25);
+ break;
+
+ default:
+ break;
+ }
+ }
+ return true;
+}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/v3/neo60_v3.json b/keyboards/neo/neo60/keymaps/v3/neo60_v3.json
new file mode 100644
index 0000000000..c23cfd65f5
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/v3/neo60_v3.json
@@ -0,0 +1,231 @@
+{
+ "name": "NEO60",
+ "vendorId": "0x4E45",
+ "productId": "0x3630",
+ "matrix": {
+ "rows": 5,
+ "cols": 15
+ },
+ "keycodes": ["qmk_lighting"],
+ "customKeycodes": [
+ {"name": "5ms Debounce", "title": "5ms Debounce", "shortName": "5_debounce"},
+ {"name": "25ms Debounce", "title": "25ms Debounce", "shortName": "25_debounce"}
+ ],
+ "layouts": {
+ "labels": [
+ "Split Backspace",
+ "ISO enter",
+ "Split Left Shift",
+ "Split Right Shift",
+ [
+ "Bottom Row",
+ "6.25u",
+ "7u"
+ ]
+ ],
+ "keymap": [
+ [
+ {
+ "c":"#777777"
+ },
+ "0,0",
+ {
+ "c":"#cccccc"
+ },
+ "0,1",
+ "0,2",
+ "0,3",
+ "0,4",
+ "0,5",
+ "0,6",
+ "0,7",
+ "0,8",
+ "0,9",
+ "0,10",
+ "0,11",
+ "0,12",
+ {
+ "c":"#aaaaaa",
+ "w":2
+ },
+ "0,14\n\n\n0,0",
+ {
+ "c":"#cccccc"
+ },
+ "0,13\n\n\n0,1",
+ {
+ "c":"#aaaaaa"
+ },
+ "0,14\n\n\n0,1"
+ ],
+ [
+ {
+ "w":1.5
+ },
+ "1,0",
+ {
+ "c":"#cccccc"
+ },
+ "1,1",
+ "1,2",
+ "1,3",
+ "1,4",
+ "1,5",
+ "1,6",
+ "1,7",
+ "1,8",
+ "1,9",
+ "1,10",
+ "1,11",
+ "1,12",
+ {
+ "w":1.5
+ },
+ "1,13\n\n\n1,0",
+ {
+ "x": 1,
+ "w": 1.25,
+ "c": "#777777",
+ "h": 2,
+ "w2": 1.5,
+ "h2": 1,
+ "x2": -0.25
+ },
+ "2,13\n\n\n1,1"
+ ],
+ [
+ {
+ "w":1.75,
+ "c":"#aaaaaa"
+ },
+ "2,0",
+ {
+ "c":"#cccccc"
+ },
+ "2,1",
+ "2,2",
+ "2,3",
+ "2,4",
+ "2,5",
+ "2,6",
+ "2,7",
+ "2,8",
+ "2,9",
+ "2,10",
+ "2,11",
+ {
+ "c":"#777777",
+ "w":2.25
+ },
+ "2,13\n\n\n1,0",
+ {
+ "c":"#cccccc"
+ },
+ "2,12\n\n\n1,1"
+ ],
+ [
+ {
+ "x":-2.25,
+ "w":1.25,
+ "c": "#aaaaaa"
+ },
+ "3,0\n\n\n2,1",
+ {
+ "c": "#cccccc"
+ },
+ "3,1\n\n\n2,1",
+ {
+ "w":2.25,
+ "c":"#aaaaaa"
+ },
+ "3,0\n\n\n2,0",
+ {
+ "c":"#cccccc"
+ },
+
+ "3,2",
+ "3,3",
+ "3,4",
+ "3,5",
+ "3,6",
+ "3,7",
+ "3,8",
+ "3,9",
+ "3,10",
+ "3,11",
+ {
+ "c":"#aaaaaa",
+ "w":2.75
+ },
+ "3,12\n\n\n3,0",
+ {
+ "w":1.75
+ },
+ "3,12\n\n\n3,1",
+ "3,14\n\n\n3,1"
+ ],
+ [
+ {
+ "w":1.25
+ },
+ "4,0\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,1\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,2\n\n\n4,0",
+ {
+ "c":"#cccccc",
+ "w":6.25
+ },
+ "4,6\n\n\n4,0",
+ {
+ "c":"#aaaaaa",
+ "w":1.25
+ },
+ "4,11\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,12\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,13\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,14\n\n\n4,0"
+ ],
+ [
+ {
+ "w":1.5
+ },
+ "4,0\n\n\n4,1",
+ "4,1\n\n\n4,1",
+ {
+ "w":1.5
+ },
+ "4,2\n\n\n4,1",
+ {
+ "c":"#cccccc",
+ "w":7
+ },
+ "4,6\n\n\n4,1",
+ {
+ "c":"#aaaaaa",
+ "w":1.5
+ },
+ "4,12\n\n\n4,1",
+ "4,13\n\n\n4,1",
+ {
+ "w":1.5
+ },
+ "4,14\n\n\n4,1"
+ ]
+ ]
+ }
+}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/via/keymap.c b/keyboards/neo/neo60/keymaps/via/keymap.c
new file mode 100644
index 0000000000..f277a29052
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/via/keymap.c
@@ -0,0 +1,58 @@
+/*
+Copyright 2024 NEO
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include QMK_KEYBOARD_H
+#include "debounce.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_wired(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_wired(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_KB_11, QK_KB_12,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+
+ case QK_KB_11:
+ resetDebounce(5);
+ break;
+
+ case QK_KB_12:
+ resetDebounce(25);
+ break;
+
+ default:
+ break;
+ }
+ }
+ return true;
+}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/via/rules.mk b/keyboards/neo/neo60/keymaps/via/rules.mk
new file mode 100644
index 0000000000..43061db1dd
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/vial/config.h b/keyboards/neo/neo60/keymaps/vial/config.h
new file mode 100644
index 0000000000..90fa7b4927
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/vial/config.h
@@ -0,0 +1,5 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#pragma once
+
+#define VIAL_KEYBOARD_UID {0xF9, 0xE5, 0xC6, 0x95, 0x61, 0xEA, 0x61, 0xFC}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/vial/keymap.c b/keyboards/neo/neo60/keymaps/vial/keymap.c
new file mode 100644
index 0000000000..b327d365fb
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/vial/keymap.c
@@ -0,0 +1,58 @@
+/*
+Copyright 2024 NEO
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include QMK_KEYBOARD_H
+#include "debounce.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_wired(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_wired(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_KB_11, QK_KB_12,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+
+// bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+// if (record->event.pressed) {
+// switch(keycode) {
+
+// case QK_KB_11:
+// resetDebounce(5);
+// break;
+
+// case QK_KB_12:
+// resetDebounce(25);
+// break;
+
+// default:
+// break;
+// }
+// }
+// return true;
+// }
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/vial/rules.mk b/keyboards/neo/neo60/keymaps/vial/rules.mk
new file mode 100644
index 0000000000..25c89842b8
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/vial/rules.mk
@@ -0,0 +1,5 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+LTO_ENABLE = yes
+
+VIAL_INSECURE = yes
\ No newline at end of file
diff --git a/keyboards/neo/neo60/keymaps/vial/vial.json b/keyboards/neo/neo60/keymaps/vial/vial.json
new file mode 100644
index 0000000000..c23cfd65f5
--- /dev/null
+++ b/keyboards/neo/neo60/keymaps/vial/vial.json
@@ -0,0 +1,231 @@
+{
+ "name": "NEO60",
+ "vendorId": "0x4E45",
+ "productId": "0x3630",
+ "matrix": {
+ "rows": 5,
+ "cols": 15
+ },
+ "keycodes": ["qmk_lighting"],
+ "customKeycodes": [
+ {"name": "5ms Debounce", "title": "5ms Debounce", "shortName": "5_debounce"},
+ {"name": "25ms Debounce", "title": "25ms Debounce", "shortName": "25_debounce"}
+ ],
+ "layouts": {
+ "labels": [
+ "Split Backspace",
+ "ISO enter",
+ "Split Left Shift",
+ "Split Right Shift",
+ [
+ "Bottom Row",
+ "6.25u",
+ "7u"
+ ]
+ ],
+ "keymap": [
+ [
+ {
+ "c":"#777777"
+ },
+ "0,0",
+ {
+ "c":"#cccccc"
+ },
+ "0,1",
+ "0,2",
+ "0,3",
+ "0,4",
+ "0,5",
+ "0,6",
+ "0,7",
+ "0,8",
+ "0,9",
+ "0,10",
+ "0,11",
+ "0,12",
+ {
+ "c":"#aaaaaa",
+ "w":2
+ },
+ "0,14\n\n\n0,0",
+ {
+ "c":"#cccccc"
+ },
+ "0,13\n\n\n0,1",
+ {
+ "c":"#aaaaaa"
+ },
+ "0,14\n\n\n0,1"
+ ],
+ [
+ {
+ "w":1.5
+ },
+ "1,0",
+ {
+ "c":"#cccccc"
+ },
+ "1,1",
+ "1,2",
+ "1,3",
+ "1,4",
+ "1,5",
+ "1,6",
+ "1,7",
+ "1,8",
+ "1,9",
+ "1,10",
+ "1,11",
+ "1,12",
+ {
+ "w":1.5
+ },
+ "1,13\n\n\n1,0",
+ {
+ "x": 1,
+ "w": 1.25,
+ "c": "#777777",
+ "h": 2,
+ "w2": 1.5,
+ "h2": 1,
+ "x2": -0.25
+ },
+ "2,13\n\n\n1,1"
+ ],
+ [
+ {
+ "w":1.75,
+ "c":"#aaaaaa"
+ },
+ "2,0",
+ {
+ "c":"#cccccc"
+ },
+ "2,1",
+ "2,2",
+ "2,3",
+ "2,4",
+ "2,5",
+ "2,6",
+ "2,7",
+ "2,8",
+ "2,9",
+ "2,10",
+ "2,11",
+ {
+ "c":"#777777",
+ "w":2.25
+ },
+ "2,13\n\n\n1,0",
+ {
+ "c":"#cccccc"
+ },
+ "2,12\n\n\n1,1"
+ ],
+ [
+ {
+ "x":-2.25,
+ "w":1.25,
+ "c": "#aaaaaa"
+ },
+ "3,0\n\n\n2,1",
+ {
+ "c": "#cccccc"
+ },
+ "3,1\n\n\n2,1",
+ {
+ "w":2.25,
+ "c":"#aaaaaa"
+ },
+ "3,0\n\n\n2,0",
+ {
+ "c":"#cccccc"
+ },
+
+ "3,2",
+ "3,3",
+ "3,4",
+ "3,5",
+ "3,6",
+ "3,7",
+ "3,8",
+ "3,9",
+ "3,10",
+ "3,11",
+ {
+ "c":"#aaaaaa",
+ "w":2.75
+ },
+ "3,12\n\n\n3,0",
+ {
+ "w":1.75
+ },
+ "3,12\n\n\n3,1",
+ "3,14\n\n\n3,1"
+ ],
+ [
+ {
+ "w":1.25
+ },
+ "4,0\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,1\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,2\n\n\n4,0",
+ {
+ "c":"#cccccc",
+ "w":6.25
+ },
+ "4,6\n\n\n4,0",
+ {
+ "c":"#aaaaaa",
+ "w":1.25
+ },
+ "4,11\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,12\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,13\n\n\n4,0",
+ {
+ "w":1.25
+ },
+ "4,14\n\n\n4,0"
+ ],
+ [
+ {
+ "w":1.5
+ },
+ "4,0\n\n\n4,1",
+ "4,1\n\n\n4,1",
+ {
+ "w":1.5
+ },
+ "4,2\n\n\n4,1",
+ {
+ "c":"#cccccc",
+ "w":7
+ },
+ "4,6\n\n\n4,1",
+ {
+ "c":"#aaaaaa",
+ "w":1.5
+ },
+ "4,12\n\n\n4,1",
+ "4,13\n\n\n4,1",
+ {
+ "w":1.5
+ },
+ "4,14\n\n\n4,1"
+ ]
+ ]
+ }
+}
\ No newline at end of file
diff --git a/keyboards/neo/neo60/readme.md b/keyboards/neo/neo60/readme.md
new file mode 100644
index 0000000000..ed057b5508
--- /dev/null
+++ b/keyboards/neo/neo60/readme.md
@@ -0,0 +1,21 @@
+# NEO60 - PCB
+
+
+
+A 60% made by NEO Studio.
+
+* Keyboard Maintainer: [NEO Studio](https://github.com/owlab-git)
+* Hardware Supported: neo60 PCB
+* Hardware Availability: IC: https://qwertykeys.notion.site/Neo-65-6c8ae7895ec442dea809057c3dc5e113
+
+Make example for this keyboard (after setting up your build environment):
+
+ make neo/neo60:default
+
+Flashing example for this keyboard:
+
+ make neo/neo60:default:flash
+
+**Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board.
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/neo/neo60/rules.mk b/keyboards/neo/neo60/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/neo/neo60/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
\ No newline at end of file