115 lines
5.4 KiB
Markdown
Executable File
115 lines
5.4 KiB
Markdown
Executable File
# Beep
|
||
|
||
A Twitter/X-style microblog for WordPress. Logged-in users post short updates with rich media, polls, GIFs, voice notes, and quotes. Like, reply (with nested threads), and share beeps. Designed to look like a Twitter timeline, hosted entirely on your own site.
|
||
|
||
## What's in v1.5.1
|
||
|
||
### Core Features
|
||
- **Post beeps.** Short updates up to 280 characters, with a composer at the top of the feed.
|
||
- **Like beeps and replies.** Hearts on every post and every reply, with a pop animation when you tap.
|
||
- **Nested replies.** Reply to a reply, to a reply, to a reply. Visual indent caps at two levels (deeper threads still nest structurally).
|
||
- **Latest / Top tabs.** "Top" sorts your feed by like count — a built-in way for readers to surface the best stuff.
|
||
- **Per-post Beep badge.** Every beep and reply carries a small bird icon in the corner, branding it as a Beep.
|
||
- **Friendlier visitor experience.** Logged-out visitors see clean read-only beeps; logged-in users get the full interactive feed.
|
||
|
||
### Rich Media
|
||
- **Image uploads.** Attach up to 4 images per beep. Previews in the composer with remove buttons. Images display in an adaptive grid (1×, 2×, 3×, 4× layouts).
|
||
- **GIF picker (Giphy).** Search and embed GIFs via the Giphy API. Configure your API key in **Settings → Beep**.
|
||
- **Voice notes.** Record and attach audio notes (MP3, OGG, WAV, WebM, M4A) up to 20 MB. Inline audio player with play button and waveform visualization.
|
||
- **Quote beeps.** Reference any existing beep as a quote. Loads the quoted post's author, time, and content inline.
|
||
|
||
### Polls
|
||
- **Create polls.** Add a poll to any beep with a question and 2–6 options.
|
||
- **Vote on polls.** One-click voting with live results displayed as progress bars.
|
||
- **Poll management.** Add/remove options before posting; polls are cleared after submission.
|
||
|
||
### Thread View
|
||
- **Conversation modal.** Click any beep to open a full thread/conversation view in a modal overlay.
|
||
- **Nested thread display.** Replies are indented by depth for easy reading.
|
||
|
||
### Settings & Integration
|
||
- **Admin settings page.** Configure character limit, Giphy API key, and other options under **Settings → Beep**.
|
||
- **Elementor widget.** Drag-and-drop Beep feed into any Elementor-built page.
|
||
- **Magic login support.** Works with passwordless login plugins for frictionless onboarding.
|
||
|
||
### Moderation
|
||
- **Delete any beep or reply.** Logged-in admins see a small × in the top-right of each item.
|
||
- **Approve replies before they appear.** Settings → Discussion → "Comment must be manually approved" puts replies in a queue at **Comments** in the sidebar.
|
||
- **Suspend users.** Users → click their name → scroll to **Chirp moderation** → check **Suspend from beeping**.
|
||
|
||
## Install Beep
|
||
|
||
1. In wp-admin, go to **Plugins → Add New → Upload Plugin**.
|
||
2. Upload `beep.zip` and click **Install Now**, then **Activate**.
|
||
3. On the page you want the feed (your one-page site, a dedicated "Feed" page, etc.), add the shortcode:
|
||
|
||
```
|
||
[beep_feed]
|
||
```
|
||
|
||
Save and visit the page. As an admin, you'll see a composer at the top — type a message and click "Beep" to post.
|
||
|
||
## Invite friends (with magic links — no passwords)
|
||
|
||
This is the easiest way to let a small circle into your Beep feed without setting up Google/Facebook developer apps. The flow:
|
||
|
||
1. **Open registration.** Go to **Settings → General**, check **Anyone can register**, and set **New User Default Role** to **Subscriber**. Save.
|
||
2. **Install passwordless login.** Plugins → Add New → search for **Passwordless Login** (any well-reviewed one — Cozmoslabs or Magic Login both work). Install and activate.
|
||
3. **Share the sign-up link.** Send your friends a direct link to:
|
||
|
||
```
|
||
https://your-site.com/wp-login.php?action=register
|
||
```
|
||
|
||
They type their email, get a one-time sign-in link, and they're in. No password to remember.
|
||
4. **They can now like and reply.** Liking and replying require being logged in; your feed remains read-only for the public.
|
||
|
||
## Shortcode options
|
||
|
||
```
|
||
[beep_feed limit="50" header="Messages from" sort="latest"]
|
||
```
|
||
|
||
- `limit` — how many beeps to load on first render (default 50)
|
||
- `header` — text shown next to the wordmark (default "Messages from")
|
||
- `sort` — initial sort: `latest` (default) or `top`
|
||
|
||
## Elementor Widget
|
||
|
||
After activating Beep, you'll find a **Beep Feed** widget in the Elementor panel. Drag it onto your page — it renders the same feed as the shortcode, with no extra configuration needed.
|
||
|
||
## Branding
|
||
|
||
Swap the bird/wordmark in `assets/`. The accent color is `#1D9BF0`; find/replace in `assets/beep.css` for a different palette.
|
||
|
||
## Changelog
|
||
|
||
### v1.5.1
|
||
- Fixed critical IIFE scope bug — all functions now properly access `config` and `handleResponse`
|
||
- Removed leaked Giphy API key from JavaScript source
|
||
- Fixed voice note upload not clearing composer state
|
||
- Added CSS for GIF picker modal, poll compose section, media preview grid, voice note preview
|
||
- Added loading spinner and empty states for feed
|
||
- Added responsive styles for GIF grid and media preview on mobile
|
||
|
||
### v1.5
|
||
- Image uploads with 4-image grid
|
||
- GIF picker via Giphy API
|
||
- Voice note attachments
|
||
- Quote beeps
|
||
- Polls with voting
|
||
- Thread/conversation modal
|
||
- Elementor widget
|
||
- Admin settings page
|
||
|
||
### v1.4
|
||
- Like beeps and replies with pop animation
|
||
- Nested replies (multiple levels deep)
|
||
- Latest / Top tabs
|
||
- Per-post Beep badge
|
||
- Read-only mode for logged-out visitors
|
||
|
||
## License
|
||
|
||
GPLv2 or later, same as WordPress.
|