Changeset 255e3d3 in Klonkt for src/server.js


Ignore:
Timestamp:
06/18/2026 11:49:09 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
2e247e4
Parents:
85d9fda
Message:

EPK / press kit (premium feature #4): shareable /pers press page per Klonkt site

New premium-gated /pers (solo) or /user/:slug/pers (hub): a clean, public press
kit with hero (photo/title/tagline), short bio, top tracks, recent posts, and a
contact/booking button. Intended to be shared with bookers/press.

  • src/routes/epk.js: GET /pers, premiumUnlocked() gate (non-premium -> next() -> 404), page itself is public (no login). No email leak: contact via explicit setting epk_contact[_<siteId>], bio via epk_bio_<siteId> (fallback site.tagline).
  • src/views/pages/epk.ejs: standalone press-kit view (inline scoped styles, site-accent).
  • server.js: epkRoutes mounted before the postsRoutes catch-all.

First of the 8 premium features. node --check passed; local test suite only fails
on missing better-sqlite3 in this Windows clone (runs on the VPS).

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/server.js

    r85d9fda r255e3d3  
    5252import adminStatsRoutes from './routes/admin-stats.js';
    5353import circleRoutes from './routes/circle.js';
     54import epkRoutes from './routes/epk.js';
    5455
    5556if (!process.env.SESSION_SECRET) {
     
    265266app.use('/', hubRoutes); // hub-overview op '/' (solo: next() -> postsRoutes)
    266267app.use('/', circleRoutes); // /cirkel-feed (solo/hub: next() -> postsRoutes)
     268app.use('/', epkRoutes); // /pers perskit (premium; niet-premium: next() -> 404)
    267269app.use('/', postsRoutes);
    268270
Note: See TracChangeset for help on using the changeset viewer.