diff --git a/erpnext/setup/demo.py b/erpnext/setup/demo.py
new file mode 100644
index 0000000..95e8a4d
--- /dev/null
+++ b/erpnext/setup/demo.py
@@ -0,0 +1,49 @@
+# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import json
+import os
+
+import frappe
+
+
+@frappe.whitelist()
+def setup_demo_data():
+	create_demo_company()
+	process_demo_data()
+	make_transactions()
+
+
+def create_demo_company():
+	company = frappe.db.get_value("Company", {"docstatus": 0})
+	company_doc = frappe.get_doc("Company", company)
+
+	# Make a dummy company
+	new_company = frappe.new_doc("Company")
+	new_company.company_name = company_doc.company_name + " (Demo)"
+	new_company.abbr = company_doc.abbr + "D"
+	new_company.enable_perpetual_inventory = 1
+	new_company.default_currency = company_doc.default_currency
+	new_company.country = company_doc.country
+	new_company.chart_of_accounts_based_on = "Standard Template"
+	new_company.chart_of_accounts = company_doc.chart_of_accounts
+	new_company.insert()
+
+
+def process_demo_data():
+	demo_doctypes = frappe.get_hooks("demo_doctypes") or []
+	path = os.path.join(os.path.dirname(__file__), "demo_data")
+	for doctype in demo_doctypes:
+		with open(os.path.join(path, doctype + ".json"), "r") as f:
+			data = f.read()
+			if data:
+				for item in json.loads(data):
+					create_demo_record(item)
+
+
+def create_demo_record(doctype):
+	frappe.get_doc(doctype).insert(ignore_permissions=True)
+
+
+def make_transactions():
+	pass
