A curated directory of entertainment resources: memes, comedy clubs, jokes, and local entertainment. Ships as both a modern Electron desktop app and a self-contained PWA that runs in any browser and works offline.
https://guildmasterdev.github.io/Jester
The web build is a single web/index.html (inline CSS + JS, no bundlers, no runtime dependencies). Installable as a PWA on desktop and mobile.
- Memes & Humor — Reddit, 9GAG, Imgur, Know Your Meme, Imgflip, and more
- Comedy Clubs — curated venues across New York, LA, Chicago, SF, Boston, Austin, Seattle, Denver, Atlanta, and Portland
- Jokes — APIs and communities (JokeAPI, icanhazdadjoke, r/Jokes) plus a random built-in joke generator
- Local Entertainment — Fandango, Ticketmaster, StubHub, Eventbrite, Bandsintown, Broadway.com, and more
- Dark / light theme — defaults to dark, persisted to
localStorage - Cross-category search — filters every resource by name, description, city, or category
- Offline-ready PWA — versioned cache-first service worker (
jester-v1) - External links open in a new tab / default browser
Just open web/index.html in a browser, or visit the live demo. No build step.
To serve locally over HTTP (recommended so the service worker registers):
npx serve web
# or
python3 -m http.server --directory web 8080git clone https://github.com/guildmasterdev/Jester.git
cd Jester
npm install
npm startnpm run dev # Electron with --dev flag
npm run lint # node --check on every src/**/*.jsnpm run dist # electron-builder for current platformTargets are configured in package.json for macOS (public.app-category.entertainment), Windows (NSIS), and Linux (AppImage).
The web build is a full Progressive Web App:
- Manifest —
web/manifest.json(purple#9333eatheme, dark#0a0a0fbackground, 192/512 icons, maskable variant) - Service worker —
web/sw.js, cache-first with a versionedjester-v1cache and navigation fallback toindex.html - Installable — "Add to Home Screen" on iOS/Android, "Install Jester" in Chromium/Edge
- Offline — once the first load is cached, the app works with no network
- Electron 41 with
contextIsolation,sandbox, andnodeIntegration: false - electron-builder 26 for packaging
- Vanilla JS, HTML5, CSS3 — no frameworks, no bundler, no runtime dependencies
- GitHub Pages via
actions/deploy-pages@v4 - GitHub Actions CI —
node --checkon every JS file insrc/plus manifest/SW validation
.
├── src/ # Electron main, preload, renderer, and index.html
├── web/ # Self-contained PWA (deployed to GitHub Pages)
│ ├── index.html # All CSS and JS inline
│ ├── manifest.json
│ ├── sw.js
│ └── icons/
├── resources/ # App icons for electron-builder (icns, ico, PNGs)
├── assets/ # Runtime icon used by Electron BrowserWindow
└── .github/workflows # CI and Pages deploy
MIT — see LICENSE.
GuildMaster Development