← back to Paul Conrad Cartoons Rebrand
initial scaffold
680341bab1087f56e6ff1999bfe9c26a64bc01ae · 2026-09-24 12:26:21 -0700 · Steve
Files touched
A .gitignoreA package.jsonA server.js
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 Rebrand
·
add viewer (filter panel, sort+density grid, detail modal) a 0c8b77d →