[object Object]

← back to Paul Conrad Cartoons Shadowman

initial scaffold

680341bab1087f56e6ff1999bfe9c26a64bc01ae · 2026-09-24 12:26:21 -0700 · Steve

Files touched

Diff

commit 680341bab1087f56e6ff1999bfe9c26a64bc01ae
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Sep 24 12:26:21 2026 -0700

    initial scaffold
---
 .gitignore   |  8 ++++++++
 package.json | 12 ++++++++++++
 server.js    | 27 +++++++++++++++++++++++++++
 3 files changed, 47 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1924158
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+node_modules/
+.env*
+tmp/
+*.log
+.DS_Store
+dist/
+build/
+.next/
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c13ee02
--- /dev/null
+++ b/package.json
@@ -0,0 +1,12 @@
+{
+  "name": "paul-conrad-cartoons",
+  "version": "0.1.0",
+  "private": true,
+  "description": "Private research catalog of Paul Conrad (1924-2010) editorial cartoons — Pulitzer-winning works, documented individual cartoons, and archival holding summaries. Local reference tool, not published.",
+  "scripts": {
+    "start": "node server.js"
+  },
+  "dependencies": {
+    "express": "^4.19.2"
+  }
+}
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..6f04dd8
--- /dev/null
+++ b/server.js
@@ -0,0 +1,27 @@
+// Paul Conrad Cartoons — private local reference catalog.
+// Minimal static server: serves public/ and the merged dataset at data/cartoons.json.
+// Local-only personal tool — no auth, not deployed.
+
+const express = require('express');
+const path = require('path');
+const fs = require('fs');
+
+const app = express();
+const PORT = process.env.PORT || 9933;
+
+app.use(express.static(path.join(__dirname, 'public')));
+
+app.get('/api/cartoons', (req, res) => {
+  try {
+    const raw = fs.readFileSync(path.join(__dirname, 'data', 'cartoons.json'), 'utf8');
+    res.type('application/json').send(raw);
+  } catch (err) {
+    res.status(500).json({ error: 'could not read data/cartoons.json', detail: err.message });
+  }
+});
+
+app.get('/health', (req, res) => res.json({ ok: true }));
+
+app.listen(PORT, () => {
+  console.log(`Paul Conrad Cartoons catalog running at http://localhost:${PORT}`);
+});

(oldest)  ·  back to Paul Conrad Cartoons Shadowman  ·  add viewer (filter panel, sort+density grid, detail modal) a 0c8b77d →