Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Joomla IndieWeb

Experimental Joomla extensions for IndieWeb publishing, Micropub, Webmentions, identity metadata, and federation research.

This repository began as an exploration of how far Joomla could be pushed toward IndieWeb and Fediverse interoperability.

The project has since evolved toward a simpler architecture:

Joomla handles publishing.

Dedicated federation software handles federation.


Background

This work was inspired by:

Extensive experimentation was performed around:

  • WebFinger
  • ActivityPub
  • Micropub
  • Webmention
  • IndieAuth
  • ATProto verification
  • Joomla routing and plugin events

The conclusion so far is that Joomla works well as an IndieWeb publishing platform, but is not an ideal place to implement a complete ActivityPub server.


Current Direction

Joomla

Joomla is the publishing platform.

Responsibilities:

  • Articles
  • Pages
  • Media
  • SEO
  • h-card
  • h-entry
  • rel=me
  • IndieAuth
  • Micropub
  • Webmentions

Federation Layer

Handled separately.

Candidates:

  • GoToSocial
  • BridgyFed
  • Future federation services

Responsibilities:

  • ActivityPub
  • WebFinger
  • Followers
  • Following
  • Actor discovery
  • Inboxes
  • Outboxes
  • Federation queues

Repository Structure

plg_system_indieweb

Status: Active

Purpose:

  • Identity metadata
  • h-card generation
  • rel=me support
  • IndieWeb profile information

Future:

  • Continue development
  • Focus on IndieWeb functionality
  • Remove abandoned ActivityPub experiments

plg_system_micropub

Status: Active

Purpose:

  • Micropub endpoint
  • IndieWeb publishing support

Future:

  • Authentication review
  • Media handling improvements
  • Better error reporting

plg_system_webmentionbroker

Status: Active

Purpose:

  • Receive Webmention requests
  • Validation
  • Routing and processing

Future:

  • Queueing
  • Moderation
  • Anti-spam measures

plg_content_webmentiondisplay

Status: Needs Repair

Known issue:

Current implementation depends on a database table that is not present in the deployment environment.

Future options:

  • Repair
  • Redesign
  • Replace

What Has Been Proven

Micropub

Micropub support works and remains a core part of the project.

Webmentions

Incoming Webmentions can be received and processed.

IndieWeb Metadata

Joomla can successfully expose:

  • h-card data
  • rel=me links
  • profile information

ATProto Verification

The following endpoint pattern works reliably:

/.well-known/atproto-did

Joomla Identity Endpoints

A Joomla route such as:

/index.php?resource=acct:user@example.com

can successfully return machine-readable identity data.


What Has Not Been Successful

Native WebFinger Endpoint Routing

Repeated attempts were made to expose:

/.well-known/webfinger

through Joomla routing.

Results were inconsistent due to interactions between:

  • Joomla routing
  • Plugin execution order
  • Web server configuration
  • Reverse proxy configuration
  • Other plugin dependencies

Native ActivityPub Implementation

Implementing ActivityPub inside Joomla would require:

  • Actor management
  • Inboxes
  • Outboxes
  • Followers collections
  • Following collections
  • Signature verification
  • Delivery queues
  • Retry mechanisms
  • Moderation infrastructure

Those features already exist in dedicated federation software.


Roadmap

Phase 1 - Stable IndieWeb Foundation

Goals:

  • Improve h-card output
  • Improve h-entry output
  • Improve rel=me support
  • Stabilise Micropub
  • Stabilise Webmention receiver

Status: In Progress

Phase 2 - Webmention Infrastructure

Goals:

  • Repair Webmention display
  • Improve storage model
  • Add moderation workflows
  • Add spam protection

Status: Planned

Phase 3 - Federation Separation

Goals:

  • Deploy GoToSocial
  • Establish canonical federation identity
  • Delegate WebFinger and ActivityPub responsibilities

Status: Planned

Phase 4 - Joomla ↔ Federation Integration

Goals:

  • Syndication workflows
  • RSS integration
  • BridgyFed integration
  • Publishing automation

Status: Planned


Open Issues

ISSUE-001 - Webmention Display Storage

Priority: High

The existing display plugin requires schema work before it can be used reliably.

ISSUE-002 - WebFinger Routing

Priority: High

Joomla routing is not currently a reliable long-term implementation path for:

/.well-known/webfinger

Potential resolution:

Delegate WebFinger to dedicated federation software.

ISSUE-003 - h-entry Coverage

Priority: High

Ensure all article output consistently includes:

  • h-entry
  • author
  • publication date
  • update date
  • tags

ISSUE-004 - Plugin Interaction Audit

Priority: Medium

Map plugin interactions and identify side effects.

ISSUE-005 - Micropub Hardening

Priority: Medium

Improve robustness and operational reliability.

ISSUE-006 - BridgyFed Evaluation

Priority: Medium

Determine long-term role within the publishing workflow.


Proposed Architecture

                     +----------------+
                     |   GoToSocial   |
                     |  ActivityPub   |
                     |   WebFinger    |
                     +--------+-------+
                              |
                              |
                     +--------v-------+
                     |   BridgyFed    |
                     +--------+-------+
                              |
                              |
                     +--------v-------+
                     |    Joomla      |
                     | IndieWeb CMS   |
                     +----------------+

Decision Record

Current project direction:

  • IndieWeb
  • Micropub
  • Webmentions
  • h-card
  • h-entry
  • rel=me
  • IndieAuth
  • GoToSocial integration
  • BridgyFed experimentation

Not currently planned:

  • Native Joomla ActivityPub server
  • Native Joomla federation queues
  • Native Joomla inbox/outbox implementation
  • Native Joomla actor infrastructure

Status

Active research and development.

Current focus:

Joomla as an IndieWeb publishing platform

Target architecture:

Joomla
  + IndieWeb
  + Micropub
  + Webmentions

GoToSocial
  + ActivityPub
  + WebFinger

BridgyFed
  + Interoperability

This approach keeps the Joomla side maintainable while still allowing participation in the wider federated and decentralized web.

About

Joomla plugins to help enable IndieWeb functionality

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages