Slixfeed and the NLnet foundation
At the beginning of this year, Slixfeed has been selected by NLnet to receive a fund of NGI Zero grant.
About
Slixfeed is a syndicated news aggregator which runs as a chat client. It can concurrently manage and serve multiple contacts, schedule update interval, customize the amount of items per update, and filter items by keywords; in addition, it can also create new pages from syndicated news sources in a chronological order, either from HTML over HTTP or PubSub over XMPP.
History
The project Slixfeed, was initially created for very specific use cases, and mostly to be a typical news bot service for XMPP. It should have been just good enough in order to lure people from my day life into communicating with me over XMPP, because I do not use a GSM device due to its various of limitations and disadvatages.
However, I have encountered issues with managing SQLite databases with the standard Python modules which has halted the development for several months.
I have approached to Mrs. Laura Lapina, and I have asked for her kind advise; thankfully, she has provided me with her expertise and quality assistance for months, provided that the project Slixfeed be published as a free and open source software.
It is important to note, that it was Laura who has managed to solve the database limitation issues only with standard Python modules, and without external dependencies, which kept Slixfeed usable on most if not all platforms for which Python is offered, as it was intended, albeit Laura still recommends to utilize Redis or SQLAlchemy instead, and this might just happen.
Over time, people from Austria, Belarus, Canada, France, Germany, Italy, Russia, The Netherlands, Ukraine, and Utah, have heard of that bot, and their ideas and suggestions caused to the project to unexpectedly develop into a featureful news aggregator, which supports private chat, group chat, and publishing over PubSub (i.e. Atom Over XMPP).
Additionally, due to the immediate involvement, guidance and encouragement of Mr. Stephen Paul Weber, the creator of Cheogram, Slixfeed has a sophisticated visual interface to interact with it, in addition to typical chat commands.
Importance
An exclusive interface.
Slixfeed is not a typical bot, it is a server in the form of an XMPP client, which establishes its presence as an XMPP contact, and its visual interface which it offers by utilizing Data Forms make it an ideal online software unlike no other.
Accessible
Affordable to anyone.
It is possible to operate Slixfeed with a low-cost Single Board Computer and even from your home PC, or any computer, which means that anyone can use Slixfeed to serve their class members, church community, family members, local community, village members etc.
Alternative
Bots instead of mobile apps.
Slixfeed conspicuously demonstrates the potential of Data Forms and thereby be an alternative and a qualified candidate to replace online software (e.g. "mobile apps", so called) with XMPP contacts (i.e. bots), which include a visual and interactive interface which are standard, structured, consisitent and easy to create.
Instead of installing the same set of software across multiple devices, if at all possible, over and over again; you can operate a set of XMPP bots on you own home computer, and connect to your favourite online software (i.e. bots) from any device for which an XMPP client is offered. It requires a one-time install.
Such interfaces can work on any device which has an XMPP client which supports Ad-Hoc Commands and Data Forms.
Here are several examples and ideas for potential simple online software.
BitTorrent
A remote control client for the software Transmission BitTorrent, which could be operated with a mobile XMPP client such as Cheogram and monocles chat.
Multimedia
An internet radio browser and player.
Search
- Utilize buku for bookmarks and search engine.
- Add an XMPP interface to SearxNG with a plugin
Remote control
- Syncthing
- MOC - Music on Console
- MPD - Music Player Daemon
Potential
Sustainable projects.
Because Slixfeed utilizes standard means to create its visual interface (i.e. Data Forms), and because arbitrary changes are not probable to occure, the maintenance costs are lower, allowing software developers to focus on usability, set of features and further improving of their online software.
Unlike being subjected to a arbitrary changes of API and graphical toolkits that are unfairly foisted on software developers who without a viable choice resort to fit their software with new offered systems, even if your software is as simple as a unit exchange calculator.
As Mr. Lars Windolf, the creator of the desktop news reader Liferea, has expresse his inconvenience.
Looking back at those 20 years for me the GNOME ecosystem developed in a way that the maintenance work was ever increasing. The different aspects of this are the major GTK releases causing massive refactorings, continuous API deprecations causing compiler noise and work that does not benefit the features. So every time I was close to dropping the project, the reason always was the GTK development cycle. I am not judging here, there is just a mismatch of the innovation cycle in the GNOME world and in this feed reader project. This is for example different with another important library for Liferea: libxml2. The API was practically 95% stable for 20 years. Zero maintenance effort!
Self Host
A server for everyone.
It is possible to operate Slixfeed from behind NAT firewall, and other restricted networks, so if you a nomad and even if you are as young as a 12 year old teenager, you can operate Slixfeed as long as you have internet connectivity. No dedicated server is required.
Grant
With the NLnet grant, I am able to work on further concerns that require a substential amout of time to observe, test and verify progress.
The concerns are:
CLI
Improve the IPC (BSD/UDS) POSIX sockets interface with the command-line and harmonize the chat commands with the command-line interface.
Component
A component mode would allow to interface with news feeds in the form of contacts, which would be a good solutions to XMPP clients with a lack for reading content over PubSub, and clients that are designed for low-end devices, such as Convo.
Documents
Deliver selectted news items as ePUB, Markdown, PDF, and even XHTML files.
I might consider to utillize WeasyPrint for that task.
Filtering
Filtering of data based on keywords, so that you would receive the news that make you happy, productive, and informed.
Formats
Support retrieval of data from more protocols and formats, such as ActivityPub, Gemini Feeds, Nostr, and XMPP.
Currently, Slixfeed only retrieves data from syndicated content over HTTP.
Gemini
Generate pages in the form of Gemini Feeds from retrieved content.
HTML
Generate HTML pages from retrieved content. This means, that the current form of Rivista will be merged into Slixfeed as an HTTP interface of Slixfeed.
Moderation
A moderation system to approve and manage subscribers.
Prioritization
Setting prime sources, as most preferred sources to receive information from.
Protocols
Interact with additional protocols, such as ActivityPub, Email, and IRC, for people who desire to manage and receive their news via other telecommunication means.
The support would not be as comprehensive and elaborated as of XMPP, and would be realized mostly with chat commands.
In order to compensate for the lack of Data Forms, I am considering to add a dedicated HTML based dashboard as a configuration panel to visually interact with Slixfeed over HTTP.
Further
Because the NLnet grant requires the creation and interaction with an external database, then I am expected to launch a new syndication service, which is not so new, yet it would be novel in an unexpected sense which, I truly hope, would make unexpected disruptions for the better.
In addition, it would be desired to support more protocols such as BitMessage, LXMF, and Nostr, and an HTML based dashboard as a configuration panel in order to compensate for the lack of Data Forms on telecommunication means other than XMPP.
Thanks
I want to thank to Mr. Guus der Kinderen from The Netherlands, of Ignite Realtime, who has provided me with various of insights about the operation of XMPP servers and PubSub nodes, including providing me with dedicated Openfire server over his XMPP hosting service Goodbytes.
I also want to thank to Mr. Damian Sartori from Argentina for his generous help with database design and management.
And special thanks to Mr. Simone Canaletti from Italy for promptly deploying Blasta, Rivista, and directing the work and design of Schapps projects; and for making this publication possible.
And last, but not least, I want to thank to all the kind people who have been advising, contributing, guiding, testing, and reporting of issues with the XMPP software which Schapps offers, and this includes people over IRC.
Post Script
It is important to know, that the generous guidances of the fine French men, Mr. Jérôme Poisson, the creator of project Libervia, and Mr. Timothée Jaussoin, the creator of project Movim have incited me to explore the technology of XMPP PubSub as a publishing platform and consequently to incorporate it into project Slixfeed.