Skip to content

facundopignanelli/bitstream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

356 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BitStream Logo BitStream

Version 3.1.2 - A Modern Microblogging Platform for WordPress

License WordPress PHP

DISCLAIMER: This plugin was primarily created to experiment with AI-generated code. It is unsupported, provided as-is, and I do not recommend using it in production. Because this project was created primarily for experimentation, the code may be incomplete or unstable. Use at your own risk.

🎯 Overview

BitStream transforms WordPress into a powerful microblogging platform with Twitter-like functionality. Share quick thoughts (Bits), reshare external content (ReBits), schedule posts, save drafts, use hashtags, and enjoy a modern Progressive Web App experience with a clear social-app style timeline.

Key Highlights

  • πŸ“± Progressive Web App - Install as native app on mobile/desktop with robust share sheet integration
  • 🎨 Modern Social Timeline - Clean, responsive feed layout replacing the old masonry grid
  • οΏ½ Advanced Poster Interface - Tabbed posting with drafts, scheduling, and rich media
  • 🏷️ Hashtags & Discovery - Auto-linked tags, trending sidebars, and hashtag feed filtering
  • οΏ½ Enhanced ReBit System - Secure, cached OpenGraph previews with manual overrides
  • βš™οΈ Unified Settings - Centralized management for all your personalization and mapping needs

πŸ“‹ Table of Contents

πŸš€ Installation

From GitHub

  1. Download the latest release from the releases page
  2. Upload the bitstream folder to /wp-content/plugins/
  3. Activate the plugin through the 'Plugins' menu in WordPress
  4. Visit Settings β†’ Permalinks and click "Save Changes" to flush rewrite rules
  5. Create a page and add the [bitstream] and/or [bitstream_poster] shortcodes

Manual Installation

  1. Clone this repository into your WordPress plugins directory:
    cd wp-content/plugins
    git clone https://github.com/facundopignanelli/bitstream.git
  2. Activate the plugin in WordPress
  3. Flush permalinks (Settings β†’ Permalinks β†’ Save Changes)

⚑ Quick Start

Display the Feed

Create a new page and add the shortcode to display your timeline:

[bitstream]

Create the Posting Interface

Create another page to serve as your dedicated posting area:

[bitstream_poster]

Install as PWA

On mobile devices, use the "Add to Home Screen" option to install BitStream as a native app for the best experience.

✨ Features

🎨 Modern Social Timeline

  • Social-App Style Feed - Clear, single-column reading experience replacing the old masonry layout
  • Adaptive Sidebars - Left filter links, right Quick Actions rails, and responsive stacking across devices
  • Interactive Cards - Rich media, quoted bits, audio players, and inline actions
  • Quick Bit Box - Instantly post Bits or auto-detected ReBits directly from the sidebar feed
  • In-Feed Deletion - Instantly delete posts if you have the proper capabilities

πŸ“ Advanced Poster Interface

  • Tabbed Workflow - Seamlessly switch between composing Bits, ReBits, Drafts, and Scheduled posts
  • Drafts Support - Save posts mid-thought, auto-save on tab close (navigator.sendBeacon), and resume later
  • Robust Scheduling - Plan ahead with a native datetime picker for future publishing (Bits and ReBits)
  • Rich Media & Audio - Drag-and-drop uploads, custom image cropper, and support for audio formats (MP3, OGG, WAV, FLAC, etc.) integrated via native wp.media
  • Publish Previews - In-window publish result panel showing the exact frontend-rendered card without refreshing
  • Quick Actions Post-Publish - Copy permalinks, quickly edit, or jump to the published post straight from the success screen

οΏ½ Social & Discovery

  • Hashtags - Dynamic link generation, searchable tags across your feed, and a "Hashtags" section in the sidebar showing trending terms
  • Likes & Comments - AJAX-powered likes, nested threaded comments (with visual hierarchy), and an inline reply system
  • Quoted Bits - Visually rich nested cards providing beautiful context when responding to another post

οΏ½ Enhanced ReBit System

  • Secure OpenGraph Fetcher - Built-in strict SSRF protection (wp_safe_remote_get), timeout retries, URL resolution, and JSON-LD parsing
  • Fast Previews - 24-hour transient caching minimizes external requests for ReBit data
  • Manual Overrides - Edit the fetched title, description, and image directly in the poster before publishing

οΏ½ Progressive Web App (PWA)

  • Installable - Add to home screen on mobile and desktop
  • Offline Aware - Service worker caching functionality
  • Advanced Share Parsing - Better Android share integration, automatically separating text and URLs when combined by specific apps
  • Contextual Routing - Quick Actions shortcuts map directly to specific poster tabs

πŸ“ Shortcodes

[bitstream] - Display Feed

The main shortcode for displaying your timeline.

Parameter Type Default Description
posts_per_page integer 10 Number of posts to load per page
limit integer - Limit total posts (disables pagination)
mode string - Set to "preview" for a compact 3-column grid without sidebars
infinite_scroll boolean false Enable infinite scroll
show_load_more boolean true Show/hide load more button

[bitstream_poster] - Unified Posting Interface

Renders a custom frontend posting interface with intelligent tabs:

  • Post a Bit: Compose text, drag & drop media, crop images, upload audio.
  • Post a ReBit: Paste a URL, auto-fetch OG data, manually tweak properties.
  • Scheduled: Review, preview, edit, or delete upcoming posts.
  • Drafts: Save and manage unpublished works in progress.

Requirements:

  • User must be logged in with posting capabilities.

πŸŽ›οΈ Administration & Settings

Unified Settings Dashboard

BitStream 3.0 consolidates all administrative panels into a single, clean Settings entry under the WordPress Admin menu:

  • Personalisation: Theme colors, display preferences, and feed configuration.
  • ReBit Mappings: Define custom labels and Font Awesome icons for your most shared platforms (e.g., YouTube, Twitter, GitHub) using a responsive card-based layout.
  • RSS Feeds: Manage dedicated feeds for all bits, original bits only, or ReBits only directly from here.
  • Advanced Tools: Advanced configuration and tools.

Housekeeping Improvements

  • Weekly Media Cleanup: Automatic pruning of unattached orphaned files from incomplete poster uploads (bitstream_weekly_media_cleanup_event).

πŸ”§ Technical Details

Requirements

  • WordPress: 5.8 or higher
  • PHP: 7.4 or higher
  • Font Awesome: Recommended for icons (free version)

Architecture Highlights

  • Robust OOP architecture with namespaced classes (BitStream_*)
  • Security-first approach with nonces, capability checks, input sanitization, and output escaping
  • Strict SSRF protection on external URL requests
  • Performance optimizations via transient caching, conditional loading, and efficient AJAX endpoints

🀝 Contributing

Important: This project is an experiment in AI-assisted development and does not accept pull requests.

Why No PRs?

BitStream was created specifically to explore and test AI coding tools like GitHub Copilot and other advanced agentic systems. The entire codebase has been generated through AI-assisted development. Accepting traditional pull requests would compromise the experimental nature and learning goals of this project.

But You Can Still Contribute!

While we don't accept PRs, you're absolutely welcome and encouraged to:

  • Fork the repository and create your own version
  • Add features you'd like to see
  • Experiment with your own modifications
  • Share your fork with the community
  • Report bugs via GitHub Issues (we appreciate bug reports!)
  • Suggest features through GitHub Discussions

Using This Code

This project is licensed under GPL-2.0+, which means:

  • βœ… You can fork and modify the code freely
  • βœ… You can use it in your own projects
  • βœ… You can redistribute your modified versions
  • βœ… You must maintain the same license (GPL-2.0+)
  • βœ… You must document changes you make

πŸ“œ Changelog

For a detailed list of all changes, please refer to the changelog.md file.

About

A WordPress Plugin to add micro-blogging functionality.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors