feedwell: Unified Social Feed¶
Overview¶
feedwell is a reusable Django app that provides a unified, local-first feed for connected social media accounts — one place to read posts from Mastodon, Bluesky, and (optionally) X/Facebook, instead of juggling separate apps.
It’s integrated into aclarknet as the feedwell.feeds app, mounted at
/feedwell/.
How It’s Integrated¶
feedwell is installed as a regular pip dependency (see pyproject.toml),
not run as its own standalone project, so no separate process or service is
needed — it’s just another Django app inside aclarknet:
feedwell.feedsis listed inINSTALLED_APPS(aclarknet/settings/base.py).Its URLs are mounted at
/feedwell/inaclarknet/urls.py.Its
auth_urlscontext processor is registered inTEMPLATESso the app’s login/logout links resolve against django-allauth’saccount_login/account_logoutURLs instead of Django’s defaults.Its models use MongoDB’s
ObjectIdAutoFieldas their default auto field, matching the rest of this project’sdjango-mongodb-backendsetup, so no custom migration shims were needed (unlike some other third-party apps added to this project).
Because it’s a normal pip dependency, it’s installed, migrated, and
deployed automatically by the existing pipeline — deploy.sh already
runs pip install -e . (which includes feedwell) and migrate on every
deploy, and CI’s Test with MongoDB job already exercises feedwell’s
migrations as part of setting up the test database. No extra deployment or
CI steps are required.
Connected Platforms¶
Mastodon and Bluesky connections work out of the box — no app-level credentials required, since both use per-instance registration or app passwords entered by the user.
X and Facebook connections are not currently enabled on aclarknet —
they require project-level OAuth app credentials
(X_CLIENT_ID/X_CLIENT_SECRET, FACEBOOK_CLIENT_ID/
FACEBOOK_CLIENT_SECRET) to be added to Django settings, which hasn’t
been done. Until then, those two platforms simply stay unavailable in the
connect-account UI; everything else continues to work normally.