Matrix Live - Liveblogging based on Matrix

Liveblogging is reporting about events -- with text and pictures -- as they happen. Matrix is a new, powerful messaging platform for instant communication. We believe the two belong together. That's why we have created Matrix Live.

With Matrix Live, you can create a room in Matrix, and while you use your favorite Matrix client (such as Riot) to write text and post pictures in this room, your users will see them appear live on the web - either here or right on your blog or website.

We believe this provides the optimal combination. By building on an established messenger, a few interesting features come "for free":

Try it

How does it look like in practice? You can try it out. We have prepared two demo versions for you, which are both fully functional Matrix Live implementations:

Note that they are using the standard layout of Matrix Live. You can customize our CSS style sheet if you need a different look.

Use it

How do you get your own liveblog using Matrix Live? Start by setting up the Matrix room you want to use, afterwards generate the link or embed code to Matrix Live, include it on your website / blog and you are ready to go.

Step 1: Set-up Matrix room

If you are not yet a Matrix user, head over to Riot and use either the web or one of the mobile clients to register an account in the Matrix ecosystem. Within Riot (screenshots are from Riot Web) you can then create a new room to liveblog in by clicking on the “Plus” sign. You can assign a room name and should end up with an empty room as in the screenshot below.

Afterwards, you need to set this room to publicly viewable (such that Matrix Live and your visitors can access it) and obtain its internal ID, which is used to access the room in Matrix Live:

Access settings for the room
Access settings for the room

In the room settings, you can set the room to world viewable but keep it as invite-only (to avoid others posting on your live blog):

Set room to readable by anyone, then scroll down
Set room to readable by anyone, then scroll down

Scroll down to find your internal room ID:

Write down your internal room ID and save your changes
Write down your internal room ID and save your changes

If everything has saved correctly, Riot should inform you that your room history is now viewable by anyone:

Alex made future room history visible to anyone.
Alex made future room history visible to anyone.

Using the internal room ID, you are now ready to generate your Matrix Live link or embed code.

Step 2: Generate link or embed code

Just head over to the Matrix Live Generator. Fill in the home server and room ID you want to use and the other optional fields and click on “Generate”. The tool will check whether the homeserver and room ID are valid and correctly configured (you need to use a homeserver that allows guest access and your room needs to be configured as world-readable as per the above). If everything checks out, you will receive two options to use Matrix Live:

  1. A link that you can link to and that will display your liveblog on a separate page.
  2. Pieces of HTML code that you can embed in your website or blog post and which will make your live blog appear within your website at the point where you insert the <hello-matrix> tag.

Step 3: Use on your website or link to from social media

You can use either the link or the embed code to make your liveblog go “on air”. As soon as you have promoted the link or embedded the embed code, you already to start liveblogging!

Step 4: Start liveblogging

When a visitor visits your liveblog, he or she will see the latest entries you made (the newest will be at the top; by default a bit less than sixty are displayed, see the generator for details) immediately. Afterwards, the connection remains active as long as the visitor remains on the site and any new stuff you write or pictures you send to your room in Matrix will be pushed to the visitor and displayed at the top of the liveblog.

So just go ahead, grab the Matrix client of your choice (we recommend Riot) and start liveblogging! If you have invited other users into your room, they can also write and upload pictures, those will also be displayed to your readers (so be careful who you let into your room).

You can use Markdown to format text in your messages. If you want to embed videos, Matrix Live supports YouTube, Vimeo and DailyMotion. You can add the link to the video’s page using Markdown’s syntax for inline images:

![Video](https://vimeo.com/161820611)

Matrix Live will recognise that this is a reference to a video site and will embed this site’s inline player for you.

You can also upload pictures, videos and other files directly using your Matrix client. If you upload pictures, a thumbnail will be displayed in the live blog. If the picture is larger than the thumbnail size, a hyperlink will allow the user to access the full-size picture. For videos, a HTML5 video player will be displayed. For other files, a generic download link will be generated.

If you have made a mistake and want to remove a message you have written, you can do so with any Matrix client that supports redactions, as long as you are administrator in your room (you will be if you have created the room yourself as described above). In Vector Web, click on the three dots next to the message you want to remove and then on “Redact”:

Click on the "three dots" and then on "Redact"
Click on the "three dots" and then on "Redact"

The message will disappear for users who are receiving the live stream and will not be displayed for any new visitors accessing the liveblog. As Matrix is a messaging application, you cannot edit existing messages or backdate new ones.

Step 5: That's it - tell others

Was your liveblog a success? Great! Feel free to spread the word! Did anything not work out as expected? Let us know: Send us an email at hello@hello-matrix.net or join #matrix-live:matrix.org to discuss Matrix Live.

Roll your own

You don’t want to embed some stranger’s JavaScript on your own page? You want to modify Matrix Live to support some specific feature for your blog? No problem. Matrix Live is an open source project on Gitlab. You can either download Matrix Live in a zip file, upload its contents to your web host and - voilà - you now have your own generate.html script that will generate links to your local Matrix Live copy.

Or (if you want to dive into the code) you can roll your own Matrix Live by cloning our Gitlab repository, downloading the required modules (requires installed npm) and building the minified version using our build script:

git clone https://gitlab.com/argit/matrix-live
npm install
npm run-script build  

The build will be stored in the dist/ folder and should be equivalent to the zip file you can download from our website.

Frequently Asked Questions

Any questions not answered here? Send them along via email to hello@hello-matrix.net or join #matrix-live:matrix.org to discuss Matrix Live.

Why use Matrix Live?

It’s free, very easy to use and by building on Matrix you get the stability and features of Matrix as a communications platform for free. There are a lot of liveblogging services out there, but they are often overkill for a simple, short liveblogging session. Also, Matrix Live is open source, so you don’t have to rely on us maintaining our version but you can just use your own.

Can I delete or edit messages if I have made a mistake?

Yes, you can delete (or “redact”) messages if you are an administrator in the room you liveblog in (which you should be, as you should have created a new room). See above under “Step 4”. You cannot edit (or backdate) messages.

Does Matrix Live work with end-to-end encrypted rooms?

No. The whole point of Matrix Live is to make the content of your room publicly available in a nicely formatted and auto-updating way. This does not correspond to secure end-to-end communication, thus Matrix Live cannot work if a room has end-to-end encryption enabled. Your homeserver should support HTTPS encryption, however, so your visitors will retrieve your liveblog over an encrypted channel.

Roadmap / What’s missing

Currently, the following features are planned for future updates: