{"id":14944,"date":"2018-05-31T10:38:02","date_gmt":"2018-05-31T09:38:02","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=14944"},"modified":"2020-09-22T09:57:32","modified_gmt":"2020-09-22T08:57:32","slug":"interactive-chat-new-content-type","status":"publish","type":"post","link":"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/","title":{"rendered":"Interactive Chat as a New Content\u00a0Type"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">After well over six months of an incredible effort, Al Jazeera rolled out public beta version of a set of sophisticated tools that allow to compose and publish an entirely new type of content \u2014\u00a0<strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">a scripted interactive chat<\/strong>.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The goal of the entire endeavour was to <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">create a more engaging and inclusive storytelling experience<\/strong> around the interview format. We worked under the premise that we can achieve that by <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">letting the readers seemingly directly interact with the characters at the heart of a story<\/strong>. All through one-on-one message exchanges.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">As the user experience designer and front-end developer on the project I had the pleasure to help design and build the ground-breaking product. Here\u2019s my take on it.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1GOluiIs_Ke29_8vjgLztIQ.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6580\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1GOluiIs_Ke29_8vjgLztIQ.png\" title=\"\" alt=\"\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Welcome InterviewJS<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/interviewjs.io\/\">InterviewJS<\/a> puts readers at the heart of a story allowing them to seemingly directly engage with the characters involved via a chat-like app. Of course, chats have been around for a while but the possibility to script a conversation, then edit, publish and share it \u2014 like you\u2019d normally do with a blog post \u2014 is completely new.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Al Jazeera\u2019s product is a workflow tool that allows to create and distribute scripted interactive chats the same way that WordPress does with plain articles. <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s both an editor and a publishing platform<\/strong>. You can sign in, compose your piece and publish it as you\u2019d do with a blog post.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Access to the platform is entirely <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">free<\/strong> which enables anyone to start composing scripted chats. Best of all: <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Al Jazeera is completely opening the source code<\/strong> which means that you can easily fork the <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/github.com\/AJInteractive\/InterviewJS\">code repository<\/a> and contribute back with pull requests or simply set up your own instance of InterviewJS.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The scripted\u00a0chat<\/h2>\n<div id=\"attachment_6580\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/0lpzApcADNIlE0Y-r.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/0lpzApcADNIlE0Y-r.gif\" alt=\"\" width=\"1200\" height=\"876\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">InterviewJS scripted chat\u00a0sample<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">A scripted chat is an interactive chat based on a real interview transcript or a script designed by the storyteller. <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">End-readers interact with the interviewees directly by making comments and asking questions as if they would be leading the conversation<\/strong> when, in fact, they\u2019re following a path set out for them by the creator of the story. <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Readers\u2019 choices have effect only on the order in which the content is being served<\/strong>.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Such chats allow any kind of content \u2014the <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">reader can request and receive not only texts, but also links, images, videos, maps and other embeds<\/strong>. And although it enables scripting questionable story scenarios \u2014 where, for example, Barack Obama sends you an animated GIF\u2014 it does empower storytellers to craft their stories as they see fit.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">What it\u2019s best\u00a0for<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">InterviewJS works <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">best on stories with a few characters, preferably with contrasting views<\/strong> but not exclusively. In fact, one of InterviewJS pilot stories is a <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/story.interviewjs.io\/itqhdP8EQ4vFQH2mM5FDes\/\">one-on-one interview with Snowden<\/a>. Stories where multimedia, maps, videos and links are being shared by interviewees are likely to be more engaging for the end-reader.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">And although InterviewJS is a tool created by journalists for journalists, it doesn\u2019t mean that it doesn\u2019t work for anyone else. Quite the opposite. And so I\u2019m interested in seeing the non-journalistic stories people may be creating with it. I see it being useful in education, as an innovative take on FAQs, an element of an escape room experience or\u2026 you name it!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1X3tkHIhmCInxvunzYS4LBA.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6580\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1X3tkHIhmCInxvunzYS4LBA.png\" title=\"\" alt=\"\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">InterviewJS ecosystem<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Our work on InterviewJS involved creation of four different packages, each living its own life in a dedicated environment:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/composer.interviewjs.io\/\">The Story Composer\u00a0<\/a>\u2014 the only area protected by an authentication provider where story creators can sign in to manage, compose, edit and publish their stories.<\/li>\n<li>The Story Viewer \u2014 used to render published stories. It takes dataset of a story created by the journalist and renders it as a navigable, interactive chat application. Each story has a unique URL where it can be accessed. And \u2014 as stories are not publicly listed anywhere \u2014 your piece remains secret unless you share it.<\/li>\n<li><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/styleguide.interviewjs.io\/\">The Style-guide<\/a> running on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.catalog.style\/\">Catalog\u00a0<\/a>\u2014 a \u201cliving\u201d design documentation and front-end architecture reference. It lists the library of custom-made reusable React components we developed and used to assemble InterviewJS\u2019 UIs.<\/li>\n<li>The public-facing website: <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/interviewjs.io\/\">https:\/\/interviewjs.io<\/a><\/li>\n<\/ol>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The process<\/h2>\n<div id=\"attachment_6580\" style=\"width: 4074px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1I3y1yailweKSIz9kHzba7w.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1I3y1yailweKSIz9kHzba7w.png\" alt=\"\" width=\"4064\" height=\"2578\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">At one of our team\u00a0meetings<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">InterviewJS is a fruit of work of <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/interviewjs.io\/about.html\">an incredible team<\/a> of journalists, producers, designers and developers spread across 5 countries and just as many time zones. We did occasionally meet in person \u2014 thought not altogether at once \u2014 but <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">most of our collaboration was remote<\/strong>. Aside from the occasional team gatherings in London and Doha, we mainly used <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/slack.com\/\">Slack<\/a> and email to communicate and <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/appear.in\/\">appear.in<\/a> for our meetings and <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\">remote usability testing<\/a> sessions. It all worked wonders with only a few occasional glitches.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Design<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Our design phase went on for a little over two months. We worked off of early sketches created internally at Al Jazeera that I took as a base for subsequent design iterations. They were not \u201cprescriptive\u201d \u2014 as Juliana Ruhfus, the coordinator on the project, continuously stressed out from the early days \u2014 but I found them to be visionary and they shaped greatly the direction in which we went with the polished designs.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1F1vL6BEsopqOZ9yx2e58rw.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1F1vL6BEsopqOZ9yx2e58rw.png\" alt=\"\" width=\"2700\" height=\"1798\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Early sketches by Juliana\u00a0Ruhfus<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">From then onwards, I\u2019d use <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.fiftythree.com\/paper\">Paper<\/a> to draw rough sketches and early wireframes and <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.sketchapp.com\/\">Sketch<\/a> to design the user interface. While we\u2019re at it, it\u2019s worth mentioning how I found prototyping message exchanges incredibly frustrating and counter-productive. After a few trials I quickly began <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">avoiding to prototype the editorial elements of the product and focused on the core UI<\/strong>.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Wondering what\u2019s the best approach\/process people follow to prototype chatbots. Because it can\u2019t be this: <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/A9uMceGyob\">pic.twitter.com\/A9uMceGyob<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 piotr f. (@presentday) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\/status\/923490512249737216?ref_src=twsrc%5Etfw\">October 26, 2017<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Altogether, we spent roughly about 30 days working on the final designs. The only way I know this is that each time I\u2019d be doing revisions, I\u2019d duplicate previous version of the Sketch file and name it by the date of edit.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">From the very early wireframes to a nicely polished, sophisticated UI and design system\u2014it took us over 30 iterations to get things right. Here\u2019s our journey in a snap.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/GENSummit?src=hash&amp;ref_src=twsrc%5Etfw\">#GENSummit<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/AAH3PoPej5\">pic.twitter.com\/AAH3PoPej5<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/978247221140447237?ref_src=twsrc%5Etfw\">March 26, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Once I had the final designs ready to be tested, I quickly linked the views together with a prototyping tool. A couple of days later, we already had fellow designers and storytellers playing with the prototype and feeding back with invaluable insight.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1H_n50N7TZ_GAtahS2dfT_Q.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1H_n50N7TZ_GAtahS2dfT_Q.png\" alt=\"\" width=\"2700\" height=\"1768\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">The prototype<\/p><\/div>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Development<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We kicked off development with creation of a mono repository holding all required packages. <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/styleguide.interviewjs.io\/\">Our living style-guide<\/a>, running on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/catalog.style\/\">Catalog<\/a>, was then the first to see the light of day. We needed it in order to feed all other packages with a set of custom made React &amp; styled-components that we\u2019d later use to assemble UIs of both apps: the Composer and the Viewer.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">We have concluded and published our style-guide of reusable React components we\u2019re using to build our UIs. It all will be up for grabs soon. In the meantime do have a look: <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/0nvveKATv9\">https:\/\/t.co\/0nvveKATv9<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/n0Q9QidZ0e\">pic.twitter.com\/n0Q9QidZ0e<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/965630572218535936?ref_src=twsrc%5Etfw\">February 19, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We then moved to building Composer views and started feeding them with some dummy JSON data using Redux. This may have been the most problematic part for me as I haven\u2019t really done much Redux beforehand. Enter Wes Bos and his thorough \u201c<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/learnredux.com\/\">Learn Redux<\/a>\u201d online intro course\u2014after watching the thing a couple of times <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\/status\/961917496826716160\">I was ready to bring life into the Composer<\/a>.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">It works! Now to redux all things. ???? <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/VAIlpS3ZmN\">pic.twitter.com\/VAIlpS3ZmN<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 piotr f. (@presentday) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\/status\/961970531640791041?ref_src=twsrc%5Etfw\">February 9, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">What happened next was probably the hardest dev sprint I\u2019ve been subject to in my entire career. Of my own free will, that is. Being the sole front-end developer on the project I obviously wanted to make things shine, the perfectionist in me was convinced I was building a cathedral. This translated into many sleepless nights and short weekends obsessing about the tiny details very few would notice. One of the lessons I\u2019d like to take out from this endeavor is to adhere to the <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">80\/20 rule<\/a> more in the future ????.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Two months in, I handed over Composer\u2019s front-end to <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/gridinoc\">@gridinoc<\/a> and switched to implementing the Viewer. That was fairly straightforward with just a couple of exceptions:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>We wanted the stories to be played back without needing to log in, yet we needed to save readers\u2019 progress for them to be able to restart conversations from where they left off. We therefore needed to rely on <em>localstorage<\/em> which has obvious size limitations depending on the device you\u2019re accessing the site from. We chose to create <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">history<\/strong> array holding reader\u2019s path in the chat that would reference items from the source <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">storyline<\/strong> array. Although it wasn\u2019t the easiest to debug later on, it probably saved us quite some hassle in fixing inline base64 assets filling <em>localstorage<\/em> quickly.<\/li>\n<li>When the reader is presented with a binary choice, which interviewee\u2019s bubble then the Viewer displays after tapping on either of the CTAs? What happens if there are more interviewee\u2019s bubbles in a row? Can the interviewee start a chat or the user or both? What happens if the readers reach the end of a chat? Although answers to these questions may seem obvious now, we really needed to crack on this for a while and refactor <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/github.com\/AJInteractive\/InterviewJS\/blob\/develop\/packages\/viewer\/src\/views\/Chat.js#L51-L199\">our Chat.js<\/a> multiple times to get this right.<\/li>\n<\/ol>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Testing<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I had the pleasure to conduct just a couple of the many usability testing sessions AJ run on InterviewJS. In the early days we tested remotely, via appear.in. Once the project reached alpha in late March, we set up a collaborative testing workshop in London. Unfortunately, I had to miss out on the following testing sessions in London and Doha. That said, after all these years, <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\/status\/951823194679279621\">I still find them to be the most gratifying and joyful learning experience for the designer in me<\/a>.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">We\u2019ve invited a bunch of storytellers to help us test the alpha version of our Story Composer. So here they are, working very hard on their very first <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a> pieces. <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/YLyn6E8L22\">pic.twitter.com\/YLyn6E8L22<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/976072176318275585?ref_src=twsrc%5Etfw\">March 20, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The Story\u00a0Composer<\/h2>\n<div id=\"attachment_6580\" style=\"width: 9570px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1OhXu8d_77WQWAHiawhXjHA.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1OhXu8d_77WQWAHiawhXjHA.png\" alt=\"\" width=\"9560\" height=\"3756\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">All states of the\u00a0Composer<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The Composer is a fairly complex beast with quite a few views, independent user flows, a bunch of modals and other contextual items. The figure above illustrates all incorporated states of the app which, once you\u2019re passed authentication screens, we can easily narrow down to: story library, story creation wizard, the actual story editor and story publish wizard.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1WuCB7LFmrHXhKUQ66QWgNw.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1WuCB7LFmrHXhKUQ66QWgNw.png\" alt=\"\" width=\"2700\" height=\"1896\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Story editor<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The editor is where most of the magic happens: storytellers create new interviewees, store interview transcripts, add user actions and interviewee\u2019s responses. It\u2019s also where they get to preview their chats. The central area of the editor serves as the storyline canvas where story creators add interviewees\u2019 speech bubbles<em> (left panel)<\/em> and end-readers\u2019 actions<em> (right panel)<\/em>.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The Story\u00a0Viewer<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">At the core of the Story Viewer is the actual chat with an interviewee. It\u2019s a one-on-one conversation which comes down to: a) end-reader asking questions, each user action becoming a speech bubble appearing from the right b) interviewee replying with text or media bubbles appearing from the left.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Aside from the actual chat experience, InterviewJS gives the author means to ease readers in and out of the chat by elegant introduction and outro screens \u2014 all to guarantee a continuous storytelling experience.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1DfLIN1TlXScQlZ7ogQAzAg.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1DfLIN1TlXScQlZ7ogQAzAg.png\" alt=\"\" width=\"2700\" height=\"1894\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Viewer intro\u00a0screens<\/p><\/div>\n<div id=\"attachment_6580\" style=\"width: 2610px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1FO2Tf9zlifYTX4x-7LRezQ.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1FO2Tf9zlifYTX4x-7LRezQ.png\" alt=\"\" width=\"2600\" height=\"1370\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Viewer chat\u00a0screens<\/p><\/div>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1-QowP0tMpTiv-7g2iSi2dg.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1-QowP0tMpTiv-7g2iSi2dg.png\" alt=\"\" width=\"2700\" height=\"1894\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Viewer outro\u00a0screens<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Each InterviewJS story has its own unique ID used to generate its public URL and reference data being saved onto browser\u2019s <em>localstorage<\/em>. <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We use localstorage to save end-reader\u2019s chat history and poll choices<\/strong>. We need the former to allow readers to return to unfinished chats and pick up where they left off as well as to calculate the score of how much information was consumed by a single reader. We use the latter to block successive poll submits.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Your readers will be able to switch between interviewees at any point in time. More importantly, they will be able to pick up where they left off afterwards!<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chats?src=hash&amp;ref_src=twsrc%5Etfw\">#chats<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/messages?src=hash&amp;ref_src=twsrc%5Etfw\">#messages<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/XDrQtdujhQ\">pic.twitter.com\/XDrQtdujhQ<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/978295026622058496?ref_src=twsrc%5Etfw\">March 26, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The navigation is linear and straightforward. There\u2019s usually only one way to move forward. At any point in time readers can go back a step in the flow all the way to the intro screens. Story elements \u2014 such as title and byline \u2014 and information about the platform itself are also available at all times. These details populate story\u2019s meta tags which social networks rely on for generating link previews.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The fine\u00a0details<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Having spent an enormous amount of time polishing up InterviewJS designs and tweaking micro-interactions, I thought I\u2019d share a small compilation of the \u201c<a class=\"link link--blue fontWeight-4\"href=\"http:\/\/littlebigdetails.com\/\">little big details<\/a>\u201d we thought about and implemented to make the product POP.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Responsive viewer<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Your <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a> stories will perform nicely on all devices thanks to responsive UI we\u2019ll building. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbot?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbot<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/DniFund?src=hash&amp;ref_src=twsrc%5Etfw\">#DniFund<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/hackshackers?src=hash&amp;ref_src=twsrc%5Etfw\">#hackshackers<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/NICAR18?src=hash&amp;ref_src=twsrc%5Etfw\">#NICAR18<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/iGyNT2LHip\">pic.twitter.com\/iGyNT2LHip<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/974573196874788865?ref_src=twsrc%5Etfw\">March 16, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Emojis<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">At any point in time, your readers will be able to respond to your interviewees with emojis. ????????????????????<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbot?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbot<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/emojis?src=hash&amp;ref_src=twsrc%5Etfw\">#emojis<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/gif?src=hash&amp;ref_src=twsrc%5Etfw\">#gif<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/animation?src=hash&amp;ref_src=twsrc%5Etfw\">#animation<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/DniFund?src=hash&amp;ref_src=twsrc%5Etfw\">#DniFund<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/aljazeera?src=hash&amp;ref_src=twsrc%5Etfw\">#aljazeera<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/tools?src=hash&amp;ref_src=twsrc%5Etfw\">#tools<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/4FnqL5YpA2\">pic.twitter.com\/4FnqL5YpA2<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/975419166059651073?ref_src=twsrc%5Etfw\">March 18, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Dancing bubbles when editing previously added chat\u00a0nodes<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">We\u2019re adding the functionality to edit previously added speech bubbles. Now how\u2019s that?<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/ui?src=hash&amp;ref_src=twsrc%5Etfw\">#ui<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/design?src=hash&amp;ref_src=twsrc%5Etfw\">#design<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbot?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbot<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/messaging?src=hash&amp;ref_src=twsrc%5Etfw\">#messaging<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/bots?src=hash&amp;ref_src=twsrc%5Etfw\">#bots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/interviews?src=hash&amp;ref_src=twsrc%5Etfw\">#interviews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/reactjs?src=hash&amp;ref_src=twsrc%5Etfw\">#reactjs<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/8bKi6ov8Fs\">pic.twitter.com\/8bKi6ov8Fs<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/984084050561388550?ref_src=twsrc%5Etfw\">April 11, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Intro tour to the\u00a0composer<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">As we don\u2019t want you to miss out on all the fancy things you can do with <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>, we\u2019re preparing a quick welcome tour to greet you with the first time you\u2019ll visit our story composer.????????<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/tools?src=hash&amp;ref_src=twsrc%5Etfw\">#tools<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/mCzUk0xhuI\">pic.twitter.com\/mCzUk0xhuI<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/978704851424153605?ref_src=twsrc%5Etfw\">March 27, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Tablet-friendly composer<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">As our story Composer works actually pretty well on tablets, you\u2019ll be able to script your stories on the go.????????<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/newsroom?src=hash&amp;ref_src=twsrc%5Etfw\">#newsroom<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytellers?src=hash&amp;ref_src=twsrc%5Etfw\">#storytellers<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytellingsaveslives?src=hash&amp;ref_src=twsrc%5Etfw\">#storytellingsaveslives<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/juETWoVFtB\">pic.twitter.com\/juETWoVFtB<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/975852902731452416?ref_src=twsrc%5Etfw\">March 19, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Drag &amp; drop composer<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">We want to make editing of stories as smooth as possible. So today we added quick drag &amp; drop support to our storyline composer. Whoah?<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJs?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJs<\/a>. Coming soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/tools?src=hash&amp;ref_src=twsrc%5Etfw\">#tools<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbot?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbot<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/ui?src=hash&amp;ref_src=twsrc%5Etfw\">#ui<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/reactjs?src=hash&amp;ref_src=twsrc%5Etfw\">#reactjs<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/22K7M59MTL\">pic.twitter.com\/22K7M59MTL<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/971755705719025666?ref_src=twsrc%5Etfw\">March 8, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The possibility to re-order interviewees<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Want an easy way to reorder interviewees? Like this? You\u2019re welcome!<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/InterviewJS?src=hash&amp;ref_src=twsrc%5Etfw\">#InterviewJS<\/a>. Coming very soon.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/ui?src=hash&amp;ref_src=twsrc%5Etfw\">#ui<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/design?src=hash&amp;ref_src=twsrc%5Etfw\">#design<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/product?src=hash&amp;ref_src=twsrc%5Etfw\">#product<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/reactjs?src=hash&amp;ref_src=twsrc%5Etfw\">#reactjs<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbots?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbots<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/chatbot?src=hash&amp;ref_src=twsrc%5Etfw\">#chatbot<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/interviews?src=hash&amp;ref_src=twsrc%5Etfw\">#interviews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/gif?src=hash&amp;ref_src=twsrc%5Etfw\">#gif<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/interface?src=hash&amp;ref_src=twsrc%5Etfw\">#interface<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/k1P51T7eAt\">pic.twitter.com\/k1P51T7eAt<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/985180277881393152?ref_src=twsrc%5Etfw\">April 14, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Intelligent speech bubble colour\u00a0coding<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">We\u2019re integrating `get-contrast` library to calculate WCAG-appropriate text colour based on the custom background you assign to your interviewees. Pretty sweet, huh?<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/interviewjs?src=hash&amp;ref_src=twsrc%5Etfw\">#interviewjs<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/littlebigdetails?src=hash&amp;ref_src=twsrc%5Etfw\">#littlebigdetails<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/ixd?src=hash&amp;ref_src=twsrc%5Etfw\">#ixd<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/ux?src=hash&amp;ref_src=twsrc%5Etfw\">#ux<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/DniFund?src=hash&amp;ref_src=twsrc%5Etfw\">#DniFund<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/EDM57WI1pr\">pic.twitter.com\/EDM57WI1pr<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/973721107890098176?ref_src=twsrc%5Etfw\">March 14, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Simple opinion\u00a0poll<\/h2>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Let your readers have their say. We\u2019re making it easy for you to create simple binary option polls you can close your <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/interviewjs?src=hash&amp;ref_src=twsrc%5Etfw\">#interviewjs<\/a> stories with.<a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opensource?src=hash&amp;ref_src=twsrc%5Etfw\">#opensource<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/opennews?src=hash&amp;ref_src=twsrc%5Etfw\">#opennews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/news?src=hash&amp;ref_src=twsrc%5Etfw\">#news<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/toolsfornews?src=hash&amp;ref_src=twsrc%5Etfw\">#toolsfornews<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/journalism?src=hash&amp;ref_src=twsrc%5Etfw\">#journalism<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/storytelling?src=hash&amp;ref_src=twsrc%5Etfw\">#storytelling<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/nicar18?src=hash&amp;ref_src=twsrc%5Etfw\">#nicar18<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/googledni?src=hash&amp;ref_src=twsrc%5Etfw\">#googledni<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/hashtag\/DniFund?src=hash&amp;ref_src=twsrc%5Etfw\">#DniFund<\/a> <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/t.co\/woJSm6nP2X\">pic.twitter.com\/woJSm6nP2X<\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 InterviewJS (@interview_js) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\/status\/973588374572490752?ref_src=twsrc%5Etfw\">March 13, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The limitations<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">When talking about \u201cscripted chats\u201d we\u2019re already discarding a subset of features that one would normally expect from a chat app. <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">There isn\u2019t much sophisticated AI behind InterviewJS, but a very simple ruleset<\/strong> that enforces certain conversation scenarios. Which is why end-readers can\u2019t really type in their messages, or respond with selfies.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">During our early tests, we found that <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">even simple scripting logic can get complex quite easily<\/strong>. And although we did explore the possibility of allowing to script more sophisticated \u201cexplore\u201d loops and nest threads, it became evident soon enough that storytellers struggle to script more complex storylines. Which is why <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">we settled on simple branched narratives<\/strong> as outlined below.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1Su8jg2IVEx5m7uj_Rv5oaQ.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1Su8jg2IVEx5m7uj_Rv5oaQ.png\" alt=\"\" width=\"2700\" height=\"1346\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">Simple branched narratives<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u201cSimple branched narratives\u201d is a fancy way to say that end-readers, when presented with binary choices, can either go one way or the other. As such, it may as well happen that \u2014 unless the script has been cleverly structured \u2014\u00a0<strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">readers may never consume 100% of the content<\/strong>. We\u2019re cool with that.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The value<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The release of InterviewJS is important for several reasons. Here\u2019s a few that matter to me the most:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>By launching InterviewJS Al Jazeera enables storytellers to <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">craft an entirely new type of stories<\/strong> without having to worry about the technical side of things.<\/li>\n<li>By relying on web technologies AJ allows for scripted chats to be <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">widely available for a complete range of platforms and devices<\/strong>. In fact, InterviewJS stories perform great on phones, tablets and desktops no matter the operating system.<\/li>\n<li>By designing and developing the product in the open we hope to <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">create a community of web technologists willing to contribute<\/strong> as well as <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">inspire and educate young designers and developers<\/strong> working in the field of online storytelling.<\/li>\n<li>By completely open-sourcing the code AJ enables publishers to be able to <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">integrate the tool within their workflow<\/strong>, get involved and help to evolve the product once it\u2019s out of beta.<\/li>\n<li>By releasing it for free AJ wants <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">everyone to start creating their own scripted chats<\/strong>.<\/li>\n<\/ol>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Next steps<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">These are early days for InterviewJS. As we\u2019re currently testing the product ourselves we\u2019re also interested in comments, suggestions and bug reports coming from the community. We have already identified a bunch of issues we\u2019re trying to fix and enhancements that, we\u2019d hope, will make their way into the next public release before the product goes out of beta. Our roadmap is open and available on Github where anyone is welcome to join the conversation.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Closing remarks<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">InterviewJS is special to me in many ways. I enjoyed working with the talented team, I was thrilled to be involved in shaping a groundbreaking product, I found it incredibly exciting to be creating a new storytelling tool and I loved that we could deliver such an outstanding piece of software in such a short amount of time while collaborating 100% remotely. But most of all, I found a great pleasure in working openly on an open-source product. For all that, I\u2019m very grateful to be part of the InterviewJS team.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"dir=\"ltr\" lang=\"en\">Gotta love designing and developing in the open, being able to share progress as you go along, be receptive to suggestions coming from the community, respond to feedback\u2014all makes it a very enjoyable process. So I\u2019m having a blast working on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js?ref_src=twsrc%5Etfw\">@interview_js<\/a> these days.????????<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u2014 piotr f. (@presentday) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\/status\/971831581848604673?ref_src=twsrc%5Etfw\">March 8, 2018<\/a><\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Where from\u00a0here?<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If you\u2019re interested in learning more about the product, make sure to visit <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/interviewjs.io\/\">interviewjs.io<\/a>. I warmly invite you to run through the <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/interviewjs.io\/#examples\">pilot stories<\/a> too \u2014 they\u2019re great editorial pieces as well as fantastic examples of the full potential of the platform.<\/p>\n<div id=\"attachment_6580\" style=\"width: 2710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1FB9oqeoLqjXITDj1bpBn0A.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6580\" class=\"wp-image-6580 size-full\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2018\/05\/1FB9oqeoLqjXITDj1bpBn0A.png\" alt=\"\" width=\"2700\" height=\"1894\" \/><\/a><p id=\"caption-attachment-6580\" class=\"wp-caption-text\">First stories<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Share your comments and\/or suggestions with the team on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/interview_js\">Twitter<\/a> or via email at interviewjs@aljazeera.net. If you\u2019d like to look through the source code, you\u2019ll find it hanging on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/github.com\/AJInteractive\/InterviewJS\">Github<\/a>. For all things server-side and infrastructure, hit <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/gridinoc\">@gridinoc<\/a> while I\u2019ll be happy to address any design and front-end related questions at <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/presentday\">@presentday<\/a>. Thanks for reading!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>This article was originally published at <\/em><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/piotrf.pl\/wrote\/interactive-chat-the-new-content-type\"><em>piotrf.pl<\/em><\/a><em>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After well over six months of an incredible effort, Al Jazeera rolled out public beta version of a set of sophisticated tools that allow to compose and publish an entirely new type of content \u2014\u00a0a scripted interactive chat. The goal of the entire endeavour was to create a more engaging and inclusive storytelling experience around the interview format. We worked&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":232,"featured_media":15151,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-14944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-viewpoint"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"Al Jazeera rolled out a set of sophisticated tools that allow to compose and publish an entirely new type of content - a scripted interactive chat.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Interactive Chat as a New Content\u00a0Type | Marvel Blog\" \/>\n<meta property=\"og:description\" content=\"Al Jazeera rolled out a set of sophisticated tools that allow to compose and publish an entirely new type of content - a scripted interactive chat.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-31T09:38:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-22T08:57:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.shopjessicabuckley.com\/wp-content\/uploads\/2018\/05\/interactive-chat.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"13 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/www.shopjessicabuckley.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/www.shopjessicabuckley.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#website\",\"url\":\"https:\/\/www.shopjessicabuckley.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.shopjessicabuckley.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/www.shopjessicabuckley.com\/wp-content\/uploads\/2018\/05\/interactive-chat.png\",\"width\":1600,\"height\":600},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#webpage\",\"url\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\",\"name\":\"Interactive Chat as a New Content\\u00a0Type | Marvel Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#primaryimage\"},\"datePublished\":\"2018-05-31T09:38:02+00:00\",\"dateModified\":\"2020-09-22T08:57:32+00:00\",\"description\":\"Al Jazeera rolled out a set of sophisticated tools that allow to compose and publish an entirely new type of content - a scripted interactive chat.\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#\/schema\/person\/6a0d848967d92cf8527329db08e7c4b3\"},\"headline\":\"Interactive Chat as a New Content\\u00a0Type\",\"datePublished\":\"2018-05-31T09:38:02+00:00\",\"dateModified\":\"2020-09-22T08:57:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#primaryimage\"},\"articleSection\":\"Viewpoint\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.shopjessicabuckley.com\/blog\/interactive-chat-new-content-type\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#\/schema\/person\/6a0d848967d92cf8527329db08e7c4b3\",\"name\":\"Piotr F\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.shopjessicabuckley.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eed7e00545d615614b35b568c390ab79fd2036b6981a48a9c4f2ab8d0047b7cc?s=96&d=mm&r=g\",\"caption\":\"Piotr F\"},\"description\":\"Product designer &amp; full-stack developer. Eclectic fl\\u00e2neur extraordinaire in constant exploration of spoken, visual and programming languages.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts\/14944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/users\/232"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/comments?post=14944"}],"version-history":[{"count":0,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts\/14944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/media\/15151"}],"wp:attachment":[{"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/media?parent=14944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/categories?post=14944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/tags?post=14944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}