-
Notifications
You must be signed in to change notification settings - Fork 0
Optional Reader Signals
Dashless for WordPress includes small, privacy-minded server-side building blocks that a customized Astro frontend can call. They are optional and stay out of the core publishing path.
They are not a hosted audience platform and do not create a Dashless account.
| Feature | Method and route | Purpose |
|---|---|---|
| Private mailbox | POST /wp-json/dashless/v1/mailbox |
Email a private note about one published story |
| Receiver List request | POST /wp-json/dashless/v1/receiver-list |
Begin double opt-in for story notices |
| Confirm or unsubscribe | GET /wp-json/dashless/v1/receiver-list/confirm |
Consume an emailed token |
| Private reaction | POST /wp-json/dashless/v1/reaction |
Email one count-free signal |
| Receive Webmention | POST /wp-json/dashless/v1/webmention |
Verify and queue one source/target pair |
| List Webmentions | GET /wp-json/dashless/v1/webmention |
Return approved mentions for a target URL |
| Moderate Webmention | GET /wp-json/dashless/v1/webmention/moderate |
Approve or delete through an emailed token |
Public endpoints share a privacy-preserving rate limiter. The bucket key is a salted HMAC of the connection address rather than the raw address. The default limit is five requests per 15 minutes and can be changed with WordPress filters.
The mailbox accepts a published Post ID, reader name, reply email, message up to 4,000 characters, and a honeypot field named website.
Valid messages are sanitized and sent as plain-text mail to the WordPress administrator address. The reader's email becomes Reply-To. Dashless does not create a WordPress comment, post, or public record.
The recipient can be customized with the dashless_mailbox_recipient WordPress filter.
Frontend forms should preserve the reader's text when the endpoint reports mail failure so it can be retried.
The Receiver List is intentionally small and tracker-free:
- A reader submits an email address.
- WordPress stores a pending record keyed by a salted email HMAC.
- WordPress sends a plain-text confirmation link.
- The confirmation token expires after seven days.
- A confirmed address becomes active.
- A newly published Post schedules a plain-text story notice.
- Every notice includes a token-only unsubscribe link.
There is no tracking pixel, secret redirect, open count, or click count. Pending records older than seven days are removed during later signup requests.
The current implementation stores list state in a non-autoloaded WordPress option and uses wp_mail. It is suited to a small personal publication, not bulk campaign delivery.
The reaction endpoint accepts a published Post ID and one of three keys:
hell-yesquestionsreminded-me
It sends a plain-text email to the WordPress administrator address. No reaction row, aggregate counter, leaderboard, or public social proof is stored.
The receiver accepts public HTTP source and target URLs. It:
- requires the target host to match the WordPress home host;
- fetches the source with safe WordPress HTTP handling, a six-second timeout, three-redirect limit, and 512 KiB response limit;
- verifies that the source HTML actually links to the target;
- stores the mention as hidden and pending;
- emails opaque approve and delete links to the administrator; and
- returns only approved source, title, and domain fields from the public list endpoint.
The moderation response uses Cache-Control: no-store. Re-receiving an already approved source/target pair does not make it pending again.
To make discovery automatic, add a standards-compatible Webmention endpoint link to the Astro document head when you wire this feature into the frontend.
Every Astro build creates sitemap.xml, rss.xml, and robots.txt. On WP Cloud the companion redirects WordPress core sitemap URLs to the static sitemap so crawlers see one canonical tree.
If the Astro public directory contains indexnow-key.txt with one valid 8–128 character IndexNow key, the WP Cloud release manifest records it. After activation, the companion submits same-host URLs from the static sitemap to IndexNow without blocking publication.
Release activation also sends non-blocking WebSub publish notices for rss.xml and broadcast.xml when present. Failure of any third-party discovery service never fails or rolls back a publication.
- Configure reliable WordPress mail delivery before exposing mailbox or Receiver List forms.
- Keep the WordPress administrator email current.
- When Astro and WordPress use different hosts, configure only the narrow cross-origin behavior your frontend needs.
- Present success and failure responses without leaking subscriber or moderation state.
- Add abuse controls at the edge if the publication receives more traffic than the built-in personal-site rate limit is designed for.
Dashless 1.0 · WordPress without the dashboard · Regionally Famous · MIT license