diff --git a/experiments/chatgpt/blobstorage-nodejs/v1.js b/experiments/chatgpt/blobstorage-nodejs/v1.js
new file mode 100644
index 0000000000000000000000000000000000000000..02bd5b37e2b75333488378116a291e1275563292
--- /dev/null
+++ b/experiments/chatgpt/blobstorage-nodejs/v1.js
@@ -0,0 +1,66 @@
+const express = require('express');
+const fs = require('fs');
+const path = require('path');
+const multer = require('multer');
+const config = require('./config.json');
+
+const app = express();
+const upload = multer({ dest: config.storageDirectory });
+
+// Endpoint to upload files
+app.post('/upload', upload.single('file'), async (req, res) => {
+    const file = req.file;
+    if (!file) {
+        return res.status(400).send("No file uploaded");
+    }
+
+    const metadata = req.body.metadata || {};
+    const metadataPath = path.join(config.metadataDirectory, file.originalname);
+
+    try {
+        fs.writeFileSync(metadataPath, JSON.stringify(metadata));
+        res.send("File uploaded successfully");
+    } catch (e) {
+        res.status(500).send(e.message);
+    }
+});
+
+// Endpoint to fetch file info and download link
+app.get('/files/*', async (req, res) => {
+    const fileName = req.params[0];
+    const filePath = path.join(config.storageDirectory, fileName);
+    const metadataPath = path.join(config.metadataDirectory, fileName);
+
+    try {
+        if (fs.existsSync(filePath)) {
+            const metadata = fs.existsSync(metadataPath) ? 
+                             JSON.parse(fs.readFileSync(metadataPath, 'utf8')) : 
+                             { message: "No metadata found for this file" };
+
+            res.setHeader('Content-Type', 'application/json');
+            res.json({
+                fileName,
+                metadata,
+                downloadUrl: `http://${req.headers.host}/download/${fileName}`
+            });
+        } else {
+            res.status(404).send("File not found");
+        }
+    } catch(e) {
+        res.status(500).send(e.message);
+    }
+});
+
+// Endpoint to download file
+app.get('/download/*', (req, res) => {
+    const fileName = req.params[0];
+    const filePath = path.join(config.storageDirectory, fileName);
+
+    if (fs.existsSync(filePath)) {
+        res.download(filePath);
+    } else {
+        res.status(404).send("File not found");
+    }
+});
+
+app.listen(3000, () => console.log('App is listening on port 3000'));