Transformative
Transformative is Barry Frost's open source IndieWeb personal website software, in use at barryfrost.com since 2016-11-10. All source code is available on GitHub. Content and media are also stored in a git repository and any changes pushed via a webhook to the database cache.
IndieWeb
Microformats
- Accepts Microformats2: h-entry, h-event, h-cite and h-card
- Stores all content in Microformats2 JSON format
- reply-context (and Repost and Like contexts) parsed and stored as h-cites
- Webmention source parsed and stored as h-cites
- Context and webmention authors parsed and stored as h-cards
- Implements post-type-discovery (plus addition of proposed bookmark type)
- Native entry types:
- Note
- Article
- Photo
- Video
- Bookmark
- Reply
- Repost
- Like
- RSVP
- Check-in
Micropub
- Full Micropub endpoint
- Create posts via form-encoded and JSON methods
- Update, delete and undelete posts
- Photos via media endpoint and multipart
- Query config, syndications and source
- Micropub implementation report for Transformative
Webmention
- Webmentions are sent from all posts using mention-client-ruby
- Passes all 21 discovery tests on Webmention.rocks
- Sends and receives new, updated and deleted webmentions
- Recognises replies, likes, reposts and RSVPs
- Webmention implementation report for Transformative
POSSE
- Syndication to Twitter of posts
- Syndication to Pinboard of bookmarks via its API
person-tag
- Posts can be created with h-card URLs as categories
- person-tag h-card is parsed and person's name is displayed as category (tag)
Features
- Storage of all content in a public GitHub repository to view, fork and (pull-)request corrections
- Example: [13]
- Rebuildable database (only) used for caching/querying of MF2 JSON data
- Media stored in GitHub and served from Amazon S3
- WebSub pings sent after post creation/update
- indie-action buttons to allow actions directly from a post
- Forces all pages and content to be served over SSL
- Location support: place names and geo: URLs
- RSS and JSON feeds of posts
- View posts by categories/tags
- Monthly archive index pages
- Navigate index pages using pagination
Requirements
- Ruby 2.3.x
- PostgreSQL 9.4 or newer
- GitHub account
- AWS S3 bucket