Home / Companies / Twilio / Blog / February 2020

February 2020 Summaries

41 posts from Twilio

Filter
Month: Year:
Post Summaries Back to Blog
Implementing Programmable Chat with Laravel PHP and Vue.js involves several key steps, including installing dependencies, setting up Twilio's chat service, creating a controller to manage token generation, and building a view component that interacts with the chat service. The application allows users to join channels, send messages, and switch between channels. The codebase includes various methods for handling user input, loading channel data, and updating the UI. To test the application, start the development server, fill in the form, and open two instances of the browser to interact with each other.
Feb 28, 2020 2,104 words in the original blog post.
Verizon's A2P 10DLC service is a major step in increasing deliverability and reliability of messaging, allowing brands to send messages at scale while protecting end-users from unwanted messages. The service is designed for application-to-person (A2P) messaging, which includes business messaging such as marketing messages, appointment reminders, and notifications. With the growing demand for A2P messaging, projected to reach 3.5 trillion messages by 2023, carriers are focused on protecting consumers while ensuring good actors have access to resources. Verizon's launch of its 10DLC service is expected to lead to steady growth in the A2P messaging market, with SMS and MMS accounting for a significant share. The service will help brands meet customer needs while setting them up for future communication regulations and channels.
Feb 28, 2020 746 words in the original blog post.
A WhatsApp bot with sentiment analysis using Python and Twilio is created. The bot uses a trained corpus file in JSON format, which defines a custom-built rule-based chatbot. It also utilizes TextBlob for sentiment analysis capabilities. The project consists of six files: five Python scripts and one JSON file. The files are used to create a simplebot module that takes user input, performs sentiment analysis, and triggers an escalation response if the emotional index increases above a threshold. The bot is integrated with Flask and ngrok to test and deploy it on Twilio's WhatsApp Sandbox.
Feb 28, 2020 4,845 words in the original blog post.
Matthew Gilliard's post explores the Doomsday algorithm, a method devised by John Horton Conway to determine the day of the week for any given date, offering a practical way to impress others with quick calendar calculations. The article explains how to find the "Doomsday" for any year and provides memorable anchor dates to simplify the process. To aid in mastering this algorithm, the post guides readers through building an SMS chatbot using Twilio Studio and Twilio Functions that tests the user's Doomsday calculations by sending random dates and verifying responses. This interactive approach not only enhances one's proficiency in the algorithm but also showcases the capabilities of Twilio's serverless platform in creating conversational workflows.
Feb 28, 2020 1,790 words in the original blog post.
The Regulations API Resource is now available in Public Beta, allowing customers to easily access regulatory compliance requirements for phone numbers in regulated geographies with a single API call. The resource provides a scalable solution for referencing regulatory information and helps prevent phone number disconnections due to non-compliance. Users can filter regulations based on ISO country codes, phone number types, and end-user types, and can update the information as regulations change. To ensure compliance, users should create or assign Regulatory Bundles for their phone numbers, and can find more information in Twilio's documentation and resources. The Regulations Resource is designed to be dynamic and referenced when required, and Twilio encourages users to try it out today.
Feb 28, 2020 714 words in the original blog post.
The article demonstrates how to use ASP.NET Core Razor Pages to build an application that collects phone number information on a web form and returns results, including caller ID information. The code uses the Twilio Helper Library for .NET to interact with the Twilio Lookup API, which provides real-time caller information retrieval. The application handles errors generated by the API and includes features such as validating phone numbers and displaying caller name and type if available. The article assumes a basic understanding of ASP.NET Core Razor Pages and C# programming, but provides sufficient guidance for developers to follow along with the tutorial.
Feb 27, 2020 2,932 words in the original blog post.
The tutorial guides users in building a WhatsApp chatbot to backup pictures from the app to Dropbox using Python, Flask, Twilio, and ngrok. The bot receives incoming messages, checks if they are images, and saves them to a specific folder on Dropbox based on the sender's phone number. The bot also responds with a confirmation message when an image is saved or provides instructions for users to access their saved pictures. The tutorial requires users to set up a Twilio account, create a Flask application, and configure ngrok to expose the app to the public internet. It also covers how to use the Dropbox API to upload and share files. The project uses environment variables to store sensitive information like the Dropbox token, making it more secure.
Feb 27, 2020 3,388 words in the original blog post.
Puppeteer, a Node.js library, provides a high-level API to control Chrome or Chromium over the DevTools protocol, allowing developers to write scripts that interact with web pages programmatically. By installing Puppeteer and navigating to a target webpage, developers can use methods like `page.click` and `page.type` to simulate user interactions. They can also use `page.waitFor` and `page.$` to wait for specific elements or selectors to appear on the page. With these capabilities, developers can extract data from web pages in a more dynamic way than static web scraping tools, making it easier to access information that is not available through public APIs.
Feb 27, 2020 1,396 words in the original blog post.
DigitalOcean is a cloud company that simplifies app creation for developers working independently, at tech startups, and within small and mid-sized businesses (SMBs). Their infrastructure and platform-as-a-service (IaaS and PaaS) solutions simplify the complexities of the cloud so developers can focus on creating great software. DigitalOcean's Hatch program is a global startup program that supports high-potential startups on their entrepreneurial journeys, providing membership, free technical support, mentorship, and access to their thriving global community. The company values simplicity, love for the developer community, an obsession with customer service, and open source, which has established a company and community whose mission is bringing software development within technical and economic reach of anyone around the world. DigitalOcean's high-quality tutorials, use and support for Open Source tools, focus on Community through their Q&A portal, and programs such as Hacktoberfest and meetups have helped them engage and grow mindshare with developers. The company believes in simplicity and treating every developer and customer, large and small, as uniquely valuable and human, always acting with a spirit of generosity and empathy. DigitalOcean's scale has been driven by its focus on super-serving the needs of developers, providing transparent and competitive pricing, high-quality tutorials, use and support for Open Source tools, and being remote-friendly in hiring talent from around the world.
Feb 27, 2020 1,585 words in the original blog post.
This summary provides an overview of the article "Building a Blazing Fast Object-to-Object Mapper in C# with .NET Core 3.1" by Gunnar Peipman. The author presents four different approaches to creating an object-to-object mapper: Unoptimized, Optimized, Dynamic code generation, and Lightweight Code Generation (LGC). Each approach is more complex than the previous one, and they are compared in terms of performance using benchmarking tests. The article also discusses the importance of choosing the right approach based on the specific requirements of the project. Additionally, it highlights the changes in the .NET Core framework over time and how these changes have impacted the performance of different object mapping techniques.
Feb 26, 2020 2,865 words in the original blog post.
Today we're talking to Daria Tsvenger, founder of The Dream Sprint, a science-based personal growth program that helps people find meaning and achieve their goals through accountability and personalized coaching. Daria's journey began after she experienced a severe existential crisis, which led her to create The Dream Sprint as a solution for others who feel stuck. She believes in the importance of having a growth mindset and has received positive feedback from her customers, who have described her program as a "mindset-shifting awakening". Daria's #2 metric for success is "focus", which she prioritizes over customer acquisition. To drive adoption, she uses an accountability mechanism that requires customers to complete exercises before proceeding with the program. If given $1 million, Daria would invest in custom tech and influencer marketing to further grow her business.
Feb 26, 2020 789 words in the original blog post.
Azure Functions v2 and above can include a Startup class, which enables the use of .NET Core's built-in Dependency Injection (DI). This allows for better project architecture, testing, and maintainability. To add DI to an Azure Function, a new file called "Startup.cs" is added with a namespace equal to the name of the project. The class implements FunctionsStartup, which itself implements IWebJobStartup. Dependencies are registered in the IoC container using services such as AddSingleton, AddScoped, and AddTransient. Injected classes can be used in HTTP Trigger functions by adding them as private properties with constructor injection. This enables better maintainability and testability of Azure Function projects.
Feb 25, 2020 844 words in the original blog post.
This tutorial teaches how to build a Laravel package for sending SMS using Twilio's API. To start, you need to set up a new package with Composer and define its autoloading settings. Next, you create a LaraTwilio class that serves as the public API for your package, which interacts with the Twilio PHP SDK library. You also need to create a service provider that binds the LaraTwilio class into Laravel's service container, ensuring it can be injected via dependency injection. Additionally, you define a facade to provide access to the LaraTwilio class and configure your package for discovery in Composer. By following these steps, you can create a reusable package that simplifies SMS integration with Twilio in your Laravel projects.
Feb 21, 2020 1,109 words in the original blog post.
Implementing real-time data visualization in Node.js with Twilio Sync allows for instant updates to application states across multiple devices and users. The sports survey application demonstrates how to add this functionality using Express, Twilio Sync, and JavaScript. By connecting the application state to a Twilio Sync document object, clients receive updates in real-time when the document is updated, enabling instantaneous display of survey results on all connected devices. This example showcases the capabilities of Twilio Sync for building modern and interactive applications, including chat apps, online games, ride-hailing apps, and collaboration tools.
Feb 21, 2020 3,118 words in the original blog post.
In a Laravel application, sending periodic emails using Twilio SendGrid is made possible by creating a custom artisan command that schedules the task. To achieve this, first install the necessary packages and set up the database for the application. Next, create a Seeder class to populate the users table with sample data. Then, create a new Console command class to send out emails using the SendGrid SDK. Finally, schedule the command to run daily or at any desired frequency using the `schedule()` method in the Kernel class. The process involves several steps, including setting up the database, creating the Seeder class, defining the custom artisan command, and scheduling it to run. After completing these steps, the application can send out periodic emails to registered users.
Feb 21, 2020 1,829 words in the original blog post.
This tutorial demonstrates how to set up a call routing system using Twilio Programmable Voice, Python, and Django. The goal is to route inbound calls based on the caller's number, playing different messages or forwarding calls to personal cell phones. The process involves setting up a free Twilio account, creating a virtual environment with Django and the Twilio REST library, provisioning a phone number, and configuring the project settings and files. The tutorial then guides through adding URL routes and view logic for call handling, including implementing a basic voice response and more complex logic to determine actions based on incoming caller numbers.
Feb 21, 2020 1,654 words in the original blog post.
A serverless function that validates phone numbers using the Twilio Lookup API is created and deployed on AWS Lambda. The application uses Python 3.8 as its runtime environment and relies on the Twilio Python Helper library to authenticate with the Twilio servers. The function takes a phone number as input, checks if it's valid, and returns information such as the carrier and caller ID data for the specified number. To test the function locally, the AWS Lambda console is used to create an event dictionary that includes the phone number, which is then passed to the function. A zip file containing the source code and dependencies is created and uploaded to the AWS Lambda console, where it's deployed as a serverless function. The function can be invoked directly or through an API Gateway endpoint.
Feb 21, 2020 2,827 words in the original blog post.
We built an application that provides information on food and recipes to users over WhatsApp using Twilio, Python, Flask, and MongoDB. The user journey involves sending a message with the name of a recipe and receiving a response with instructions to prepare the meal. We set up the Twilio WhatsApp sandbox, created a database with dummy recipe data, and wrote code to handle searches and send messages. We also exposed the application over the internet using ngrok and tested it by sending a message to a phone number.
Feb 21, 2020 1,596 words in the original blog post.
Authy for Chrome App & Extension End of Life: Google announced the end of support for Chrome Apps in January 2020, affecting Authy's app and extension for Chrome. As a result, Authy will no longer provide updates or bug fixes for these products. Users are recommended to switch to mobile apps that offer similar features and are fully supported. Multi-device functionality is highlighted as a key feature of the Authy mobile apps, allowing users to synchronize 2FA tokens between devices and create backup options.
Feb 21, 2020 351 words in the original blog post.
Twilio, as a communication platform, plays a significant role in ensuring the security and integrity of election communications in the United States. The company is committed to fulfilling its commitment to only leverage legitimate entities for wanted communications by following industry guidelines that shed light on what that means in different environments at scale. Twilio works closely with organizations like M3AAWG and CTIA to provide guidance on securing elections from interference, focusing on multi-factor authentication and email authentication using SPF, DKIM, and DMARC. The company recognizes the importance of consent in A2P messaging and emphasizes its need for obtaining consumer consent before sending promotional messages. With great power comes great responsibility, Twilio acknowledges its position in the industry and is working to ensure that its platform is used responsibly to amplify crucial security messages around election interference.
Feb 20, 2020 1,282 words in the original blog post.
This tutorial provides a comprehensive guide on how to validate phone numbers using Python, Azure Functions, and Twilio. The author starts by outlining the technical requirements for the project, including setting up an Azure function app, creating a Python environment, and installing the necessary libraries such as Twilio's Python Helper library. The code is then written to handle validation, which involves authenticating with Twilio using the obtained credentials, carrying out a lookup on the provided phone number, and returning a successful response if it's valid or an error message if not. The tutorial also covers testing locally, deploying the function to Azure, and discussing security considerations for production deployment.
Feb 20, 2020 1,534 words in the original blog post.
Twilio has expanded its Interconnect Exchange into Asia Pacific with the addition of a new location in Sydney, Australia, providing customers with private network connectivity options for improved quality, security, and network performance. The new exchange offers various connection methods such as cross-connect, VPN, and Bring-Your-Own-MPLS, and supports Elastic SIP Trunking and Voice WebRTC. Interconnect is designed to meet the needs of businesses that require mission-critical voice quality, offering scalability, direct access for sensitive data management, and network security. The expansion into APAC follows Twilio's previous launch in Europe and aims to provide better call quality options around the world. With the new location, customers can now share Interconnect connections across different projects for the Enterprise plan package, enhancing their overall experience with Twilio's cloud-based services.
Feb 20, 2020 383 words in the original blog post.
A trusted customer engagement platform is crucial for meeting and exceeding customers' expectations in the omnichannel journey, with 75% of consumers rewarding businesses that communicate effectively. To choose the right solution, developers need to consider four key areas: developer experience, product development, sales engineering, and carrier relations. These considerations include documentation, API quality, software layers, sales engineers, carrier connections, infrastructure, and operational excellence, as well as support resources and vendor communities. A robust customer engagement platform can differentiate a brand through innovative solutions that keep customers engaged for the long term.
Feb 20, 2020 834 words in the original blog post.
A company was facing challenges with their existing PABX system, which didn't allow them to innovate at the speed they needed to differentiate themselves from competitors. They wanted to introduce cutting-edge features like real-time transcription into their workflow but were unsure where to start. With Twilio Programmable Voice, they found a solution that allowed them to keep their existing PABX and integrate advanced technology into their roadmap. By configuring a SIP Domain on Twilio, they could send voice traffic from their PABX to Twilio and unlock the power of programmable voice. They then set up an authentication system and configured their PABX to use a trunk to connect with Twilio. With this setup, they were able to transcribe calls in real-time using a Python Flask application and return the audio as text. This solution enabled them to augment their existing PABX capabilities without having to "rip and replace" their system or pay more for licensed features.
Feb 20, 2020 1,236 words in the original blog post.
At Twilio, Black History Month is celebrated to honor the achievements and history of African Diaspora members. The company recognizes its own diverse range of experiences and stories, and shares these with its community. This year, Twilio celebrates its up-and-coming leaders in tech, including Danielle GreenUX Research Coordinator, Nathaniel OkenwaDeveloper Evangelist, Ashley GeorgeSr. Business Development Representative, Shawn OatesTechnical Program Manager, Mohammad BakhietSoftware Engineer, Dave RonoSenior Software Engineer, Keith FranklinManager, Agile Program Managers, and Takia RudolphSoftware Engineer 1 (Platform Engineering). These individuals share their personal experiences working at Twilio, highlighting the company's commitment to diversity, inclusion, and creating a sense of belonging.
Feb 18, 2020 1,347 words in the original blog post.
To build a WhatsApp chatbot with Ruby, Sinatra, and Twilio, start by setting up a new Ruby application, installing necessary gems, and configuring the Twilio API for WhatsApp. Create a webhook route to handle incoming messages, parse the message body, and respond with TwiML using the twilio-ruby library. Use APIs to retrieve dog or cat facts and pictures based on user input. Secure the webhook by validating the request signature using the Twilio auth token and rack middleware. Finally, test the bot by sending a message to the WhatsApp sandbox number and configure the ngrok tunnel to direct incoming messages to the application.
Feb 17, 2020 1,840 words in the original blog post.
Twilio's Alphanumeric Sender ID feature allows businesses to send personalized SMS messages with a customized sender name, increasing open rates and reinforcing brand identity. This feature is only available for upgraded Twilio accounts and is supported by certain countries, including those that require registration. Leveraging an alphanumeric sender ID can improve message delivery quality, reduce carrier filtering of A2P traffic, and strengthen brand recognition. However, there are limitations to its use, such as non-response capabilities and regulatory compliance requirements, and certain countries have specific rules and fees associated with its usage. To set up the feature, users must complete three steps: enabling it in their project settings, checking support for the feature and registration requirements, and defining their alphanumeric sender ID according to Twilio's guidelines.
Feb 12, 2020 862 words in the original blog post.
The article guides developers on how to perform binary text classification with neural networks using Twilio and TensorFlow in Python. It starts by setting up a virtual environment, downloading necessary libraries, and preparing training data in JSON format. The data is then processed through lemmatization, stemming, and bag-of-words model to convert it into numerical form that can be passed to TensorFlow. A deep neural network (DNN) is built using three fully-connected intermediate layers with softmax activation function. The DNN is trained on the prepared data using gradient descent algorithm, and its performance is tested by sending text messages through Twilio. The article concludes by encouraging readers to experiment with different NLP models, activation functions, and applications.
Feb 12, 2020 1,627 words in the original blog post.
### Summary of the text delimited by triple backticks ````` The text describes how to build an Interactive Voice Response (IVR) system using Python, Django, and Twilio. The IVR system is designed to provide information about movie showtimes to users over the phone. The system consists of several views that handle different aspects of the conversation, such as selecting a theater, choosing a movie, and listing showtimes. To secure the system, Twilio's RequestValidator class is used to authenticate requests from Twilio. The tutorial also touches on additional features such as text-to-speech, accepting payments, and playing/ recording audio.
Feb 12, 2020 4,612 words in the original blog post.
Sean Pour is the founder of SellMax, an automotive company that purchases any vehicle in any condition and makes selling a vehicle fast and easy. He started his company at 14 during the financial recession to help his struggling family and dealership business. Sean uses Twilio's API to build a custom call center that handles customer communications, advertising campaigns, and logistics. His most successful campaign was an eco-conscious initiative that educated individuals on recycling cars, which had a positive impact on the environment. To raise capital, Sean emphasizes the importance of work ethic, passion for the product, and realistic expectations. As a founder, he prioritizes managing work-life balance by running regularly and making time for social activities. Sean has learned to cope with imposter syndrome and encourages others to maintain confidence and enjoy their wins.
Feb 11, 2020 1,128 words in the original blog post.
Twilio Flex is being used by nonprofit organizations to modernize their crisis hotlines, providing multichannel options to reach people where they feel most safe, full customizability to tailor the platform to unique needs, powerful reporting and analytics to track key performance indicators, and supervisor tools to increase the likelihood of successful interventions. By leveraging these features, nonprofits can empower themselves to serve more people, reduce response times, and improve quality of care, ultimately saving lives. With its Impact Access Program, Twilio offers significant discounts on Flex and other products for social impact organizations, making it easier for them to access the technology they need to succeed.
Feb 11, 2020 1,855 words in the original blog post.
The tutorial covers adding media support to a Laravel Vue.js chat app using Twilio Programmable Chat. It requires installing dependencies, setting up a database and Twilio credentials, adding an upload button to the message input field, implementing the functionality to send media messages, displaying media messages, testing the application, and finally, providing additional resources for further learning.
Feb 11, 2020 1,111 words in the original blog post.
To send payment invoices and notifications to users via WhatsApp, you can use the Twilio API for WhatsApp, Stripe, Laravel, PHP, and other tools. You will need a Twilio account, Composer, Ngrok, and Laravel CLI installed on your machine, as well as knowledge of the Laravel framework and a Stripe account. To get started, create a new Laravel application and install the necessary dependencies using composer. Next, set up the database tables for users and products, seed them with sample data, and create the necessary models for products and users. You will also need to create views for the home page and checkout page, as well as a controller to handle application logic. The controller will use the Stripe API to charge the user's card and send a WhatsApp message with an invoice PDF attachment. Finally, set up routes for the application and start the server to test the functionality of sending payment invoices and notifications via WhatsApp.
Feb 11, 2020 1,898 words in the original blog post.
The Web Speech API allows for speech recognition and synthesis capabilities, enabling users to interact with web applications using voice commands. The browser's SpeechRecognition API can be used to transcribe speech into text, allowing developers to create immersive interfaces and interactive bots. However, speech recognition is currently only supported in Chrome and some Chromium-based browsers due to its reliance on a server-side API for transcription. Despite this limitation, the example code demonstrates how to build a simple speech recognition application that continuously transcribes user speech, rendering it on the page in real-time.
Feb 10, 2020 1,440 words in the original blog post.
This package allows developers to generate random fake data for user fields such as first names, last names, and email addresses in a Laravel application. The package uses the Faker library to generate fake data and provides a simple API for accessing this data through a facade class. The package also includes a seeder that populates the database with random data when installed. The package is designed to be reusable and can be easily integrated into any Laravel application.
Feb 07, 2020 1,981 words in the original blog post.
A mailing list can be a great way to share information with a group of people. Google Forms provides the tools needed to handle subscriptions to a mailing list, and this tutorial will build a Google Form that is backed by a Google Spreadsheet. The spreadsheet will be used as a storage mechanism for a list of subscribers. Then we will create a Python script that reads the spreadsheet and finally we will use the Twilio SendGrid Python client to send emails to all subscribers.
Feb 07, 2020 4,244 words in the original blog post.
We can programmatically grab data directly from web pages using Node.js tools like Cheerio, allowing us to scrape and parse this data for our projects and applications. With Cheerio, we can send a GET request to the desired webpage, create a Cheerio object with the HTML, navigate through the HTML, retrieve DOM elements, and filter specific data using functions such as filtering by class or ID, regular expressions, and more. By using these techniques, we can access a wide variety of information from the internet programmatically, enabling us to build applications that utilize this data for training neural networks to generate classic music, among other uses.
Feb 07, 2020 1,432 words in the original blog post.
AWS Lambda is a serverless computing platform that enables you to run programs in response to events without having to configure and administer servers. AWS Lambda Layers are ZIP archives that contain libraries, a custom runtime, or other dependencies, allowing you to separate function code from its dependencies and save time when packaging and deploying Lambda functions. The Twilio Node.js Helper Library can be used with AWS Lambda Layers to send voice and text messages without requiring extensive code modifications. By following this tutorial, users can create an AWS Lambda Layer containing the Twilio Node Helper Library and add it to their Lambda functions, enabling them to send text messages using Twilio's library without including it in their deployment package. This allows for more efficient maintenance and reduces the size of the deployment package. Additionally, users can test and schedule their Lambda function using CloudWatch triggers, allowing for automated execution at a specified time.
Feb 06, 2020 1,925 words in the original blog post.
As a team of startup mentors, the Twilio Startups team identified four key operational pieces that startups should consider: office space, insurance, lawyer, and accountant. These elements are essential for setting up and scaling a business, and there are various businesses offering special discounts for startups to help keep initial costs low. By establishing these operational pieces in place, founders can dedicate their financial resources to growing the business, allowing them to focus on innovation and expansion.
Feb 06, 2020 475 words in the original blog post.
This paragraph provides an overview of the article, which is about building an SMS doorbell using MicroPython and Twilio APIs. The author explains that the Internet of Things (IoT) has the potential to touch every industry and aspect of our lives, and as a software developer, they're excited about how low the barrier of entry is for IoT projects with affordable hardware and wide availability of development tools in the open-source ecosystem. The article guides readers through building an SMS doorbell project that uses an ESP8266 microcontroller, MicroPython, and Twilio's Programmable SMS service. The author provides a step-by-step guide on how to set up the necessary hardware components, install MicroPython, create a Twilio account, and connect to Wi-Fi. They also explain how to send an SMS using the Twilio API and provide examples of how to use the `connect_wifi` function and the `TwilioSMS` class to implement the doorbell logic. The article concludes with suggestions for improving the project and encourages readers to continue experimenting with microcontrollers and MicroPython.
Feb 05, 2020 5,111 words in the original blog post.
Matthew Gilliard's blog post provides a comprehensive guide to building a WebSocket server in Java using Spring Boot to transcribe phone calls in real-time by streaming audio data from Twilio Media Streams to Google's Speech-to-Text service. The tutorial begins with setting up a Spring Boot project and configuring it to handle WebSocket connections for receiving audio data in JSON format. It then explains how to integrate Twilio's services to stream live audio from incoming calls, which is subsequently forwarded to Google for live transcription. Key components include setting up a Twilio phone number and using ngrok to expose the application publicly for Twilio's access. The post also details the implementation of a WebSocket handler that manages multiple connections and forwards audio messages to Google's service for transcription, showcasing the process of building a dynamic application that leverages powerful cloud services.
Feb 03, 2020 2,030 words in the original blog post.