Building Fedi Wrap: My Year in Review for the Fediverse
As we approach the end of 2025, like a trained goat, I am collecting year end reviews from every SaaS service that will hand me one. Somewhere in that pile I realized I do a fair bit of posting on the Fediverse, so off I went looking for my own wrapped.
Corporate platforms have turned “wrapped” into a feature and also a business model. I am on the Fediverse for the opposite reason, but I still wanted the fun part.
So I built Fedi Wrap: a local first tool that generates a year in review report for Mastodon compatible Fediverse servers.
I wanted a year in review, not a JSON endurance test.
Repo: https://github.com/anantshri/fedi-wrap
Why I built it
There are already Mastodon wrapped tools, but many assume your instance exposes posts over the API without authentication.
That breaks the moment you move beyond common Mastodon defaults. I use GoToSocial. It is Mastodon compatible, but it leans harder into privacy and security. Many setups require authentication to access timelines and statuses. Unauthenticated “wrapped” tools simply cannot see your posts.
So the problem was simple.
How do you generate a year in review when your instance is doing the right thing and not handing data to anonymous requests?
Fedi Wrap is my answer: fetch with auth, analyze locally, output a single report.
What it does
Fedi Wrap is a bash script that:
- Fetches posts for a chosen year using
toot (so auth is handled by the CLI) - Runs analysis locally using
jq - Generates a self contained HTML report you can archive and open offline
The report includes:
- Total posts, boosts, replies
- Monthly, weekly, hourly patterns
- Longest posting streak
- A simple engagement score
- Top posts by engagement
- Activity calendar
- Fun labels like posting persona and chronotype
Optional local AI insights
If you want it, Fedi Wrap can use a local LLM via Ollama to generate:
- A narrative summary of your year
- Recurring topics
- Vibe and persona style descriptions
AI is optional. Everything runs on your machine.
I like AI more when it does not eat my data.
To keep results grounded, the AI flow is multi pass: analyze chunks first, then synthesize.
The stack
Core:
- bash
- jq
- toot (for fetching)
- curl
Optional:
No Node. No containers. No build pipeline. Boring on purpose.
Screenshots
hero section
ai personnas
ai facts
stats
trends
graphs
Get it here
Live Details : https://anantshri.github.io/fedi-wrap
Source Code : https://github.com/anantshri/fedi-wrap/
#Fediverse #yearWrap