diff --git a/.idea/runConfigurations/Example_Simple__Build.xml b/.idea/runConfigurations/Example_Simple__Build.xml
new file mode 100644
index 0000000..7b3f20e
--- /dev/null
+++ b/.idea/runConfigurations/Example_Simple__Build.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/Example_Simple__Clean.xml b/.idea/runConfigurations/Example_Simple__Clean.xml
new file mode 100644
index 0000000..aae025d
--- /dev/null
+++ b/.idea/runConfigurations/Example_Simple__Clean.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/examples/.gitignore b/examples/.gitignore
new file mode 100644
index 0000000..4a10b76
--- /dev/null
+++ b/examples/.gitignore
@@ -0,0 +1,8 @@
+# Gradle generated files
+build
+gradle
+gradlew
+gradlew.bat
+
+# Yarn lock file
+kotlin-js-store
diff --git a/examples/simple/README.md b/examples/simple/README.md
new file mode 100644
index 0000000..0c46249
--- /dev/null
+++ b/examples/simple/README.md
@@ -0,0 +1,3 @@
+# Simple example
+
+Example of a build with a single Kotlin/JS project.
diff --git a/examples/simple/build.gradle.kts b/examples/simple/build.gradle.kts
new file mode 100644
index 0000000..16c3c88
--- /dev/null
+++ b/examples/simple/build.gradle.kts
@@ -0,0 +1,17 @@
+plugins {
+ kotlin("multiplatform") version "1.9.10"
+
+ // List of releases: https://gitlab.com/opensavvy/kotlin-vite/-/releases
+ id("opensavvy.vite.kotlin") // version "REPLACE THIS"
+}
+
+repositories {
+ mavenCentral()
+}
+
+kotlin {
+ js(IR) {
+ browser()
+ binaries.executable()
+ }
+}
diff --git a/examples/simple/settings.gradle.kts b/examples/simple/settings.gradle.kts
new file mode 100644
index 0000000..bd9f68c
--- /dev/null
+++ b/examples/simple/settings.gradle.kts
@@ -0,0 +1 @@
+rootProject.name = "example-simple"
diff --git a/examples/simple/src/jsMain/kotlin/Main.kt b/examples/simple/src/jsMain/kotlin/Main.kt
new file mode 100644
index 0000000..810a29d
--- /dev/null
+++ b/examples/simple/src/jsMain/kotlin/Main.kt
@@ -0,0 +1,25 @@
+import kotlinx.browser.document
+import kotlinx.browser.window
+import kotlin.js.Date
+
+fun main() {
+ println("Hello world!")
+ ping()
+ window.setInterval({
+ ping()
+ }, 5000)
+}
+
+private fun createOrModifyDiv(content: String){
+ val div = document.querySelector("div")
+ ?: document.createElement("div").also { document.body?.appendChild(it) }
+ div.innerHTML = content
+}
+
+private fun ping() {
+ val startTime = Date.now()
+ window.fetch("https://jsonplaceholder.typicode.com").then {
+ val finishTime = Date.now()
+ createOrModifyDiv("Ping: ${finishTime - startTime} ms")
+ }
+}
diff --git a/examples/simple/src/jsMain/resources/index.html b/examples/simple/src/jsMain/resources/index.html
new file mode 100644
index 0000000..0480cec
--- /dev/null
+++ b/examples/simple/src/jsMain/resources/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+ Vite for Kotlin
+
+
+
+
+
+
+
+
+
diff --git a/examples/simple/src/jsMain/resources/style.css b/examples/simple/src/jsMain/resources/style.css
new file mode 100644
index 0000000..e69de29