Akkoma Blog (OpLog) is a static site generator that fetches blog posts from your Akkoma/Pleroma/Mastodon feed and renders them using Eleventy (11ty). It creates a beautiful, fast, and SEO-friendly blog from your ActivityPub content.
Visit oplog.isalman.dev to see OpLog in action. This is based on my federated instance social.isalman.dev
- Federated Content: Automatically pulls posts from your Akkoma/Pleroma/Mastodon account
- Media Support: Properly displays images, videos, and embedded content
- Responsive Design: Looks great on all devices with dark mode support
- Fast & SEO-friendly: Static site with excellent performance and SEO
- Automatic Updates: GitHub Actions workflow fetches new posts every 6 hours
- Zero Backend: No server-side code or database required
- Fork this repository
- Update the configuration in
utils/fetch-posts.jswith your Akkoma instance and username - Enable GitHub Pages in your repository settings
- Your blog will be automatically built and deployed
Edit utils/fetch-posts.js to set your Akkoma instance and username:
const AKKOMA_INSTANCE = 'social.example.com';
const AKKOMA_USER = 'yourusername';- Site Title/Description: Edit
_data/site.json - Styling: Modify
css/style.css - Templates: Update files in
_includes/layouts/
# Install dependencies
npm install
# Fetch posts from your Akkoma instance
npm run fetch-posts
# Start development server
npm run startOpLog is designed to be deployed to GitHub Pages. The included GitHub Actions workflow will:
- Fetch your latest posts from Akkoma
- Build the site with Eleventy
- Deploy to GitHub Pages
The workflow runs automatically:
- When you push changes to the main branch
- Every 6 hours to fetch new posts
- When manually triggered from the Actions tab
Edit _data/site.json to update your site's title, description, and other metadata.
The blog uses a clean, minimal design that you can customize by editing css/style.css.
The blog templates are in the _includes/layouts directory:
base.njk: The main layout templatepost.njk: Individual post templateindex.njk: Home page template
OpLog includes special handling for various media types:
- Images with lightbox functionality
- Responsive video embeds
- Audio players
- Automatic gallery creation for multiple consecutive images
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Eleventy
- Powered by Akkoma and the ActivityPub protocol
