<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Blackbelt Labs - Medium]]></title>
        <description><![CDATA[We help transform businesses with Generative AI, Apps and APIs. - Medium]]></description>
        <link>https://medium.com/blackbeltlabs?source=rss----901b88fa598c---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Blackbelt Labs - Medium</title>
            <link>https://medium.com/blackbeltlabs?source=rss----901b88fa598c---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 11:34:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/blackbeltlabs" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Launching Zappy for remote teams — Zapier’s fast, free screen capture tool]]></title>
            <link>https://medium.com/blackbeltlabs/launching-zappy-for-remote-teams-18d4ee7758bc?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/18d4ee7758bc</guid>
            <category><![CDATA[remote]]></category>
            <category><![CDATA[screenshots]]></category>
            <category><![CDATA[remote-working]]></category>
            <category><![CDATA[macos]]></category>
            <category><![CDATA[screencast]]></category>
            <dc:creator><![CDATA[Mirko Kiefer]]></dc:creator>
            <pubDate>Wed, 08 Apr 2020 16:56:59 GMT</pubDate>
            <atom:updated>2020-04-08T16:56:59.660Z</atom:updated>
            <content:encoded><![CDATA[<h3>Launching Zappy for remote teams — Zapier’s fast, free screen capture tool</h3><h4>We built a remote communication tool for our friends at Zapier.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/930/1*kkWN--UeJdS6H1vO_4euhg.png" /></figure><p>Zappy allows you to quickly share annotated screenshots, screencasts and GIFs.<br>It does what dozens of other tools do in bits — but we wanted to build an all-in-one native Mac app with relentless focus on speedy UX.<br>Zappy has been heavily used by Zapier’s internal team for more than a year — and <a href="https://cdn.zappy.app/a4e4df3adface62e62bc3a6afab44388.png">we have been told they love it</a>!</p><p>A large part of the world has to suddenly work from home — so Zapier decided to <a href="https://zapier.com/zappy">make Zappy available for free to the public</a>.<br>After all, their impressive internal engagement and retention metrics were the key driver behind this.</p><h4><strong>Less misunderstandings with screenshots and colored arrows</strong></h4><p>It’s so much easier to get context across if you can add little images with arrows and rectangles to your messages. This is true for internal team chat, email or communicating to customers via helpdesk software or <a href="https://community.zapier.com/ask-the-community-3/salesforce-to-monday-com-integration-1131">community forums</a>.</p><p>Zapier even uses Zappy for all the annotated screenshots in their blog posts and <a href="https://zapier.com/help/create/basics/create-zaps">helpdesk</a> <a href="https://zapier.com/learn/getting-started-guide/what-is-zapier/">articles</a>.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fh8XgZGtdiR0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dh8XgZGtdiR0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fh8XgZGtdiR0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/fa05e0a37efb66d8dfec0e5ebc139153/href">https://medium.com/media/fa05e0a37efb66d8dfec0e5ebc139153/href</a></iframe><h4><strong>Zappy is all about speed — auto-uploading, keyboard shortcuts, minimal steps</strong></h4><p>Using visuals in chat communication is optional — speed really matters for adoption. Every extra step, every bit of latency affects usage.<br>Your brain decides in miliseconds if its worth going through the effort of taking a screenshot and putting arrows on it or rather to type out an extra couple sentences to get your point across.</p><h4>Level-up from screenshots to screencasts — with a single shortcut</h4><p>Zappy let’s you select the screen area you want to share with a single shortcut.<br>If a static screenshot is enough you can share a link to it right away.<br>Feel like going the extra-mile — turn on the webcam, use your mouse to point to things and add your voice to it.<br>We try to make the transition from static screenshots to rich screencasts as low-friction as possible.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TuA57jY207o7wnh3eePzvA.png" /></figure><h4>Zappy let’s Zapier keep company-wide screenshots and screencasts in a central place, enabling re-use and moderation of sensitive content</h4><p>Central storage on a company-controlled AWS S3 bucket was a key requirement for building Zappy. Support teams take screenshots all the time in their customer communication — if sensitive data was captured it can easily be removed even after the link was shared.<br>For helpdesk content, Zappy becomes a low-friction and reliable place to host any assets.</p><h4>Zappy makes images in Markdown less painful</h4><p>Zappy auto-uploads screenshots and give you a link to the raw image. To the raw image — not some magical resource that wraps a bunch of html and js around it.<br>This means you can directly embed it into markdown.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1002/1*DIIDm_pVm4wdIBv_yDSSDg.png" /></figure><p>Need to put a series of images into your document? Zappy gives you the link instantly, even if upload is still in progress or you are offline.<br>If you have tried to put lots of images into a markdown document, you may appreciate this little feature.</p><p><strong>Give Zappy a spin and let us know! We’ve got a few more things in store.</strong></p><ul><li><a href="https://zapier.com/zappy">Get Zappy</a></li><li><a href="https://www.producthunt.com/posts/zappy-for-macos">Zappy on ProductHunt</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=18d4ee7758bc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/launching-zappy-for-remote-teams-18d4ee7758bc">Launching Zappy for remote teams — Zapier’s fast, free screen capture tool</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Content Approval Slack app with Hootsuite]]></title>
            <link>https://medium.com/blackbeltlabs/content-approval-slack-app-with-hootsuite-4e48bb55f99c?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/4e48bb55f99c</guid>
            <category><![CDATA[hootsuite]]></category>
            <category><![CDATA[social-media-marketing]]></category>
            <category><![CDATA[content-creation]]></category>
            <category><![CDATA[marketing-automation]]></category>
            <category><![CDATA[slackbot]]></category>
            <dc:creator><![CDATA[Hera Castillo]]></dc:creator>
            <pubDate>Thu, 26 Mar 2020 08:36:47 GMT</pubDate>
            <atom:updated>2020-03-26T08:55:36.155Z</atom:updated>
            <content:encoded><![CDATA[<h3>Content Approval Slack Bot with Hootsuite</h3><h3>Are you using Slack to get approval from your team before scheduling your company’s content?</h3><p>If you’re having these conversations on Slack:</p><ul><li>Discussion about content ideas</li><li>Best time to post</li><li>Hashtags to use</li><li>The final approval of copy and assets</li></ul><p>Then shouldn’t you be able to <strong>schedule</strong> in Slack too?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/344/0*Z_oLrPNv9Awlu_Hl" /><figcaption>Schedule social media content on Hootsuite from Slack</figcaption></figure><p><strong>We think so. </strong>That’s why we built a bot that allows you to draft, discuss and schedule all your social media posts directly from Slack!</p><p>With this app, the conversation history and actions taken for each social media post is neatly organized under one thread. So that your content ideas become scheduled posts as smoothly as conversations flow.</p><p><strong>Let’s see how it works:</strong></p><p>It’s the last day of work at your sweater factory before Christmas holiday. The content schedule needs to be finished before you’re off to sip eggnog with your loved ones. Hera, your content editor sends your Christmas post to the <strong>#content-approval</strong> channel in Slack.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/765/0*PdvTXRIkAGRRbub0" /><figcaption>Draft your Instagram post on Slack and get feedback from your team.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DlUIrWpKdxnqTyFranWvzA.png" /><figcaption>Content approval discussions for each piece of content stored in one thread.</figcaption></figure><p>Your team weighs in and you agree. Since no one else has any input, you decide to schedule it for December 25th at 11 AM.</p><p>Hover over the message that contains your post. Click on the three dots. Choose <strong>Schedule Post on Hootsuite</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/756/0*1RgtlN55dW55D6x_" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Nycn0kkCrbeVOhpGQrSFCQ.png" /><figcaption>Get social media content approved and published from Slack.</figcaption></figure><p>Next, a pop up modal will appear.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fDjPTEnkfwUFCjosQY9Sjg.png" /><figcaption>Hootsuite Slack Bot for post scheduling.</figcaption></figure><p>Choose your platforms. We are posting on Instagram.</p><p>Choose the date and time agreed, while the copy is automatically taken from your Slack message.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dDGgBx60NO9olSukRBnHHA.png" /><figcaption>Hootsuite Slack bot confirms scheduled content.</figcaption></figure><p>When your post has been scheduled you will receive this message with a link to the Hootsuite post and a thumbnail of the image you uploaded.</p><p>Now you’re done —</p><p>But, wait…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*-FxkvckBMi9IKiYk" /></figure><p>Sara from sales just added a comment on Slack!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Tc_YYdN9ldXhak6nLNi7nA.png" /></figure><p>You should definitely add that!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8twtzlcUmG8fVtFD4Q_4rw.png" /><figcaption>Edit scheduled content with a Slack bot.</figcaption></figure><p>Go back to the Slack App thread showing your scheduled Hootsuite post. This time choose <strong>Edit Post on Hootsuite</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uJ7e2eFE66Pza7ce4pLFVA.png" /><figcaption>Edit your social media post on Slack.</figcaption></figure><p>A modal pops up so you can directly edit the caption, and other fields if necessary.</p><p>When you are finished, click <strong>Submit Changes </strong>and you will receive a message of confirmation.</p><p>And there’s more.</p><p>If you or someone on your team is unsure whether or not you have something scheduled for a specific date, you or them can use <strong>Slash commands</strong> to see what has been scheduled.</p><p>In Slack simply type</p><p>/scheduled <em>date</em></p><p>Your Slack app will return the posts scheduled for that day with image and caption.</p><p>Finally, on the date that your content is posted, you will receive a message on Slack with links to all the platforms where it was posted so you can check their performance later.</p><p>What do you think? Do you have a similar workflow but with different apps? Let us know!</p><p>We are beta testing our bot with some marketing agencies at the moment but would love to get it in the hands of more folks.</p><p>Sign up for beta access → <a href="https://l.facebook.com/l.php?u=https%3A%2F%2Fforms.gle%2F2nQ21GAATTJ6oZBJ9%3Ffbclid%3DIwAR3IKxDCeA_f-XQG5mUIuL07BJPL6oesr9kc5aXhE-FgxFxNno7TlZQWhZw&amp;h=AT3iLfBB3moh2BoisVYP9KM092ZRi5-LFhGzzk-Xp0HCl229xi26kS2oQRteQiA68hJ4MYuBbvT_OW0ZcAlDUNvjzhSjodB9DVA71RGXidCIzzdzrMnMH_iQFlz5c0OzkWtLoLX8YLwAgVBuISZuJYHUlMsWdHaMag">https://forms.gle/2nQ21GAATTJ6oZBJ9</a></p><p>Until the next bot!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4e48bb55f99c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/content-approval-slack-app-with-hootsuite-4e48bb55f99c">Content Approval Slack app with Hootsuite</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[We Built A Telegram OCR Bot That Reads Email Addresses from Facebook Group Requests]]></title>
            <link>https://medium.com/blackbeltlabs/we-built-a-telegram-ocr-bot-that-reads-email-addresses-from-facebook-group-requests-f21db64ee670?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/f21db64ee670</guid>
            <category><![CDATA[facebook-group-strategy]]></category>
            <category><![CDATA[facebook-group-marketing]]></category>
            <category><![CDATA[zapier]]></category>
            <category><![CDATA[ocr]]></category>
            <category><![CDATA[telegram-bot]]></category>
            <dc:creator><![CDATA[Hera Castillo]]></dc:creator>
            <pubDate>Wed, 25 Mar 2020 05:08:31 GMT</pubDate>
            <atom:updated>2020-03-25T09:25:08.862Z</atom:updated>
            <content:encoded><![CDATA[<h4>OCR Bot for Facebook Group Member Requests</h4><figure><img alt="Reading Facebook group member request email addresses" src="https://cdn-images-1.medium.com/max/1024/0*bPfEELR7urGJVsun" /><figcaption>Photo by <a href="https://unsplash.com/@timbennettcreative?utm_source=medium&amp;utm_medium=referral">Tim Bennett</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Facebook Group Newsletter</h3><p>We run a facebook group where members share tips and ideas about Zapier, the app connector and workflow automator. Check out our Zapier Automation Experts group <a href="https://www.facebook.com/groups/zapier/">here</a>.</p><p>We wanted to start a newsletter for our members, but realized that getting emails from our members was a painful manual process. Since our core operations are apps, automations and app integrations, we <em>had</em> to build a bot. The workflow comprises the Facebook group, Telegram and Airtable. Here’s the story:</p><h3>Collecting emails from group request forms</h3><p>Facebook doesn’t provide the email address of group members so we asked new members for them the only way we could: with the Facebook group request forms.</p><p>People began giving us their email addresses for our newsletter, but we couldn’t save them! We accepted the first dozen people before realizing that after we hit ‘Accept’, the questionnaires disappeared forever effectively losing those email addresses. (If you believe we lost your email address because you’ve never received a newsletter and would like one, sign up <a href="http://eepurl.com/gXc6CD">us</a>.) We needed another way to store these email address.</p><p>We began taking screenshots from our phones of the requests before accepting them. We kept these in a shared folder while we figured out when and how to extract them.</p><h3>Keeping Facebook member approval screenshots for lack of an export</h3><p>We finally had many email addresses and time to devote to the newsletter, but no one in the team was up for the task: reading JPEGs and doing data entry. Besides, the opportunity cost of having their talent and efforts spent on this task was too high. We knew we needed non human help.</p><h3>Using a Telegram OCR bot to automatically extract emails from screenshots</h3><p>First, we decided where we wanted to keep these emails. We chose Airtable: a database meets spreadsheet with tons of functionality and integrations that we would need in the future when we launched our newsletter.</p><p>Then, we decided in what app we would build the bot. We chose our most used messaging app, Telegram, because we spent a lot of time there and it has a really easy file sharing UX for mobile devices. (We’ve since developed a Zapier app that does this too with Slack. Sign up below to become a beta tester.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*A1peU5BMrECK0Z4QiHoE6g.jpeg" /></figure><h4>The workflow would be this:</h4><p>1. Review Group requests.<br>2. Take a screenshot of the request from our phones before hitting accept.<br>3. Open Telegram. Select the thread with the bot and dump the screenshots there.<br>4. The bot reads the image and extracts the email addresses and other details.<br>5. The bot sends the data to our newsletter base in Airtable.</p><p>The resulting bot was a practical and slightly <em>rude</em> helper. Rude because we programmed it to tell us a mean joke every time a screenshot was uploaded to the chat.</p><blockquote>“If you’re going to be two-faced, at least make one of them pretty.”</blockquote><p>That, of course, was unnecessary, but it makes us laugh every day.</p><p>If you want to try out our Zapier OCR app that also reads email addresses from Facebook group membership requests (but DOESN’T insult you), let us know your usecase here→ <a href="https://forms.gle/7xxefxwSa7jPh3JJ7">https://forms.gle/7xxefxwSa7jPh3JJ7</a> to get signed up to be a beta tester.</p><p>Until the next bot.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f21db64ee670" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/we-built-a-telegram-ocr-bot-that-reads-email-addresses-from-facebook-group-requests-f21db64ee670">We Built A Telegram OCR Bot That Reads Email Addresses from Facebook Group Requests</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Developing An App For Prefab Homes Buyers — The Design Phase]]></title>
            <link>https://medium.com/blackbeltlabs/developing-an-app-for-prefab-homes-buyers-the-design-phase-7c5cc6e453d8?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/7c5cc6e453d8</guid>
            <category><![CDATA[design-process]]></category>
            <category><![CDATA[prefab]]></category>
            <category><![CDATA[tiny-house]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[app-development]]></category>
            <dc:creator><![CDATA[Hera Castillo]]></dc:creator>
            <pubDate>Thu, 04 Jul 2019 15:36:01 GMT</pubDate>
            <atom:updated>2019-07-05T03:05:17.655Z</atom:updated>
            <content:encoded><![CDATA[<h3>Developing An App For Prefab Homes Buyers — The Design Phase</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DMXVB8NV_orE4AjS" /><figcaption>Photo by <a href="https://unsplash.com/@4dgraphic?utm_source=medium&amp;utm_medium=referral">Alexander Dummer</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>I was lucky to start my work at Blackbelt Labs, on day one of the design phase — the first stage of actual hands-on app development. I say actual app development because everything preceding it involves many, many conversations to help the client discover what they need. We call these road mapping workshops. Once business objectives are understood and stakeholder needs are identified, it was time to understand the users.</p><p><strong>Mapping Their Journey<br></strong>For this project, we partnered with a prefabricated home company.<br>They wanted an app that aids mostly first-time homeowners through the house building process. This was a challenging — but exciting — project for our team. Building a home can be a daunting experience just by the sheer size and complexity of the undertaking. However, the palpability of an actual home was irresistible to us since we are used to working with virtual elements in small screens. This was our chance to work with both the tangible and virtual.</p><p>But first, how do you build a prefabricated house?</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FQjIz1AqkGTszK%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fweek-wtf-moments-QjIz1AqkGTszK&amp;image=https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExNzYzNDk5YzZjZGYxNWRiMWViMzY2MDM2ZTY3MTRiZDgzMzlmN2ZlNSZjdD1n%2FQjIz1AqkGTszK%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="336" frameborder="0" scrolling="no"><a href="https://medium.com/media/e441b276282c6982ec7c967923ea0f06/href">https://medium.com/media/e441b276282c6982ec7c967923ea0f06/href</a></iframe><p>To find out we had to speak to our client’s former clients. We arranged interviews with dozens of homeowners who had gone through this long process and they helped us map it out. From the signing of the contract to the financing to the floor tile and appliance sampling, all the way to the home unveiling. These were some of the steps. But we were also interested in how the future homeowners were feeling throughout the process.</p><p><strong>Users Are Emotional <br></strong>At the interviews we spoke not only about the process but what it felt like to go through it. Our goal was to identify the problems that caused the negative feelings and to come up with features to alleviate them.</p><p>We were also interested in the positive feelings to somehow highlight them in the app. For example, a splash screen with words of encouragement or congratulations after completing a particularly difficult stage. Post interviews, we went back to create a customer story that mapped important events and tasks plus feelings and concerns.</p><p><strong>Keep It Simple — MVP</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FxThta8UkUaoqJoJQC4%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fshameless-episode-7-showtime-xThta8UkUaoqJoJQC4&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FxThta8UkUaoqJoJQC4%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="435" frameborder="0" scrolling="no"><a href="https://medium.com/media/2f4c9b9744fb1a7806600521194fc67d/href">https://medium.com/media/2f4c9b9744fb1a7806600521194fc67d/href</a></iframe><p>From the first round of user feedback, we came up with many features and functions, however, when creating the first iteration on an app all we needed was an MVP — minimal viable product. But why just minimal? Because our list of seemingly useful features were just assumptions based on user’s feelings, concerns and suggestions. The only way to validate those is to actually test them with real users later on in the process.</p><p><strong>Content First Design, or Lack Thereof<br></strong>We engaged an experienced designer and provided him with our User Journey Map annotated with emotions through the use of Emojis.<br>The map also included the features and desired functions of our MVP. However, the designer, like us, needed more.</p><p>The concepts were strong but the content was missing on the client’s side.<br>We didn’t have enough details about what exactly would go in the app.<br>For example, one feature was checklists.</p><p>The year-long process was divided into stages and within each stage, there were certain tasks that had to be completed. The homebuyers said a checklist for the task would have helped them execute especially when it came to the tasks that required that some documents were printed and signed. Even though we knew the stages, we didn’t know the tasks nor the documents necessary.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F6oFNB3JPuLpAs%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F6oFNB3JPuLpAs%2Fgiphy.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F6oFNB3JPuLpAs%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="580" frameborder="0" scrolling="no"><a href="https://medium.com/media/a88ac4df98df2d26de12f8e8cbef93c1/href">https://medium.com/media/a88ac4df98df2d26de12f8e8cbef93c1/href</a></iframe><p>During this stage, I realized the importance of <strong>Content First Design</strong> — or the idea that in order to design effectively the designer must know the context and content well. Without it, the design process took much longer and required more revisions as content details came in and we had to solve again for sizing, colors, margins, layouts, etc.</p><p><strong>Click Dummy<br></strong>Time constraint forced us to work without content to start, but we eventually received full content details and were ready to demo our click dummy to users. We got a great response, and from the feedback, we made some adjustments to the UX and validated them with users again.</p><p>Next phase of production will be the coding, but the user validation does not end there. The next set of features would go through the same process: research, assumptions, design based on content, and user validation.</p><p>The importance of iterating on a controlled set of features to start (MVP) through user feedback was, for me, the biggest takeaway.</p><p>When you begin to design your product remember to keep the first iteration simple, to design around content and to validate all your feature and design assumptions with the homeowners.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FUqqVRaP8y4uo1GNxbN%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fart-houses-pink-house-UqqVRaP8y4uo1GNxbN&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FUqqVRaP8y4uo1GNxbN%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/5a2d663ad7e24c5f879d5bfa4e6b507f/href">https://medium.com/media/5a2d663ad7e24c5f879d5bfa4e6b507f/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7c5cc6e453d8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/developing-an-app-for-prefab-homes-buyers-the-design-phase-7c5cc6e453d8">Developing An App For Prefab Homes Buyers — The Design Phase</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Migrating a Parse backend]]></title>
            <link>https://medium.com/blackbeltlabs/migrating-a-parse-backend-f3512d5b4c34?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/f3512d5b4c34</guid>
            <category><![CDATA[parse]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[cloud-migration]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Nico Saueressig]]></dc:creator>
            <pubDate>Wed, 28 Jun 2017 12:47:31 GMT</pubDate>
            <atom:updated>2017-06-28T15:20:11.139Z</atom:updated>
            <content:encoded><![CDATA[<h4>How we took a first generation Swift app with <a href="https://en.wikipedia.org/wiki/Parse_(company)">Parse</a> backend and brought it back from the dead.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Zxr7ixqB5AeRS3rD3x9HFw.png" /><figcaption>Migrating a Parse backend with Sashido</figcaption></figure><p>At <a href="https://www.blackbeltlabs.com/">Blackbelt Labs</a> we recently had a client come to us with an app that needed to be revived. The backend had been built using Parse provided by Facebook. Meanwhile Parse has gone open source and the Facebook hosting option is not available anymore. Because of this the app stopped working. In order to get it to run again we had to do at least two things.</p><ul><li>Find a new hosting solution for the Parse backend</li><li>Make the app work with the new backend</li></ul><h4>Finding a Parse alternative</h4><p>So what we had to find was either an option to get Parse to work again or hook the app up to a new backend solution — Firebase came to mind.</p><p>After some research it turned out there were roughly two options if we kept Parse. Either we <strong>host our own Parse server</strong> on something like <a href="https://devcenter.heroku.com/articles/deploying-a-parse-server-to-heroku">Heroku</a>, <a href="https://www.digitalocean.com/community/tutorials/how-to-migrate-a-parse-app-to-parse-server-on-ubuntu-14-04">Digital Ocean</a>, our basement <strong>or</strong> we choose a <strong>managed </strong>version from companies like <a href="http://www.sashido.io/">Sashido.io</a>, <a href="http://back4app.com/">Back4App</a> and so on. Since the target of this project was just to revive the app as soon as possible <strong>we decided to use </strong><a href="http://www.sashido.io/"><strong>Sashido.io</strong></a>. We liked that they were operating in the same timezones as us and also they seemed like a quite early stage startup which we hoped would mean fast support. Since we had found a promising solution that allowed us to keep using Parse we headed on to the app itself.</p><h4>Migrating from Swift 1 to Swift 3</h4><p>The app had been built in Swift 1. We are now at Swift 3 with Swift 4 on the way. Some people might remember how naughty working in Swift 1 could be back in the day so I was prepared for battle when I opened the project in my current version of XCode. Of course I was greeted with a lot of errors and warnings. This was also my first time working with this app as I had not been part of the team that built it. I decided to just get it to build first. This meant getting rid of all the errors. There is an automatic migration that XCode does for you which was helpful but didn’t solve all the errors and warnings. I then started wielding through the error jungle line by line looking up API changes when needed. <strong>Sometimes this was easy and sometimes this was more tricky.</strong> The trickier parts were when I had to update core graphics components on which our app heavily relies.</p><p>For example, this….</p><pre>let subPath = CGPathCreateMutable()</pre><pre>CGPathMoveToPoint(subPath, nil, x, y)</pre><pre>CGPathAddQuadCurveToPoint(subPath, nil, x, y, x, y)</pre><p>turned into this:</p><pre>let path = CGMutablePath()</pre><pre>path.move(to: CGPoint(x: x, y: y))</pre><pre>path.addQuadCurve(to: CGPoint(x: x, y: y), control: CGPoint(x: x, y: y))</pre><p>At some point I got the app to build. Before it was time to hook it up I had to update our version of Parse to the most recent one. After trying to manually move the framework I decided to try the quick route and used cocoa pods. This worked instantly. The app was now without errors and ready to be hooked up to our backend!</p><h4>Parse hosting with Sashido</h4><p>The first thing I had to do was get an account with <a href="http://www.sashido.io/"><strong>Sashido.io</strong></a>. They give everyone a 14 days trial with full features. It went <strong>smooth and fast</strong>, you don’t even have to give them your paypal or credit card credentials upfront. In their dashboard you get a little tutorial with a code snippet to hook up your app. I fiddled the snippet into our existing code and it <strong>worked right away</strong>.</p><h4>Deploying cloud code</h4><p>Our app also used some cloud code to work with Twilio. Sashido provides you with a <strong>private Github repo to upload your cloud cod</strong>e. You just clone the repo, put your code in and push it. It is automatically built and deployed. After this our app was ready for a first test run — what can I say, it worked pretty much right away!</p><h4>Setting up push notifications on Sashido</h4><p>The only thing that was missing now was push notifications. All you need to do for this to work is <a href="http://www.appcoda.com/push-notification-ios/">set them u</a>p and upload your P12 file to Sashido. This is done with a <strong>simple drag&amp;drop</strong>. In the beginning I had some problems here because my setup was not correct, unfortunately in this case Sashido only tells you when push notifications have failed but <strong>there are no logs</strong>. I had to send my first support request. It took maybe <strong>2-3 hours</strong> to get a <strong>reply</strong> where they gave me the log for my failed push notifications. While the <strong>support</strong> was swift it would have been nicer to just have the logs instead.</p><h4>Parse debugging issues</h4><p>After we got push notifications to work we sent the app for our first feedback round back to the customer. They came back to us with some minor bugs and two new feature requests. To make these features work we had to write some cloud code. This is when our decision to go with a managed solution came back to haunt us. Since <strong>we didn’t have a local server</strong> to test our cloud code I had to always push to the server to test my changes. I wrote a quick git alias for this to speed up the <strong>feedback loop</strong>.</p><pre>alias splurge=&quot;git add . &amp;&amp; git commit -m &#39;another attempt at debugging&#39; &amp;&amp; git push origin master&quot;</pre><p>My only way to trouble shoot the code was either to use good old <em>console.log</em> with my code that sat on the server or come up with some interface in the cloud code to expose data back to me. After spending what felt like way too long on getting some basic functionalities set up I sent another support request about how to debug the cloud code. A <strong>big problem</strong> was that it turns out Parse server has a problem with <em>console.log</em> — as in, it just does not work. Unfortuntely I did not know this. I will write this fat so no one ever has to suffer the way I did again. <strong>Use console.info or console.warn if you need to log something on the Parse server. </strong>When I found out that this actually worked I was done very quickly.</p><h4>Conclusion</h4><p>Anyways — at this point we had revived the app completely and even added two features. It went <strong>smoother and faster than expected</strong>. The decision on whether you want to use a managed hosting solution, a self hosted solution or a new framework comes down entirely to your expertise with Parse and Node or something like Firebase. For me I didn’t have much or any experience in any of those so I stayed as close to what we already had as possible. At some points it <strong>would have been nice to have a local server</strong> to trouble shoot but in the end the only blocker was that I <strong>could not use console.log</strong>. Other then that a really smooth experience considering I had never worked with Parse and I had not written the app that needed to be revived. Would I use Parse if I had to build an app like this today? I’m not so sure.<strong> Googling for errors</strong> or potential solutions did <strong>not always</strong> leak up to date <strong>results</strong> or any results for that matter. For this project I think we did the right thing, kept it very lean, made our customer happy quickly and provided them with a user friendly no strings attached backend solution.</p><p>Reach out to us at <a href="https://www.blackbeltlabs.com/">Blackbelt Labs</a> if you need help with reviving your Parse based app.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f3512d5b4c34" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/migrating-a-parse-backend-f3512d5b4c34">Migrating a Parse backend</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Guide to Mobile Analytics  Part I: Beta Distribution, Bug and Crash Reporting]]></title>
            <link>https://medium.com/blackbeltlabs/a-guide-to-mobile-analytics-part-i-beta-distribution-bug-and-crash-reporting-bc59e4a7307b?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/bc59e4a7307b</guid>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[analytics]]></category>
            <dc:creator><![CDATA[o l y a v o l j a]]></dc:creator>
            <pubDate>Wed, 21 Jun 2017 10:58:32 GMT</pubDate>
            <atom:updated>2017-06-21T16:04:39.514Z</atom:updated>
            <content:encoded><![CDATA[<h4>This series of articles is a regularly updated guide into the world of mobile analytics. I grouped tools by their main functionality, presenting pros and cons of each. We start with tools for beta distribution and bug and crash reporting needs.</h4><p>Realising the first version or an date of your app always requires testing it beforehand. The first user impression matters. If something didn’t work out as expected the user might be gone forever. Testing is a core concept that helps building trusted relationships with your users.</p><p>I believe that the adoption of a tool is a good indicator of how reliable it is. You do not want to end up spending time implementing a tool that barely has users, is likely to be buggy, and possibly disappears soon.<br>In terms of adoption, there are three outstanding solutions for bug, crash reporting and beta distribution needs: TestFlight, Fabric (Crashlytics) and Hockey App.</p><p>I have defined ten criteria besides adoption that can help you choose the right tool. A more detailed explanation of each of the criteria is below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QtM29EtkhQbO1a4AmdOGvQ.png" /><figcaption>TestFlight VS Fabric (Crashlytics) VS HockeyApp</figcaption></figure><h4>Platform Support</h4><p>The number one reason to favour one of these tools over another is the platform or platforms your app is built for. If your app does not run on iPhones or iPads, you can ignore TestFlight. If your app has both iOS and Android versions it makes sense to combine TestFlight with Fabric or Hockey App. The last two are a necessity for Android and are complementary to TestFlight’s features. However, it is a common good practice to have “one source of truth” for different platforms. Either Fabric or Hockey App can perfectly fit the role of this “source”.</p><h4>Ease of Setup</h4><p>The next important criteria is the time your team needs to spend implementing a certain tool. In this regard Hockey App is the most time consuming. If gathering feedback and managing lists of testers is not a necessity I would rather go with Fabric or TestFlight.</p><h4>Review Time</h4><p>For Android there is no review required — your app can be instantly tested. Even for deploying in the Google Marketplace there is no review procedure.</p><p>For Windows Phone the reviews takes up to 5 working days. There are certain types of betas that can be available faster but in this case your beta and your app are different things and you would have to manually transfer data from one to another for an official release.</p><p>For iOS the review time differs between the type of testing you want to organise. If it is an internal test among your colleagues or family members you can add up to 100 testers through you Apple Developer account and your builds will be instantly available to these people. <br>For external testing the TestFlight review time for a new app and each release is about 24 hours. However there is a trick how you can save your app from 24 hour breaks. The next time you submit changes to the same version of the app, do it without launching a new one.</p><h4>Maximum Number of Testers</h4><p>For Android and Windows Phone — you can invite an unlimited number of testers using either Fabric or Hockey App.<br>For iOS the maximum number of testers is restricted by Apple and applies to all tools including TestFlight.</p><h4>Ease of Inviting Testers</h4><p>Bulk inviting testers to your app can be a minor feature if your team is small (let’s say up to 20 people) and you don’t have external testers. In this case Fabric can serve you well as this tool allows inviting one tester at a time by manually adding his email address. With TestFlight and HockeyApp you can invite a list of testers by uploading a CSV file.</p><h4>Segmenting Testers</h4><p>Segmenting testers is a feature that is available in each tool. The only difference is user friendliness of its implementation. It was hard to find tester grouping functionality in Fabric, for a long time I thought they just don’t have it.</p><h4>Multi Version Testing</h4><p>Multi version testing can significantly speed up the process of building and launching an app. It is a vital feature for apps in highly competitive markets. Both Fabric and HockeyApp provide multi version testing. A few months ago, TestFlight also added this functionality in beta mode.</p><h4>Tester Onboarding</h4><p>TestFlight tester onboarding is harsh. You send an invite, the user follows the link from the email and gets referred to the AppStore to download TestFlight. The user flow is very confusing. From experience, only around 5 to 20 percent of invited testers complete the process.<br>Fabric and HockeyApp provide a way better tester onboarding experience. Testers get an invitation via email, follow the link and press a download button after entering their name. The beta app is now on their device.</p><h4>Gathering Feedback</h4><p>The way feedback functionality works on TestFlight:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/965/1*k-K5AGXn7z-Rp3opv56EQg.png" /></figure><p>Yeah, that is it. Testers can send an email! Not very advanced feedback tooling. But Fabric doesn’t have any at all. From this perspective HockeyApp is the only proper way to go. Testers can even create video records of things that are confusing or work wrong to them. For big organisations where different departments or stakeholders are involved into the app testing process HockeyApp is the only viable solution on the market.</p><h4>Performance Reports</h4><p>TestFlight has very basic crash reporting — it simply shows the number of crashes per user. The absence of detailed crash reporting is one of the main reasons why TestFlight is commonly used in tandem with some other tool. Both Fabric and HockeyApp provide a broad range of bug, crash, engagement and event reports. Fabric recently even added a separate revenue report.</p><h4>Unique Features</h4><p>I believe Fabric’s popularity is driven by the broad range of <a href="https://docs.fabric.io/android/crashlytics/sharing-crash-reports.html?hipchat#supported-integrations">third-party integrations</a>. It is way easier to get data out of this tool. Being able to easily share results via GitHub, Slack, Jira makes performance visible and accessible to everyone in the team or even within the organisation. <br>Unique to HockeyApp is to me its active support community via Slack or email. When you need real people to help, you can get it fast with this tool.</p><p>After giving a talk on this topic I was asked about my <strong>favourite mobile analytics stack</strong>. <br>I can’t name a one size fits all solution. For example I definitely prefer Fabric’s user experience over HockeyApp. But the former does not allow you to invite hundreds or thousands of testers at a time or group them easily by certain criteria. <br>You need to identify your problems and define your goals to choose a stack that fits your product. Be careful choosing, ho-ho-ho… as migrating to another tool is honestly a pain and a big waste of time for your team.</p><p>Reach out to us at <a href="https://blackbeltlabs.com/">Blackbelt Labs</a> if you need help organising mobile user testing and setting up an analytics pipeline.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bc59e4a7307b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/a-guide-to-mobile-analytics-part-i-beta-distribution-bug-and-crash-reporting-bc59e4a7307b">A Guide to Mobile Analytics 🔧 Part I: Beta Distribution, Bug and Crash Reporting</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Launching Blackbelt Labs]]></title>
            <link>https://medium.com/blackbeltlabs/launching-blackbelt-labs-ff4aa6827fc4?source=rss----901b88fa598c---4</link>
            <guid isPermaLink="false">https://medium.com/p/ff4aa6827fc4</guid>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[iot]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[enterprise]]></category>
            <category><![CDATA[digital-transformation]]></category>
            <dc:creator><![CDATA[Mirko Kiefer]]></dc:creator>
            <pubDate>Wed, 07 Jun 2017 15:10:53 GMT</pubDate>
            <atom:updated>2017-06-07T15:28:28.411Z</atom:updated>
            <content:encoded><![CDATA[<h4>Bridging startup and enterprise app development with a team that combines design, analytics and engineering.</h4><p>It was in March 2015 when my good friend Johannes and I decided to jointly launch a freelance business for app development.<br>We were both based in beautiful Heidelberg and had been hacking together on various apps, open source and compiler development for years.</p><p>As we did not want to build just another all-in-one tech agency we exclusively focused on app development for iOS, only later adding Android and web apps.<br>This proved to serve us very well — we quickly became known as the go-to app developers in the <a href="https://en.wikipedia.org/wiki/Rhine-Neckar">Rhein-Neckar region</a> in Germany.<br>We further expanded our reach to the US with the help of our fantastic design partner Joey Primiani. Joey was recently listed in Forbes 30 under 30 and connected us to a number of exciting startups in California.</p><p>We were lucky to get a great office in the Dezernat16 startup center in Heidelberg. We did not manage to get the garage but our space still looks very much like you expect it from a bootstrapped business.</p><p>While I have been <a href="https://www.instagram.com/mirkokiefer/">traveling around the world</a> most of the time, it is still great to have a common base to meet.</p><p>Besides bringing us a number of local startup clients our office is a popular space for tech folks to just hang out and hack on stuff.<br>This way we very organically had three more team members join without us actively looking to grow. Konrad, Sebastian and Christian help us deliver on the ever growing demand for mobile solutions.<br>We further continued to grow our network of freelance partners which allowed us to take on larger projects.</p><p>Its been two years now and we are truly proud of what we were able to deliver in that time.</p><p>We built IoT solutions for robotic systems in manufacturing, worked on wearable fashion products presented at the New York Fashion Week, built a car-sharing platform, helped transform a large cruise line and much more.</p><p>We are especially happy about being able to work with startups, major enterprises and <a href="https://en.wikipedia.org/wiki/Mittelstand">German “Mittelstand”</a> companies at the same time. Each client has its unique challenges but there are many learnings that can be transferred between engagements.</p><p>In the next weeks we will work on showcasing some of the products we helped build and highlight key insights. So keep watching our blog.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*0J21dBXYoa5q2UzvZFnIFA.png" /></figure><p>Until now our growth has been purely based on word of mouth — we did not have any kind of active branding nor a real website. Client engagements mostly happened based on personal relationships of Johannes and me.</p><p>From this month on we are changing that. <a href="https://twitter.com/jp">Joey Primiani</a>, <a href="https://twitter.com/nicolrnscodin">Nico Saueressig</a> and <a href="https://twitter.com/olyavolja">Olga Kostova</a> are joining our core team. Together we are launching <a href="https://blackbeltlabs.com/">Blackbelt Labs</a> as a common brand identity and try to be more vocal about our work.</p><p>Joey brings in award-winning design skills and an excellent network in California and beyond. I will work closely with him to expand our US client base. At the same time his background will help our clients in Germany to iterate even faster from app prototypes to polished products.</p><p>Olga has years of experience in analytics and digital marketing, these skills are excellent complements to our app development offering. She has worked with a range of startups in 3d-printing and e-commerce as well as with enterprise clients in retail and travel. We are therefore proud to be able to offer professional help with KPI tracking and conversion optimization.</p><p>Nico joins us with a well-rounded background in mobile, backend development and DevOps and a good portion of entertainer skills. Nico and I are good friends since childhood. He previously worked at <a href="https://shutl.com/">Shutl</a>, a same-day delivery startup which was acquired by eBay. Being tired of enterprise employment we have long been in discussion to join forces.</p><p>At Blackbelt Labs we are shipping connected apps, backed by actionable analytics and lean infrastructure.</p><p>We will continue to strike a balance between startup and enterprise engagements. Our ideal client is open for remote collaboration combined with intense on-site periods. We are most effective when working on products as a full team, bringing together our design, analytics and engineering background.</p><p>Reach out to us at <a href="https://blackbeltlabs.com/">blackbeltlabs.com</a> if you want us to help connect with your mobile audience in the best possible way.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ff4aa6827fc4" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blackbeltlabs/launching-blackbelt-labs-ff4aa6827fc4">Launching Blackbelt Labs</a> was originally published in <a href="https://medium.com/blackbeltlabs">Blackbelt Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>