diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h
deleted file mode 100755
index 36a3485b9563..000000000000
--- a/keyboards/contra/config.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { F6, B3, B2, B6 }
-#define MATRIX_COL_PINS { F4, F5, B5, B4, E6, D7, C6, D4, D0, D1, D2, D3 }
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/contra/contra.c b/keyboards/contra/contra.c
deleted file mode 100755
index 3ef66a9c0d5e..000000000000
--- a/keyboards/contra/contra.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "contra.h"
diff --git a/keyboards/contra/contra.h b/keyboards/contra/contra.h
deleted file mode 100755
index 27a8dd2956f5..000000000000
--- a/keyboards/contra/contra.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_4x12( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B } \
-}
-
-#define LAYOUT_planck_mit( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31, k32, k33, k34,   k35,    k37, k38, k39, k3A, k3B \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3A, k3B } \
-}
diff --git a/keyboards/contra/info.json b/keyboards/contra/info.json
index ce1c9a86dcdb..78aefb1dbfbc 100644
--- a/keyboards/contra/info.json
+++ b/keyboards/contra/info.json
@@ -3,6 +3,12 @@
   "manufacturer": "Cartel",
   "url": "",
   "maintainer": "qmk",
+  "features": {
+    "bootmagic": true,
+    "extrakey": true,
+    "mousekey": true,
+    "nkro": true
+  },
   "usb": {
     "vid": "0x4354",
     "pid": "0x0001",
@@ -10,14 +16,122 @@
   },
   "processor": "atmega32u4",
   "bootloader": "caterina",
+  "diode_direction": "COL2ROW",
+  "matrix_pins": {
+    "cols": ["F4", "F5", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"],
+    "rows": ["F6", "B3", "B2", "B6"]
+  },
   "community_layouts": ["planck_mit", "ortho_4x12"],
   "layouts": {
     "LAYOUT_ortho_4x12": {
-      "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}]
+      "layout": [
+        {"label":"Tab", "matrix": [0, 0], "x":0, "y":0},
+        {"label":"Q", "matrix": [0, 1], "x":1, "y":0},
+        {"label":"W", "matrix": [0, 2], "x":2, "y":0},
+        {"label":"E", "matrix": [0, 3], "x":3, "y":0},
+        {"label":"R", "matrix": [0, 4], "x":4, "y":0},
+        {"label":"T", "matrix": [0, 5], "x":5, "y":0},
+        {"label":"Y", "matrix": [0, 6], "x":6, "y":0},
+        {"label":"U", "matrix": [0, 7], "x":7, "y":0},
+        {"label":"I", "matrix": [0, 8], "x":8, "y":0},
+        {"label":"O", "matrix": [0, 9], "x":9, "y":0},
+        {"label":"P", "matrix": [0, 10], "x":10, "y":0},
+        {"label":"BackSpace", "matrix": [0, 11], "x":11, "y":0},
+
+        {"label":"Esc", "matrix": [1, 0], "x":0, "y":1},
+        {"label":"A", "matrix": [1, 1], "x":1, "y":1},
+        {"label":"S", "matrix": [1, 2], "x":2, "y":1},
+        {"label":"D", "matrix": [1, 3], "x":3, "y":1},
+        {"label":"F", "matrix": [1, 4], "x":4, "y":1},
+        {"label":"G", "matrix": [1, 5], "x":5, "y":1},
+        {"label":"H", "matrix": [1, 6], "x":6, "y":1},
+        {"label":"J", "matrix": [1, 7], "x":7, "y":1},
+        {"label":"K", "matrix": [1, 8], "x":8, "y":1},
+        {"label":"L", "matrix": [1, 9], "x":9, "y":1},
+        {"label":";", "matrix": [1, 10], "x":10, "y":1},
+        {"label":"'", "matrix": [1, 11], "x":11, "y":1},
+
+        {"label":"Shift", "matrix": [2, 0], "x":0, "y":2},
+        {"label":"Z", "matrix": [2, 1], "x":1, "y":2},
+        {"label":"X", "matrix": [2, 2], "x":2, "y":2},
+        {"label":"C", "matrix": [2, 3], "x":3, "y":2},
+        {"label":"V", "matrix": [2, 4], "x":4, "y":2},
+        {"label":"B", "matrix": [2, 5], "x":5, "y":2},
+        {"label":"N", "matrix": [2, 6], "x":6, "y":2},
+        {"label":"M", "matrix": [2, 7], "x":7, "y":2},
+        {"label":",", "matrix": [2, 8], "x":8, "y":2},
+        {"label":".", "matrix": [2, 9], "x":9, "y":2},
+        {"label":"/", "matrix": [2, 10], "x":10, "y":2},
+        {"label":"Return", "matrix": [2, 11], "x":11, "y":2},
+
+        {"matrix": [3, 0], "x":0, "y":3},
+        {"label":"Ctrl", "matrix": [3, 1], "x":1, "y":3},
+        {"label":"Alt", "matrix": [3, 2], "x":2, "y":3},
+        {"label":"Super", "matrix": [3, 3], "x":3, "y":3},
+        {"label":"⇓", "matrix": [3, 4], "x":4, "y":3},
+        {"matrix": [3, 5], "x":5, "y":3},
+        {"matrix": [3, 6], "x":6, "y":3},
+        {"label":"⇑", "matrix": [3, 7], "x":7, "y":3},
+        {"label":"←", "matrix": [3, 8], "x":8, "y":3},
+        {"label":"↓", "matrix": [3, 9], "x":9, "y":3},
+        {"label":"↑", "matrix": [3, 10], "x":10, "y":3},
+        {"label":"→", "matrix": [3, 11], "x":11, "y":3}
+      ]
     },
 
     "LAYOUT_planck_mit": {
-      "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}]
+      "layout": [
+        {"label":"Tab", "matrix": [0, 0], "x":0, "y":0},
+        {"label":"Q", "matrix": [0, 1], "x":1, "y":0},
+        {"label":"W", "matrix": [0, 2], "x":2, "y":0},
+        {"label":"E", "matrix": [0, 3], "x":3, "y":0},
+        {"label":"R", "matrix": [0, 4], "x":4, "y":0},
+        {"label":"T", "matrix": [0, 5], "x":5, "y":0},
+        {"label":"Y", "matrix": [0, 6], "x":6, "y":0},
+        {"label":"U", "matrix": [0, 7], "x":7, "y":0},
+        {"label":"I", "matrix": [0, 8], "x":8, "y":0},
+        {"label":"O", "matrix": [0, 9], "x":9, "y":0},
+        {"label":"P", "matrix": [0, 10], "x":10, "y":0},
+        {"label":"BackSpace", "matrix": [0, 11], "x":11, "y":0},
+
+        {"label":"Esc", "matrix": [1, 0], "x":0, "y":1},
+        {"label":"A", "matrix": [1, 1], "x":1, "y":1},
+        {"label":"S", "matrix": [1, 2], "x":2, "y":1},
+        {"label":"D", "matrix": [1, 3], "x":3, "y":1},
+        {"label":"F", "matrix": [1, 4], "x":4, "y":1},
+        {"label":"G", "matrix": [1, 5], "x":5, "y":1},
+        {"label":"H", "matrix": [1, 6], "x":6, "y":1},
+        {"label":"J", "matrix": [1, 7], "x":7, "y":1},
+        {"label":"K", "matrix": [1, 8], "x":8, "y":1},
+        {"label":"L", "matrix": [1, 9], "x":9, "y":1},
+        {"label":";", "matrix": [1, 10], "x":10, "y":1},
+        {"label":"'", "matrix": [1, 11], "x":11, "y":1},
+
+        {"label":"Shift", "matrix": [2, 0], "x":0, "y":2},
+        {"label":"Z", "matrix": [2, 1], "x":1, "y":2},
+        {"label":"X", "matrix": [2, 2], "x":2, "y":2},
+        {"label":"C", "matrix": [2, 3], "x":3, "y":2},
+        {"label":"V", "matrix": [2, 4], "x":4, "y":2},
+        {"label":"B", "matrix": [2, 5], "x":5, "y":2},
+        {"label":"N", "matrix": [2, 6], "x":6, "y":2},
+        {"label":"M", "matrix": [2, 7], "x":7, "y":2},
+        {"label":",", "matrix": [2, 8], "x":8, "y":2},
+        {"label":".", "matrix": [2, 9], "x":9, "y":2},
+        {"label":"/", "matrix": [2, 10], "x":10, "y":2},
+        {"label":"Return", "matrix": [2, 11], "x":11, "y":2},
+
+        {"matrix": [3, 0], "x":0, "y":3},
+        {"label":"Ctrl", "matrix": [3, 1], "x":1, "y":3},
+        {"label":"Alt", "matrix": [3, 2], "x":2, "y":3},
+        {"label":"Super", "matrix": [3, 3], "x":3, "y":3},
+        {"label":"⇓", "matrix": [3, 4], "x":4, "y":3},
+        {"matrix": [3, 5], "x":5, "y":3},
+        {"label":"⇑", "matrix": [3, 7], "x":7, "y":3},
+        {"label":"←", "matrix": [3, 8], "x":8, "y":3},
+        {"label":"↓", "matrix": [3, 9], "x":9, "y":3},
+        {"label":"↑", "matrix": [3, 10], "x":10, "y":3},
+        {"label":"→", "matrix": [3, 11], "x":11, "y":3}
+      ]
     }
   }
 }
diff --git a/keyboards/contra/keymaps/default/config.h b/keyboards/contra/keymaps/default/config.h
index 6114392f63ee..76f4aade7bf8 100644
--- a/keyboards/contra/keymaps/default/config.h
+++ b/keyboards/contra/keymaps/default/config.h
@@ -1,3 +1,6 @@
+// Copyright QMK Community
+// SPDX-License-Identifier: GPL-2.0+
+
 #pragma once
 
 
diff --git a/keyboards/contra/readme.md b/keyboards/contra/readme.md
index 2bf1d4de3545..9be1c66460fe 100644
--- a/keyboards/contra/readme.md
+++ b/keyboards/contra/readme.md
@@ -1,16 +1,21 @@
-CONTRA
-======
+# Contra
 
-![CONTRA](https://cartel.ltd/wp-content/uploads/2018/01/img_3209.jpg)
+Contra is a low cost 40% keyboard.
 
-A 40% keyboard by [CARTEL](https://cartel.ltd/)
-
-Keyboard Maintainer: The QMK Community  
-Hardware Supported: CONTRA  
-Hardware Availability: [CARTEL](https://cartel.ltd/projects/contra/)
+* Keyboard Maintainer: The QMK Community  
+* Hardware Supported: [Contra](https://github.com/ai03-2725/Contra)
+* Hardware Availability: PCB sold by various vendors
 
 Make example for this keyboard (after setting up your build environment):
 
-    make contra:dana
+    make contra:default
+
+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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
 
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured.
+* **Physical reset button**: Briefly press the reset button soldered on the PCB.
+* **Bootmagic reset**: Hold down the top left key and plug in the controller.
diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk
index 6beb28243182..6e7633bfe015 100755
--- a/keyboards/contra/rules.mk
+++ b/keyboards/contra/rules.mk
@@ -1,18 +1 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no        # Console for debug
-COMMAND_ENABLE = no        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-
-LAYOUTS_HAS_RGB = no
-
-# Disable unsupported hardware
-RGBLIGHT_SUPPORTED = no
-AUDIO_SUPPORTED = no
-BACKLIGHT_SUPPORTED = no
+# This file intentionally left blank