{"id":3342,"date":"2020-07-10T16:42:49","date_gmt":"2020-07-10T16:42:49","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=3342"},"modified":"2020-07-10T20:23:22","modified_gmt":"2020-07-10T20:23:22","slug":"appflow-not-just-another-ci-cd-service","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service","title":{"rendered":"Appflow: not just another CI\/CD Service"},"content":{"rendered":"<p>Every production mobile app ultimately has a set of recurring tasks around integration, testing, deployment, and long term maintenance. These tasks often must be automated across a team of many developers and app projects. Building a process for these tasks can be incredibly time consuming and require specialized infrastructure experience, but is critical for the success of any serious app project.<\/p>\n<p>Thankfully, teams don\u2019t need to build solutions to these problems themselves, as there are services out there that can help. One such service works directly with your Cordova or Capacitor app to help your team easily perform these tasks. That means consistent builds, deploys on every commit, pushing remote app updates in realtime, and automating app store deployment as part of your mobile CI\/CD workflow.<\/p>\n<p>That service is <a href=\"https:\/\/useappflow.com\/\">Appflow<\/a>, and it\u2019s <a href=\"https:\/\/ionic.io\/blog\/\">Ionic<\/a>\u2019s official Mobile DevOps platform. Appflow automates the whole DevOps side of your mobile app project, and is used to power significant apps and development teams across AAA, Burger King\/Popeyes, Shipt, and more.<\/p>\n<p>Let\u2019s explore what a Mobile DevOps platform like Appflow is, what Appflow offers, how it differs from traditional CI\/CD platforms, and how it\u2019s being used today.<\/p>\n<p><!--more--><\/p>\n<h2>What is Mobile DevOps?<\/h2>\n<p>Appflow is known as a Mobile DevOps platform.<\/p>\n<p>Mobile DevOps platforms, of which Appflow is one of the leaders, automate and simplify many continuous integration and delivery tasks, as well as other important mobile app deployment tasks. These platforms handle the heavy lifting so teams can focus on building their unique app, instead of reinventing the wheel.<\/p>\n<p>Those tasks may include:<\/p>\n<ul>\n<li>Setting up consistent, repeatable mobile build environments so apps can be built on every commit using predictable dev tools and operating systems.<\/li>\n<li>Building app binaries and artifacts for iOS, Android, and Web<\/li>\n<li>Running tests and other scripts on every commit to ensure apps stay working<\/li>\n<li>Connecting to existing GitHub, Gitlab, Bitbucket, and other repos to perform builds on every commit<\/li>\n<li>Releasing working updates to users in realtime (for web updates), or to the app stores (for binary updates)<\/li>\n<li>Managing different versions of apps between testers, stakeholders, and production users.<\/li>\n<\/ul>\n<p>Not every platform supports all of those features (Appflow does, as we\u2019ll see below), but these are generally the tasks that a Capacitor or Cordova development team will need to perform.<\/p>\n<p>Beyond these tasks, DevOps is all about creating a culture of shipping often, involving stakeholders, and ensuring quality. All of which Mobile DevOps products can help your team embrace.<\/p>\n<h2>What is Appflow?<\/h2>\n<p><a href=\"https:\/\/useappflow.com\/\">Appflow<\/a> is the official Mobile DevOps platform built by the Ionic team, focused on bringing powerful Mobile DevOps workflows to hybrid app developers across <a href=\"https:\/\/capacitorjs.com\/\">Capacitor<\/a> and Cordova whether or not they are using Ionic Framework.<\/p>\n<p>Appflow, first and foremost, is a managed mobile build environment. That means it provides consistent and frequently updated iOS, Android, and web build environments. The Appflow team does the hard work of keeping mobile build tools and operating systems up to date and patched for security issues, whether that means updating to the latest versions of Xcode or the Android SDK, or new versions of macOS and Linux, and a whole lot more.<\/p>\n<p>These builds are done in a highly secure environment, so teams can feel confident in offloading their mobile CI\/CD process to Appflow, and on high performance hardware to make builds match the speed of development.<\/p>\n<p>Appflow also manages authentic, legal Mac build hardware for fully automating iOS builds in the cloud, which also benefits developers on Windows machines that wish to build iOS apps but can\u2019t or don\u2019t want to buy Mac hardware.<\/p>\n<p>On top of this environment, Appflow provides some pretty transformative features for hybrid app developers. Namely, the ability to remotely update an app without needing to re-submit to app stores (in a way that is App Store ToS friendly!), as well as publish app binaries directly to the Apple App Store and Google Play Store.<\/p>\n<p>And Appflow can automate that whole process so it triggers on each commit, as well as enable powerful version splitting so testers, stakeholders, and customers can run on different versions of an app.<\/p>\n<h2>Can\u2019t I do this with Circle CI, GitHub Actions, or Azure DevOps?<\/h2>\n<p>In the CI\/CD space, there are generic build services like Circle CI or GitHub Actions, and there are specialized services like Appflow.<\/p>\n<p>The biggest difference between the services is that Circle CI or GitHub Actions merely provide build servers, a way to trigger builds, and hooks for sending those builds elsewhere. They do not provide the tools or pipeline for mobile-specific builds, they do not handle the deployment of your app, and they certainly don\u2019t manage build environments for you.<\/p>\n<p>Here\u2019s a visualization of the differences between the two approaches:<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic.png\"><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"1024\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-925x1024.png\" alt=\"Appflow vs generic CI\/CD platform\" class=\"aligncenter size-large wp-image-3348 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-925x1024.png 925w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-271x300.png 271w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-768x850.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic.png 1240w\" data-sizes=\"auto, (max-width: 925px) 100vw, 925px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 925px; --smush-placeholder-aspect-ratio: 925\/1024;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"1024\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-925x1024.png\" alt=\"Appflow vs generic CI\/CD platform\" class=\"aligncenter size-large wp-image-3348\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-925x1024.png 925w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-271x300.png 271w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic-768x850.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/graphic.png 1240w\" sizes=\"auto, (max-width: 925px) 100vw, 925px\" \/><\/noscript><\/a><\/p>\n<p>In theory, teams could build their own Appflow-style pipeline on another generic CI\/CD platform like Circle CI or GitHub Actions, but that would require teams orchestrate and keep up to date a very complex chain of tools, operating systems, build environments, app store submission features, remote app deployment, and more. This is guaranteed to take a full team of engineers with a different skillset than the app dev team to build and manage, especially as new mobile and desktop operating systems are released each year.<\/p>\n<p>It\u2019s simply not feasible for the vast majority of teams to take this on in addition to building their apps.<\/p>\n<p>This is why a specialized build service like Appflow stands out in the CI\/CD and DevOps space. Beyond simply being a build service, Appflow is a managed mobile build environment that is fully managed by the mobile experts here at Ionic.<\/p>\n<h2>Why not both?<\/h2>\n<p>Generic CI\/CD tools, with their focus on simply triggering builds, are not a direct replacement for Appflow. That means the two can easily be used alongside each other.<\/p>\n<p>In this scenario, a team might have their generic CI\/CD tool trigger builds and push code to Appflow, while Appflow manages the hard work of performing mobile builds on managed mobile development infrastructure, while also handling the last mile app update and app store publishing.<\/p>\n<p>This works so well that around 68% of Appflow customers are using Appflow alongside a general purpose CI\/CD tool, according to data from the <a href=\"https:\/\/ionicframework.com\/survey\/2020\">2020 Ionic Developer Survey<\/a>.<\/p>\n<p>This delivers the best of both worlds: You get to continue using your CI\/CD tool of choice &#8211; or whatever your company has standardized on &#8211; while leaving the highly specialized, mobile specific build and publishing requirements to Appflow.<\/p>\n<h2>Who\u2019s using Appflow Today?<\/h2>\n<p>Appflow has thousands of customers across a diverse range of companies. Appflow powers workflows in fast growing startups, established SMBs, and the largest enterprise companies in the world.<\/p>\n<p>Some of the customers using Appflow as a cornerstone of their mobile app development strategy include RBI (Burger King\/Popeyes), AAA, and Shipt. Another customer, Napa Group, had this to say about Appflow:<\/p>\n<blockquote><p>\n  \u201cOne of the huge advantages of using Ionic Appflow was to have these different Channels, which are essentially environments to us. We can push code to our Development environment and have QA test it; then we can move it to Staging and do a smoke test; then, with a single button click [using Ionic Deploy] all our code is live to our users. The amount of risk goes down exponentially compared to deploying the app on the app store, waiting for it to get reviewed, realizing there\u2019s a bug and taking 2 or 3 more days before you can get a fix uploaded. That deployment speed is a huge asset for us.\u201d\n<\/p><\/blockquote>\n<p>See the full <a href=\"https:\/\/ionicframework.com\/resources\/case-studies\/napa-group-llc\">Napa Group Case Study<\/a> for more details on their use of Appflow.<\/p>\n<p>The CI\/CD and DevOps market is massive and growing quickly. We believe that every serious app development team will be utilizing CI\/CD within the next few years, but most will struggle with sophisticated mobile CI\/CD pipelines given their much more complex nature and dependency on a different engineering skillset than app dev teams traditionally have access to.<\/p>\n<p>Thus, teams are choosing Appflow today because they are not able to find what they need from generic CI\/CD services like Circle CI, Travis, Azure DevOps, or GitHub Actions. They need reliable build environments and features tailored to hybrid app development. Appflow stands out as the leader in Mobile DevOps and we\u2019re thrilled to see adoption growing quickly as it addresses this huge unmet need.<\/p>\n<h2>Getting Started<\/h2>\n<p>Getting started with Appflow is easy. Visit <a href=\"https:\/\/useappflow.com\/\">useappflow.com<\/a>, click Try it Free, create or use your existing Ionic account, and jump into the <a href=\"https:\/\/ionicframework.com\/docs\/appflow\">Documentation<\/a> to see how to connect your app and start pushing commits to Appflow.<\/p>\n<p>Or, if you&#8217;re interested in exploring Appflow for your team, book a free <a href=\"https:\/\/ionicframework.com\/enterprise\/strategy-session\">strategy session<\/a> with an app architect at Ionic. We help thousands of mobile teams move faster, and we&#8217;d love to help yours, too!<\/p>\n<p>Appflow is improving every day. Stay tuned for some really exciting new features coming to Appflow users in the coming months!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every production mobile app ultimately has a set of recurring tasks around integration, testing, deployment, and long term maintenance. These tasks often must be automated across a team of many developers and app projects. Building a process for these tasks can be incredibly time consuming and require specialized infrastructure experience, but is critical for the [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3349,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,122],"tags":[128,151,115],"class_list":["post-3342","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-product","tag-appflow","tag-capacitor","tag-devops"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Appflow: not just another CI\/CD Service - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Appflow: not just another CI\/CD Service\" \/>\n<meta property=\"og:description\" content=\"Every production mobile app ultimately has a set of recurring tasks around integration, testing, deployment, and long term maintenance. These tasks often must be automated across a team of many developers and app projects. Building a process for these tasks can be incredibly time consuming and require specialized infrastructure experience, but is critical for the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-10T16:42:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-10T20:23:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Max Lynch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@maxlynch\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Max Lynch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\"},\"author\":{\"name\":\"Max Lynch\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\"},\"headline\":\"Appflow: not just another CI\/CD Service\",\"datePublished\":\"2020-07-10T16:42:49+00:00\",\"dateModified\":\"2020-07-10T20:23:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\"},\"wordCount\":1514,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png\",\"keywords\":[\"Appflow\",\"Capacitor\",\"DevOps\"],\"articleSection\":[\"All\",\"Product\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\",\"url\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\",\"name\":\"Appflow: not just another CI\/CD Service - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png\",\"datePublished\":\"2020-07-10T16:42:49+00:00\",\"dateModified\":\"2020-07-10T20:23:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png\",\"width\":1600,\"height\":880,\"caption\":\"Appflow\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Appflow: not just another CI\/CD Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\",\"name\":\"Max Lynch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"caption\":\"Max Lynch\"},\"description\":\"CEO\",\"sameAs\":[\"http:\/\/twitter.com\/maxlynch\",\"https:\/\/x.com\/maxlynch\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/max\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Appflow: not just another CI\/CD Service - Ionic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service","og_locale":"en_US","og_type":"article","og_title":"Appflow: not just another CI\/CD Service","og_description":"Every production mobile app ultimately has a set of recurring tasks around integration, testing, deployment, and long term maintenance. These tasks often must be automated across a team of many developers and app projects. Building a process for these tasks can be incredibly time consuming and require specialized infrastructure experience, but is critical for the [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service","og_site_name":"Ionic Blog","article_published_time":"2020-07-10T16:42:49+00:00","article_modified_time":"2020-07-10T20:23:22+00:00","og_image":[{"width":1600,"height":880,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","type":"image\/png"}],"author":"Max Lynch","twitter_card":"summary_large_image","twitter_creator":"@maxlynch","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Max Lynch","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service"},"author":{"name":"Max Lynch","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e"},"headline":"Appflow: not just another CI\/CD Service","datePublished":"2020-07-10T16:42:49+00:00","dateModified":"2020-07-10T20:23:22+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service"},"wordCount":1514,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","keywords":["Appflow","Capacitor","DevOps"],"articleSection":["All","Product"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service","url":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service","name":"Appflow: not just another CI\/CD Service - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","datePublished":"2020-07-10T16:42:49+00:00","dateModified":"2020-07-10T20:23:22+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","width":1600,"height":880,"caption":"Appflow"},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/appflow-not-just-another-ci-cd-service#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Appflow: not just another CI\/CD Service"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e","name":"Max Lynch","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","caption":"Max Lynch"},"description":"CEO","sameAs":["http:\/\/twitter.com\/maxlynch","https:\/\/x.com\/maxlynch"],"url":"https:\/\/ionic.io\/blog\/author\/max"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/appflow-feature-image.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=3342"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3342\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/3349"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=3342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=3342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=3342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}