diff --git a/editor.py b/editor.py
index 270e75d..49cec5c 100755
--- a/editor.py
+++ b/editor.py
@@ -5,6 +5,17 @@ from pygame import Color, Rect
 from pygame.locals import *
 import datetime
 import array
+import requests
+
+def upload_file(url, filename):
+    with open(filename, "rb") as file:
+        response = requests.post(url, files={"file": file})
+    
+    # Check the response status code and handle accordingly
+    if response.status_code == 200:
+        print("File upload successful")
+    else:
+        print("File upload failed")
 
 # Initialize pygame
 pygame.init()
@@ -120,6 +131,11 @@ while running:
                 with open(filename, "wb") as file:
                     file.write(bitstream)
 
+                upload_file("http://192.168.1.106", "art.grb")
+                print("Uploaded")
+                
+
+
                 print(f"Pixel art saved as {filename}!")
 
             if event.key == K_u and pygame.key.get_mods() & KMOD_CTRL:
diff --git a/web.py b/web.py
new file mode 100644
index 0000000..dbfb4c2
--- /dev/null
+++ b/web.py
@@ -0,0 +1,80 @@
+#
+# This is an example of a (sub)application, which can be made a part of
+# bigger site using "app mount" feature, see example_app_router.py.
+#
+import picoweb
+import network
+from time import sleep
+import ulogging
+import traceback
+import sdcard
+import uos
+from ws2812b import WS2812B
+
+
+ssid = 'XCHC1'
+password = 'workspace'
+
+ws = WS2812B(256, 28, 0.1)
+
+# Assign chip select (CS) pin (and start it high)
+cs = machine.Pin(13, machine.Pin.OUT)
+
+# Intialize SPI peripheral (start with 1 MHz)
+spi = machine.SPI(1,
+                  baudrate=1000000,
+                  polarity=0,
+                  phase=0,
+                  bits=8,
+                  firstbit=machine.SPI.MSB,
+                  sck=machine.Pin(10),
+                  mosi=machine.Pin(11),
+                  miso=machine.Pin(12))
+
+# Initialize SD card
+sd = sdcard.SDCard(spi, cs)
+
+# Mount filesystem
+vfs = uos.VfsFat(sd)
+uos.mount(vfs, "/sd")
+
+
+def connect():
+    #Connect to WLAN
+    wlan = network.WLAN(network.STA_IF)
+    wlan.active(True)
+    wlan.connect(ssid, password)
+    i = 0
+    while wlan.isconnected() == False:
+        if i>10:
+            print("Failed to connect")
+            break
+        i += 1
+        print('Waiting for connection...')
+        sleep(1)
+    ip = wlan.ifconfig()[0]
+    print(f'Connected on {ip}')
+    return ip
+
+ip = connect()
+
+app = picoweb.WebApp(__name__)
+  
+@app.route("/")
+def index(request, response):    
+    size = int(request.headers[b"Content-Length"])
+    data = yield from request.reader.readexactly(size)
+    data = data.split(b'\r\n\r\n')[-1].split(b'------')[0]
+   
+    for i in range(256):
+        offset = i * 3
+        green, red, blue = data[offset:offset + 3]
+        #print(red, green, blue)
+        ws.pixels_set(i, (red, green, blue))
+    ws.pixels_show()
+    
+    yield from picoweb.start_response(response)
+    yield from response.awrite("HTTP/1.0 200 OK\r\n")
+
+if __name__ == "__main__":
+    app.run(debug=True, host="0.0.0.0", port=80)