← back to AsSeenInMovies
asseeninmovies: gzip compression middleware (threshold 1KB) — JSON-LD-heavy HTML pages drop dramatically over the wire. /movies 37KB uncompressed → gzip. Smoke 52/52.
5aadd3a148aa04263a9b7733560dfd0bbe91f1fc · 2026-05-12 21:09:54 -0700 · SteveStudio2
Files touched
M package-lock.jsonM package.jsonM server.js
Diff
commit 5aadd3a148aa04263a9b7733560dfd0bbe91f1fc
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Tue May 12 21:09:54 2026 -0700
asseeninmovies: gzip compression middleware (threshold 1KB) — JSON-LD-heavy HTML pages drop dramatically over the wire. /movies 37KB uncompressed → gzip. Smoke 52/52.
---
package-lock.json | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
package.json | 1 +
server.js | 4 ++++
3 files changed, 54 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index 3fde1c9..662a22b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "asseeninmovies",
"version": "0.1.0",
"dependencies": {
+ "compression": "^1.8.1",
"dotenv": "^16.6.1",
"express": "^4.22.2",
"pg": "^8.20.0"
@@ -94,6 +95,45 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
+ "debug": "2.6.9",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.1.0",
+ "safe-buffer": "5.2.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -563,6 +603,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/on-headers": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
diff --git a/package.json b/package.json
index c445c9b..665a18e 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"ingest:sag-aftra": "node scrapers/sag-aftra-public.js"
},
"dependencies": {
+ "compression": "^1.8.1",
"dotenv": "^16.6.1",
"express": "^4.22.2",
"pg": "^8.20.0"
diff --git a/server.js b/server.js
index 66fc4a5..50127be 100644
--- a/server.js
+++ b/server.js
@@ -15,6 +15,7 @@
require('dotenv').config();
const express = require('express');
+const compression = require('compression');
const path = require('path');
const fs = require('fs');
const { Pool } = require('pg');
@@ -37,6 +38,9 @@ function isAdmin(req) {
}
const app = express();
+// gzip compression for all responses ≥ 1KB. Big leverage on JSON-LD-heavy
+// HTML pages — /movies and /spotted carry full ItemList payloads now.
+app.use(compression({ threshold: 1024 }));
app.use(express.json({ limit: '2mb' }));
app.disable('x-powered-by');
← 2c7ee2c asseeninmovies: <meta name='theme-color' content='#0d0c0a'>
·
back to AsSeenInMovies
·
asseeninmovies: trust proxy=1 + Cache-Control on sitemap.xml cd952cb →