Jaco du Plessis

The Potential of Blogging with a Chat App

python django telegram

Ever since I became aware that Telegram has an API, I've been thinking of the potential of using it to publish content.

My thinking is that everyone thesedays know how to use a chat app to send text, images, voice recording and other files to each other. Therefore, if the same user interface can be used to publish on the internet, the barrier to entry would be the lowest it could possible be. They wouldn't even have to download a new app or create an account to start.

As a developer, it is of course a great boon if your user can use a well-designed, efficient and beautiful native app to interact with your server ­ and by using Telegram, I wouldn't have to write a single line of code to get it. And it's free.

A few years ago I built my initial prototype of a chat-based blogging bot on Telegram. And it worked. I asked a few friends to test it, but I didn't even need their feedback to know that I did it wrong - you had to use "/" commands to create and edit pages, so the whole advantage of "not having to learn a new interface" was nullified by my poor design.

A few months later I revisited the project, rewrote it from NodeJS to Python, but before I could really revisit the design, I moved along to other things.

A couple of months ago my friend invited me to a month-long 4x4-tour of Botswana. I accepted the invitation, and decided that this would serve as a perfect testing ground for a new blogging bot. So the day before we left on our trip, I completed a working Telegram bot that we would use on our trip to keep family and friends up to date on our progress. This time, I tried to make the user interface as simple as possible, simply by not having any commands, options or settings. Everything happens automatically.

One of the reasons Botswana stood out as a good testing ground, is that it is mostly wilderness and we would have very little, if any, access to the internet during the most part of our trip. This would allow me to test another possible benefit of using Telegram, namely being able to use it offline. When you send a message on Telegram, it is immediately displayed in the chat interface, but if you're not connected it keeps the message and sends it when you're connected again. So my idea was that even if we were without internet for a couple of days, we could keep on sending messages to the bot that would eventually sync to my server when we were back online.

So last month we did our Botswana trip. It was a lot of fun, and we used the bot to post some photos and videos on it.

The result can be seen here: https://reports.hartebees.co.za/3/

The steps involved was basically this:

  1. Create a channel on Telegram. Public or private, doesn't matter.
  2. Invite other people as admins and upload a nice profile pic.
  3. Add the bot as admin.
  4. Send any type of message: text, photo, video, audio just like in a normal chat.

Looking back, I would say that the experiment was a success overall, and that it works quite well. We didn't write long pieces of text on the blog, because I intensely dislike cellphone keyboards, and my companions have their own WordPress blog where they post longer pieces. Where it did work well was with photos ­ we have Wi-Fi enabled Canon cameras, so we could easily transfer photos to our phones and then just send them to Telegram to have them appear on the site. The Telegram app even handles image compression for you so this saves you a lot of mobile data as well as server CPU time.

Using a Telegram channel has the additional advantage that our friends and family members that already use Telegram, could subscribe to the channel and receive push notifications whenever we uploaded new stuff.

There are some features that would be nice to add at a later point, primarily a sort of guest book where people can leave comments or simply let you know that they've been there. We got around 50 unique visitors to the site (by looking at the NGINX server logs), but I have no idea who they are.

The bot is currently active an open for anyone to use. To start using it, click here or search for @VoxPopBot in the app. Whatever messages you send the bot will immediately appear on https://reports.hartebees.co.za. If I decide to spend more time on this project, I'll probably use the voxpop.co.za domain I purchased a while ago and host the content there, along with usage instructions, a project overview, a blog directory and a better landing page. Please note that currently there is no way to delete content from the platform (as a user), so be careful what you post. (This is, of course, a huge problem that I would somehow have to resolve if the project is to be used by a wider audience.)

If you're a Python developer, and know Django, you'll be pleased to know that you can install this entire project with pip install django-telegram-blog. The source code is available on GitHub.

I still think that publishing via a chat app has huge potential and would probably be relevent to the next generation of journalists. I have a lot of ideas in this regards, so if you'ld like to talk about this, please contact me via email (details are at the bottom of this page).

I'll probably do some more blogging via Telegram and work on some more features when I have time. If anything interesting comes from it, I'll write another blog post.

Have a comment? Email me at jaco@jacoduplessis.co.za.