<?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[Stories by Brenda Clark on Medium]]></title>
        <description><![CDATA[Stories by Brenda Clark on Medium]]></description>
        <link>https://medium.com/@brenda.clark?source=rss-cf35849e5d7e------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*ekQOAgM0ndBvenYrYIUgkA.png</url>
            <title>Stories by Brenda Clark on Medium</title>
            <link>https://medium.com/@brenda.clark?source=rss-cf35849e5d7e------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 07 May 2026 05:35:55 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@brenda.clark/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How to Publish Excel to Web Page?]]></title>
            <link>https://medium.com/@brenda.clark/how-to-publish-excel-to-web-page-cc6003c55482?source=rss-cf35849e5d7e------2</link>
            <guid isPermaLink="false">https://medium.com/p/cc6003c55482</guid>
            <category><![CDATA[excel]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[web]]></category>
            <category><![CDATA[publishing]]></category>
            <dc:creator><![CDATA[Brenda Clark]]></dc:creator>
            <pubDate>Tue, 21 Apr 2020 13:43:33 GMT</pubDate>
            <atom:updated>2020-04-21T13:55:05.353Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1wkHgBF7lQafTry0E-XFag.png" /></figure><p>Are you the one who wants to know how to share your Sheet from Excel/Google Sheets on a public website in a few clicks? Let’s take a look at the complete process of this. Most amazingly, no prerequisites are required to import or publish your data.</p><p>However, it is recommended to convert the data into a CSV or JSON format if you are going to export it from another source(like a MySQL, Oracle, SQL Server, MongoDB, PostGreSQL, or any other DB). This article is going to show you how to publish Excel to the web page.</p><p><strong>So, here we go</strong>:</p><h4>Step by step process to publish a Excel Sheet</h4><p>Here is our step by step easy to follow guide to publish your Sheet on <a href="https://www.back4app.com/database">Database Hub</a>.</p><h3>1-Create a your Database/WorkSheet</h3><p>The first step of this process is super simple. Just go to <a href="https://www.back4app.com/database">Database Hub</a> to create your new database. Click on “<strong>+Database</strong>” button available on the right top corner of the screen. It will lead you to a subsequent screen showing the process of creating and Publishing your Database/Sheet here. However, here you have to follow the steps given below to complete the first step in the best possible way.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2hmPSaOF0RHYIw0a.png" /></figure><p>1- Log in to your Back4app account. If you don’t have it already then sign up for a free back4app account. Creating an account on back4app is pretty simple and free. You don’t have to spend even a penny here.</p><p>2- Now the second step is to populate your Classes with your Sheets content. For this you have to import your data through dashboard.</p><p>3-Publish your Excel Sheet on HUB.</p><p>4-Customize your Excel Sheet Web Page on the HUB.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/739/0*o0T2l3qGl1Kgjpwq.png" /></figure><p>After seeing all these steps on the model window, click on “<strong>Get Started</strong>”. Simply log into your account and if you don’t have that then click on <strong>Sign Up</strong> and provide email address and password to get done with this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*QV-IEmkSGH5bcxN3gD-Dvw.png" /></figure><p>Now choose your Database/WorkSheet Name. Stay clear while giving your a WorkSheet name and make it easier to remember and find. In this example, we will publish an Airport List Sheet, so we are naming it “<strong>Airport</strong>”. After naming click on create.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/742/1*56zN8PmHSudo5Ht6zJ5IUw.png" /></figure><p>Now a success window will be displayed on screen showing your database has been created. To let the magic happen get into its main dashboard.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/736/1*9QO_aXVEiNf13macNJlk-g.png" /></figure><h3>2-Create your Class/Sheet</h3><p>Before to show how to import I&#39;m gonna give you a <strong>Quick Overview</strong> of the main Dashboard:</p><p>Here you will see a vertical menu bar on dashboard window. The “<strong>Core</strong>” menu here is all about your database. Each of the sub-option available in this menu is meant to improve your database.</p><ul><li><strong>Database Browser</strong> is to create database and populate your classes;</li><li><strong>Connections</strong> will let you connect your database with other public databases;</li><li><strong>Index Manager</strong> is meant to manage entire automatic or non-automatic indexes to ensure improved performance;</li><li><strong>Cloud Code Function</strong> will help you to create Node JS functions to run by using data(if you need to convert your macros to the HUB);</li><li><strong>Web Hooks</strong> can let you create external functions to use them on your cloud code functions;</li><li><strong>Logs</strong> are meant to check database logs;</li><li><strong>Jobs</strong> are meant to help you to schedule execution of cloud functions with a described frequency;</li><li><strong>Config</strong> menu is meant to add fixed parameters on your functions;</li><li><strong>API Console</strong> can let you test the HUB created API;</li></ul><p><strong>Getting back to Dashboard</strong></p><p>You will see two default classes under the <strong>Database Browser</strong>. Don’t bother these currently and just create your won Location class.</p><p>· Click on “<strong>Create Class</strong>”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/307/1*UcyEPcgQHaOVtg6NLrPjMw.png" /></figure><p>· Fill the information required for a basic class.</p><p>· Select “Custom” and give your class a name.</p><p>· Move ahead while clicking on the “Create Class” button at the bottom.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/534/1*Ms3YNMwoEvKNbFDw1qHfGw.png" /></figure><blockquote>It’s important to note that your Sheet/Class name should be in a singular form in order to generate automatic GraphQL and REST APIs to access your Data. Also it make easier to people who are looking for this data on the HUB.</blockquote><h3>3-Import your Sheet Data</h3><p>A subsequent screen will appear. Now you have to add data here. Here you will have two methods to populate your database. The one is manual and other is by importing files. We will use import file option here.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bj0cdvs1X2BkCiTzWhpw6w.png" /></figure><h4><strong>Rules to compile your CVS file</strong></h4><p>Before getting started with this, it is highly important for you to ensure that your CSVs files have been compiled as per rules to be imported properly. If you have imported your files from other sources then make sure to compile them as per following rules.</p><ul><li>Use comma as a separation character. So, adjust your spreadsheet to use commas as separation character;</li><li>First line must be the column name;</li><li>Importer should convert numbers, Booleans, geo-points and strings automatically;</li><li>Dates should come up with two columns. date.__type to specify date type, and date.iso to specify its format;</li><li>Geo-points should have 3 columns. columnName.__type for geo-points types, columnName.latitude for latitude and columnName.longitude for longitude;</li><li>Arrays should be passed in double quotes;</li></ul><blockquote>In this article, I’m going to show how to populate your Database only via CSV Import. If you would like to know more details about how to populate using the API or by exporting directly from other Database please leave a message on the comments.</blockquote><p>Make sure to follow all these rules and prepare your CVS file and then use it to import.</p><p>This is the file I&#39;m going to use to import:</p><p><a href="https://drive.google.com/file/d/1KPs5i7JsGcdMQpYhh7C8FPC4MXHlERIL/view?usp=sharing">AirportList.csv</a></p><p>Now you have to click on “import file” button and select your required file to import.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/536/1*r6tsi-X3UcpHbRwz8facuQ.png" /></figure><p>Once you are going to select your CVS file then the “import” button will turn into blue. Just click that and wait for the import process to be completed. After that refresh your browser page. You will get your class created and database populated with Sheet Data on your Back4App. Now it&#39;s time to share this data on HUB.</p><blockquote>It’s important to note that sometimes when the file is large this modal window won’t close. Do not click twice on Import button to avoid duplicated content on your Class.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U3B6JP4n7S7gfYFg-b1fMQ.png" /></figure><h3>4-Publish your Sheet</h3><p>On the vertical menu of your dashboard you will see the option of “<strong>Publish on HUB</strong>”. Click on this option and then click on “Publish on hub” displaying on the screen. Accept the terms and conditions to proceed and then click on publish.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JKYNeO4-tB9iOrg4gK_S5w.png" /></figure><p>Congratulations! Your database is public now. Now you can see automatically generated URL. Click on the link generated to see your newly created public database on <a href="https://www.back4app.com/database"><strong>DATABASE HUB</strong></a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/1*OuBM-7ZyAzH67V1WB60EFQ.png" /></figure><h3>5-Customize your Excel Web Page</h3><p>Now is the best part where you can fully customize your Excel Sheet Web Page.</p><p>Go to your Public WorkSheet Page (in this case: <a href="https://www.back4app.com/database/brenda/airport">https://www.back4app.com/database/brenda/airport</a>) and then Click on edit to start customising your database. Here you can change database name, details and description of database. And then click on “Save”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*83loqBVCLASPWx9_a06x6g.png" /></figure><p>· Now click on edit classes and then add description to each class and see which of these you want to make public. And click save.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RtWMUKSZci3VFz8ckcGNeA.png" /></figure><p>· On Notes, you can also add simple text, image or HTML link to your database.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0w06HQiykouQ5x-dOByYWw.png" /><figcaption>This is just an example to illustrate the feature</figcaption></figure><p>On each class page you can perform same process as you have done at the main database page. The customisation options here are including number of records per page, key field, sorting. You can also add Notes here.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ImDhhRs0D95kiFgk2x40Wg.png" /></figure><p>After editing your Sheet Page will looks like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1wkHgBF7lQafTry0E-XFag.png" /></figure><p>For a more complete guide please take a look here: <a href="https://blog.back4app.com/2020/04/16/how-to-publish-a-database/">How to Publish a Database</a></p><p>Hope that guide could help you. If you have questions or comments, please leave a message.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cc6003c55482" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is GraphQL: History, Components, and Ecosystem]]></title>
            <link>https://levelup.gitconnected.com/what-is-graphql-87fc7687b042?source=rss-cf35849e5d7e------2</link>
            <guid isPermaLink="false">https://medium.com/p/87fc7687b042</guid>
            <category><![CDATA[api-integration]]></category>
            <category><![CDATA[graphql]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[api-management]]></category>
            <category><![CDATA[api-development]]></category>
            <dc:creator><![CDATA[Brenda Clark]]></dc:creator>
            <pubDate>Tue, 13 Aug 2019 13:55:04 GMT</pubDate>
            <atom:updated>2019-08-22T20:44:29.625Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*K7cL5EO9bQJei8GrgRhoZQ.png" /></figure><p>RESTful web services have been providing basic support for simple query structures for years. However, these services don’t provide granular control over data that allow developers to exercise flexibility without creating a huge collection of unnecessary calls.</p><p>Originally built by Facebook, <a href="https://blog.back4app.com/2019/08/08/what-is-graphql/">GraphQL</a> is a query language for APIs that lets developers <em>choose</em> the types of requests they want to make and receive the information they require in a single request.</p><p>In this article, I’ll explain <a href="https://blog.back4app.com/2019/08/08/what-is-graphql/">what GraphQL</a> is, how it started, and how it became an essential tool for developers build APIs. We’ll also cover the key components of GraphQL and the main players in the GraphQL ecosystem.</p><p>Let’s get started!</p><h3>What Is GraphQL?</h3><p>In its simplest form, GraphQL is an open-source language for querying databases from client-side applications.</p><p>“<em>GraphQL is a query language for your API that shifts the contract between clients and servers that allows the server to say ‘these are the capabilities that I exposed’ and allows the clients to describe their requirements in a way that ultimately empowers product developers to build the products they want to create.</em>” — Dan Schafer, <a href="https://www.youtube.com/watch?v=mRgvbtNuCZY">GraphQL Co-Creator</a></p><p>Behind the scenes, it tells the API how to present the retrieved data to the client. This enables developers to make precise data requests so that they receive exactly what they need — nothing more, nothing less.</p><p>Here are the key benefits GraphQL offers developers:</p><ul><li>Declare exactly what they need from the server and receive the requested data in a predictable way.</li><li>Retrieve many resources from the server in a single request.</li><li>It’s strongly typed i.e. it allows API users to know (1) what data is available and (2) what form it exists in.</li></ul><p>A GraphQL query is essentially a string that, when sent to a server, returns JSON back to the client. These queries mirror their responses which makes it easy to <strong>predict the shape of the data</strong> that’s returned from running the query. It also makes it easy for developers to write queries if they know what sort of data their app needs.</p><p>Unlike RESTful services or complex join statements in SQL, GraphQL is <strong>hierarchical</strong>. What this means is that it follows relationships between objects which works well with graph-structured data that hierarchical user interfaces use.</p><p>GraphQL takes advantage of existing code instead of dictating or providing <strong>data stores</strong>. It’s <strong>introspective</strong> which means that GraphQL servers can be queried for the types they support making it easy for tools to build on top of this information.</p><p>With GraphQL, the shape of the data that’s returned depends entirely on the client’s query. As a result, additional fields can easily be added to the server (for example, when adding new product features) without affecting existing clients. This works the other way around, as well. So, when you’re sunsetting older features, the corresponding server fields will continue to function even if they’re deprecated. In this way, GraphQL brings about a backward-compatible process that eliminates the need for incrementing <strong>version numbers</strong>.</p><p>Now that we have a better idea of <a href="https://blog.back4app.com/2019/08/08/what-is-graphql/">what GraphQL</a> is, let’s quickly take a look at how it all started.</p><h4><strong>Build an </strong><a href="https://www.back4app.com/graphql-database"><strong>instant GraphQL API with a Database</strong></a><strong> and start discovering how this technology works.</strong></h4><h3>How It All Started</h3><p>So, how did GraphQL get started? What were developers using before GraphQL and what limitations did it place on them? Let’s find out!</p><h4>How Did GraphQL Get Its Start?</h4><h4>The shift to mobile</h4><p>The origin story of GraphQL dates back to the industry’s shift to mobile. This was at a time when Facebook’s mobile strategy (i.e. adopting HTML5 on mobile) wasn’t working due to issues related to high network usage. As a result, Facebook decided to rebuild the iOS app from scratch using native technologies.</p><p>The main problem with Facebook’s <em>News Feed</em> implementation on mobile. It wasn’t as simple as retrieving a story, who wrote it, what it says, the list of comments, and who’s liked the post. Each story was interconnected, nested, and recursive. The existing APIs weren’t designed to allow developers to expose a rich, news feed-like experience on mobile. They didn’t have a hierarchical nature, let developers select what they needed, or the capability to display a list of heterogeneous feed stories.</p><p>In 2012, Facebook decided that they needed to build a new News Feed API in order to build the Facebook mobile app. This is when GraphQL started to take shape and, in mid-August, Facebook for iOS 5.0 was released with the new GraphQL technology. It allowed developers to reduce network usage by utilising its data-fetching capabilities. Over the next year and a half, the surface area of the GraphQL API expanded to cover most of the Facebook iOS app in addition to News Feed. In 2015, the GraphQL spec was first published along with the reference implementation in JavaScript.</p><h4>Limitations of traditional REST APIs</h4><p>The main problem with traditional REST API is that it’s slow and requires hard-coding. One possible solution to speed things up is to create multiple endpoints. However, when you extrapolate this to cover all of the data sources and API clients applications need, you run into the limitations of REST APIs.</p><p>Let me try to explain the limitations of traditional REST APIs with an analogy.</p><p>Say, you have a vending machine. With traditional REST, you press one button on the vending machine and get one thing. So, you have to press lots of buttons one at a time to get everything you need. This process is slow.</p><p>But if you have special purpose buttons, you can get multiple things at once. So, for example, you could press a special purpose button and get four things from the vending machine.</p><p>A mix of these two approaches is to have a vending machine where you can press exactly the buttons you want in combination and get everything you need in one go. This is what GraphQL does.</p><p>GraphQL aims to solve these issues by having a single ‘smart’ endpoint rather than having many ‘dumb’ endpoints. The key benefit here is that smart endpoints are able to take complex queries and shape the data output into whatever the client requires.</p><p>Essentially, the GraphQL layer exists between the client and data sources. Its job is to receive client requests and fetch the necessary data based on the client’s requirements. Simply put, the GraphQL approach to querying addresses a wide range of large-scale app development problems.</p><h3>How GraphQL Became Popular</h3><p>As you can probably imagine, there was already a demand in the industry for a solution like GraphQL which is why it caught on pretty fast. Within the first six months, there were implementations of GraphQL in different programming languages including PHP, JavaScript, Scala, Python, and Ruby.</p><p>It quickly became popular when new companies and hobbyists started building it out. Eventually, the technology was adopted by bigger companies starting with GitHub in 2016 and later by Twitter, Yelp, The New York Times, Airbnb, and more.</p><h3>GraphQL Key Components</h3><p>Practically speaking, the GraphQL API uses three main components:</p><ul><li><strong>Queries. </strong>A <a href="https://graphql.org/learn/queries/">query</a> is the request the client makes. Query fields can point to arrays and support arguments.</li><li><strong>Resolvers. </strong>The GraphQL server won’t know what to do with the queries it gets unless you tell it. This is done using a <a href="https://graphql.org/learn/execution/#root-fields-resolvers">resolver</a>. In simple terms, a resolver tells GraphQL how (and where) to fetch the data corresponding to a specific field. With GraphQL, the API schema and database schemas you use are decoupled. This allows you to use them as mutation resolvers to modify the contents of your database.</li><li><strong>Schema. </strong>A <a href="https://graphql.org/learn/schema/">GraphQL schema</a> describes the functionality clients can utilize once they connect to the GraphQL server. The core building block within schemas is called a <em>type</em>.</li></ul><h3>The GraphQL Ecosystem</h3><p>Here, we’ll take a quick look at the main players in the GraphQL Ecosystem.</p><h3>GraphQL Servers</h3><p>Since GraphQL is simply a specification, you need some GraphQL server implementations to get started.</p><ul><li><a href="https://github.com/graphql/graphql-js"><strong>GraphQL-JS</strong></a><strong> </strong>is the original reference implementation of GraphQL which can be used with <a href="https://github.com/graphql/express-graphql">Express</a>.</li><li><a href="https://www.apollographql.com/docs/apollo-server/"><strong>GraphQL-Server</strong></a> is Apollo’s all-in-one GraphQL server implementation which is quickly gaining traction. It can be queried from any GraphQL client.</li><li><a href="https://www.back4app.com/docs/parse-graphql/graphql-getting-started"><strong>GraphQL-Serverless</strong></a> is Back4App instant GraphQL API fully integrated with database(MongoDB) and Cloud Functions. Here you can have access to a Backend as a Service that provides GraphQL APIs.</li><li><a href="https://github.com/prisma/graphql-yoga"><strong>GraphQL Yoga</strong></a> is Prisma’s server implementation built on Express and Apollo servers.</li></ul><h3>GraphQL Clients</h3><p>Although you can query your GraphQL API directly, having a dedicated client library certainly makes things easier.</p><ul><li><a href="https://facebook.github.io/relay/"><strong>Relay</strong></a><strong> </strong>is Facebook’s JavaScript library for utilising GraphQL to build React applications.</li><li><a href="http://www.apollodata.com/"><strong>Apollo Client</strong></a> caches requests and normalizes data which saves network traffic. It also supports pagination, prefetching data, and connection between the data layer to the view layer.</li></ul><h3>GraphQL Gateways</h3><p>Perhaps the most popular GraphQL gateway is <a href="https://www.apollographql.com/platform/"><strong>Apollo Engine</strong></a>.<strong> </strong>It features query execution tracing, query caching, error tracking, and API performance trend analysis.</p><h3>Open-Source Apps and Tools</h3><p>Here are some open-source apps that make use of GraphQL:</p><ul><li>Powered by GraphQL, <a href="https://www.gatsbyjs.org/docs/"><strong>Gatsby</strong></a> is able to fetch data from multiple GraphQL APIs and utilize it to create a static, client-only React application.</li><li><a href="http://vulcanjs.org/"><strong>VulcanJS</strong></a><strong> </strong>leverages GraphQL to let users build CRUD applications quickly.</li><li><a href="https://github.com/prisma/graphql-playground"><strong>GraphQL Playground</strong></a><strong> </strong>is a powerful IDE that packs an editor for GraphQL queries, mutations, subscriptions, validation, and much more. It allows developers to visualize the structure of a schema.</li><li><a href="https://github.com/facebook/graphql/"><strong>GraphiQL</strong></a><strong> </strong>is an in-browser IDE that interacts with GraphQL APIs, enables data querying, performs mutations, and autocompletes queries.</li></ul><h3>Conclusion</h3><p>Though GraphQL was built to solve a very specific problem with Facebook’s News Feed API for the iOS app, it quickly expanded to solve more problems internally at Facebook and, eventually, open-sourced to become a community tool used by bigger companies.</p><p>Do you think that GraphQL might end up becoming an industry standard over the next few years? Let me know in the comments section below.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=87fc7687b042" width="1" height="1" alt=""><hr><p><a href="https://levelup.gitconnected.com/what-is-graphql-87fc7687b042">What is GraphQL: History, Components, and Ecosystem</a> was originally published in <a href="https://levelup.gitconnected.com">Level Up Coding</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Heroku Alternatives — Top 5 Picks]]></title>
            <link>https://medium.com/@brenda.clark/heroku-alternatives-top-5-picks-9095cef91d91?source=rss-cf35849e5d7e------2</link>
            <guid isPermaLink="false">https://medium.com/p/9095cef91d91</guid>
            <category><![CDATA[heroku]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <dc:creator><![CDATA[Brenda Clark]]></dc:creator>
            <pubDate>Fri, 09 Mar 2018 15:55:20 GMT</pubDate>
            <atom:updated>2018-03-13T14:51:47.885Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FbdlI__ac_7n1wy-HZb35A.png" /><figcaption>Heroku Alternatives</figcaption></figure><p>There’s no denying that leveraging a Platform-as-a-Service (PaaS) like Heroku is a great way to develop and deploy a wide range of web-based projects with minimal fuss. This cloud platform has a wide appeal and provides tremendous value for millions of developers and IT professionals. But here’s something you must know: Heroku is not always the best bet and it is important to understand when to employ another approach.</p><p>Simply put, there are a few concerns with Heroku, which include exorbitant cost, unorganized documentation, unintuitive CLI design, lack of language support, non-flexible pricing tiers, vendor lock-in with AWS, relatively short stack life cycle, and many other technical limitations. Based on latest research, more than 10,000 users each month search for “Heroku alternatives” on Google.</p><p>So, if you’re one of them and looking for a more stable backend platform for your app, then this article is specifically meant for you. Luckily, there are numerous alternatives to Heroku, but only a handful of them are genuinely useful. Below we have discussed five of the best <a href="https://blog.back4app.com/2018/03/13/heroku-alternatives/">Heroku alternatives</a> along with their pros and cons.</p><h3><strong>1.</strong> <strong>Back4App</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*HltONx0JL7japg0XrFPuNQ.png" /><figcaption>Back4App Logo</figcaption></figure><p>Back4App is a BaaS with the same flexibility of a PaaS like Heroku. Being one of the most powerful and popular BaaS solutions available today, Back4App is the perfect replacement for Heroku, thanks to its flexible pricing tiers, faster deployment speed, and many other distinctive features. Unlike Back4App, Heroku gets really expensive once you leave its free tier. It’s not just the Heroku service that is costly, the add-ons as well are pretty steep.</p><p>Moreover, in case of Heroku, larger applications tend to have slower deployments, however, Back4App has no such technical glitches. Developers can make use of this powerful platform to create and deploy scalable and extensive mobile applications at a lightning pace without boilerplate code, infrastructure hassles, and technical locks.</p><p><strong>Pros:</strong></p><p>· No vendor lock-in;</p><p>· Flexible pricing plans;</p><p>· Easy &amp; smooth migration from Parse;</p><p>· Parse hosting in any cloud environment;</p><p>· Open source with a large developer community;</p><p>· An automated backup system that keeps your data secure and accessible;</p><p>· More than 40k happy customers worldwide and over 500 million connected devices;</p><p>· A dedicated team of engineers working on product improvement and support;</p><p>· A meticulously-designed architecture that helps you to improve your app’s performance and maximize productivity.</p><p><strong>Cons:</strong></p><p>· Lack of Documentation;</p><p>· Non-standardized UI inside the docs’ page;</p><h3><strong>2.</strong> <strong>Firebase</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RnXJhkFahizVOZ2OJ0CzmA.png" /><figcaption>Firebase Logo</figcaption></figure><p>Firebase is another viable alternative to Heroku, and for good reason. Just like Heroku, Firebase has great CLIs which make deployment possible in just a few commands. It provides SSL encryption, custom domains, backend storage (which is a simple NoSQL database with a supporting GUI for manual entries), and everything else you would want for your app.</p><p>One of its key facets is its low price (the cost per GB of real-time data is relatively low), which gives Firebase an upper hand over Heroku and other app platforms. Also, it takes a huge burden off developers from the server viewpoint.</p><p><strong>Pros:</strong></p><p>· Fast and real-time updates;</p><p>· Google Analytics and AdSense support;</p><p>· Cross-platform API, cross-device support;</p><p>· Free tier up to 100 simultaneous connections;</p><p>· Robust APIs for JavaScript (including several frameworks like Angular).</p><p><strong>Cons:</strong></p><p>· Vendor lock-in;</p><p>· No simple way to add “Cloud Code”;</p><p>· Not possible to set custom permissions;</p><p>· Not designed for collaborative workflows;</p><p>· Only support static files (such as HTML, JavaScript, images);</p><p>· Developers can’t run any server-side node scripts inside their own server instance.</p><h3><strong>3.</strong> <strong>Google App Engine (GAE)</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yeCR9DcfQ01vAEQlGMkoww.png" /></figure><p>Another suitable alternative to Heroku is Google App Engine (GAE), which is a free tool for mounting and hosting web applications in Google-managed data centers. In technical terms, GAE is an online cloud platform which allows you to build scalable web applications and mobile backends leveraging built-in tools and API, including NoSQL datastore, user authentication API, and Memcache.</p><p>Both Heroku and GAE are logically similar as they both are PaaS solutions. Like Heroku, Google’s Cloud Platform provides you with a ready-made environment in which you can deploy your code and apps. However, it has a different pricing model and interface. Simply put, Google’s Cloud Platform interface is extremely intuitive and easy to use. It scales your apps based on traffic so that you only pay for the resources you use. With App Engine, you can take advantage of Google’s immense knowledge of running massively scalable, performance-driven systems.</p><p><strong>Pros:</strong></p><p>· Flexible pricing;</p><p>· Cloud-based RESTful APIs;</p><p>· Much easier to run asynchronous tasks;</p><p>· Access to big data resources for reporting and analytics;</p><p>· GAE apps are easy to create, easy to maintain, and easy to scale.</p><p><strong>Cons:</strong></p><p>· Platform tie-in;</p><p>· No standard SQL DB;</p><p>· Sudden downtime and task queue failures;</p><p>· Logging in is recorded and accessible through a web console;</p><p>· If you want to try GAE for free, you’ll be forced to use Cloud Datastore, which is a NoSQL database;</p><p>· The migration is almost impossible as you’re technically married to Google and its future decisions.</p><h3><strong>4.</strong> <strong>Kubernetes</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fM53qZTYegTKvWs5AevGBw.png" /><figcaption>kubernetes logo</figcaption></figure><p>Kubernetes is a Google-backed open-source container storage program for managing containerized applications in a clustered environment. It is a portable, powerful, and useful tool which can handle containers and offer immense scalability and automation at the same time. From a developer’s standpoint, it provides a robust mechanism to easily deploy and manage applications (just like Heroku), but without the constraints and vendor lock-in of an actual PaaS. This is why it is considered a good replacement for Heroku.</p><p>One of its major concerns is that it is difficult to use and is despised by most developers. Having said that, it is widely accepted by the community of developers, despite the hard installation process. One of last year’s biggest hits in the gaming industry, Pokemon Go, also used Kubernetes to manage their product and scale rapidly. The main reason behind its popularity is the amount of flexibility it offers and also the fact that it has the support of Google, one of the leading tech giants.</p><p><strong>Pros:</strong></p><p>· Backed by Google (GKE) and RedHat (OpenShift);</p><p>· Eliminates infrastructure lock-in by providing core capabilities for containers without imposing restrictions;</p><p>· Offers inbuilt logging and monitoring tools;</p><p>· Supports a diverse range of workloads, which include stateless, stateful, and data-processing workloads;</p><p>· Auto-scaling based on factors such as CPU utilization;</p><p>· Largest community among container orchestration tools (over 50k commits and 1,200 contributors).</p><p><strong>Cons:</strong></p><p>· Hard to set up and configure;</p><p>· DIY installation can be complex;</p><h3><strong>5.</strong> <strong>Amazon Elastic Compute Cloud</strong> <strong>(EC2)</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*gIDDDZo9Ok8LFenTIGb7pw.png" /><figcaption>Amazon — EC2</figcaption></figure><p>Like Heroku, AWS is another commonly used cloud service that lets you deploy, monitor, and scale web and mobile applications. It provides you with cloud computing resources and is great for hosting applications. Two of its major offerings include Elastic Beanstalk (which is PaaS) and Elastic Compute Cloud (which is IaaS).</p><p>Heroku’s platform provides abstract computing environments known as dynos, which are strictly confined to application processes. That is to say, no other services can run on dynos. Amazon’s Elastic Compute Cloud (EC2) is the closest equivalent to Heroku’s dynos. With EC2, developers can rapidly convey and oversee applications (both web and mobile) in the Amazon Web Services Cloud without agonizing over the framework that runs those apps. EC2 is much cheaper than Heroku (one of its biggest advantage) and provides more RAM, Swap space, Storage space, and Compute power in its comparison.</p><p><strong>Pros:</strong></p><p>· It lets businesses distribute storage volumes independent of its computing system;</p><p>· Leveraging EC2, an enterprise can expand or reduce its capacity in just a few minutes instead of hours or days;</p><p>· Instant provisioning of new servers;</p><p>· Multiple geographic areas to run servers with a standard interface;</p><p>· Entire AWS ecosystem of services and support and community to build on.</p><p><strong>Cons:</strong></p><p>· Instance types are rigid;</p><p>· All servers are virtual;</p><p>· It does not include enterprise-grade support by default;</p><p>· Billing is extremely confusing;</p><p>· The learning curve is sometimes steep for larger companies;</p><p>· Cross-region communication is not available natively;</p><p>· No VPN Network to the internal network.</p><p><strong>Still Not Able to Decide? Let Us Help!</strong></p><p>All of the above-mentioned platforms are considered excellent as far as developing and deploying your application is concerned. However, the choice depends on a plethora of factors, including the size of your app, your financial constraints, availability of resources, and also the level of customization you need. All of these platforms differ each other in terms of user engagement, pricing, deployment, functionality, and features. Also, each of them has its own benefits and drawbacks, so a thorough knowledge of what each platform offers is essential in making the right choice. In the end, it all comes down to personal preference. Being a hardcore app developer, I’d personally recommend you to use Back4App for your next app project. I’ve been using it for a while now, and I must say the experience has been wonderful and trouble-free. Thanks to their serverless architecture, you don’t have to worry about managing servers and backend infrastructures. Plus, the freemium package they offer is beyond words. It allows you to run multiple apps comfortably without upgrading to a paid subscription.</p><p>If you’re ready to give Back4App a try, then don’t wait any longer. <a href="https://www.back4app.com/">Sign up here</a> for free today and cut your platform costs by 4X.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9095cef91d91" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Parse Alternative — My experience moving to an open source Backend]]></title>
            <link>https://medium.com/@brenda.clark/parse-alternative-my-experience-moving-to-an-open-source-backend-524ab7c22ee3?source=rss-cf35849e5d7e------2</link>
            <guid isPermaLink="false">https://medium.com/p/524ab7c22ee3</guid>
            <category><![CDATA[parse-alternative]]></category>
            <dc:creator><![CDATA[Brenda Clark]]></dc:creator>
            <pubDate>Tue, 06 Mar 2018 18:07:37 GMT</pubDate>
            <atom:updated>2018-03-06T18:07:37.510Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Enhf73X0pDQ2bawRJka_DQ.png" /><figcaption>Back4App KPIs</figcaption></figure><p>With so many platforms and frameworks competing in the mobile app development arena, finding a suitable replacement for Parse, the much-loved BaaS Provider from Facebook, can be quite challenging and stressful. There are tons of articles and blog posts floating around the internet about ‘The best MBaaS alternatives to Parse’. Taking that into account, it would be pointless to come up with yet <a href="https://github.com/relatedcode/ParseAlternatives">another list of Parse alternatives</a>.</p><p>Today, almost every MBaaS vendor out there has added a banner at the top of their front page, inviting you to migrate to their service. But whom can you trust? Should you choose a renowned Parse Server hosting provider or maybe you should just host your own Parse Server (self-hosting)? How about migrating away from anything Parse-like and settling for a completely different MBaaS (unrelated to Parse). Being a hard-core Parse developer, I’ll purposely not recommend any particular self-hosting service or Parse Server hosting provider as there is no one-size-fits-all solution. You’ll need to make that choice based on your particular app needs and business model.</p><p>If you’re a proud user of Parse services and looking for a reliable, tried-and-tested <a href="https://blog.back4app.com/2018/02/15/parse-alternative/">Parse alternative</a>, then this article is for you.</p><p>In this post, I will explain why I decided to go with Back4App as a replacement for Parse.com, after testing numerous other Parse Server providers.</p><h3>Why Back4App?</h3><p>Back4App is one of the most powerful and popular BaaS solutions available today striving to fill the void created by Parse.com. It is an ideal replacement for Parse (it’s actually so much more than that) among the developers’ community. They use the Open Source Parse Server and Parse Dashboard as core and provide free as well as paid services surrounding it with a pricing model (freemium-based model) quite similar to Parse.com. Generally speaking, I have no complaints with Kinvey, Kumulos, Kuzzle, Appcelerator, Stackmob, or any other backend provider; all I’m going to say next is completely based on what I personally feel and think.</p><h4>Yes, I consider Back4App the perfect Parse alternative and here’s why:</h4><p>1- I’ve been using Back4App for a while now, and I’m quite impressed with its features and easy-to-use interface. Till date, I’ve managed to migrate tens of hundreds of apps from Parse to Back4App, and I must say that the experience has been wonderful and trouble-free.</p><p>2- After migrating my app from Parse to Back4App, I was able to optimize my queries and reach a better performance which I had on Parse. Also, it made it possible for me to install new modules on my backend, which allowed me to add new features easily and make my app more appealing.</p><p>3- With Back4App, I was able to create, deploy, and scale my apps at lightning speed without boilerplate code, infrastructure hassles, and technical locks.</p><p>4- No matter what my app’s requirements were, whether it needed a high-memory algorithm, any particular security measure, a performative geo-query, or any npm module, Back4App made all of this incredibly easy.</p><p>5- What’s unique about this platform is its scalable, fully-redundant serverless architecture, which allowed me to exclusively focus on app development rather than worrying about managing servers and backend infrastructures. Although server management is one of the major challenges with mobile app development that could possibly cost a fortune, the burden was subsided using a reliable BaaS platform like Back4App.</p><p>6- They’ve made so many improvements in their platform, which made my life easier, for example, the option to upload cloud code via a Web Interface. To be honest, I really hated that CLI tool from Parse.com and the fact that I had to push all my changes in order to test them. Using Back4App, I still had to “push” my changes to test them but the best part was that I could simply upload the .js file via a web interface. That really helped!</p><p>7- Talking about customer service, Back4App got it all covered, thanks to their friendly, knowledgeable, and easily approachable support team. At least that was my experience when I talked to one of their support representatives about this issue which I was facing a few months back. The issue was that <a href="https://github.com/parse-community/parse-server/issues/2103">I couldn’t save my Files and GeoPoints correctly in ParseConfig</a>. I encountered it for the first time when I was testing parse4cn1 against Back4App. Earlier I thought the issue was in their system but then later they confirmed that they use the Parse Server code as-it-is (without making any changes). When looking deeper I found that the bug (issue) was actually in Parse Server. That’s not all! Even during the process of debugging, their support staff was supportive and very responsive via live chat and email. Have to say, that was pretty impressive!</p><blockquote>The big question for me is Back4App’s freemium offerings, which is not as plentiful as the original Parse, but in my opinion still somewhat too generous for comfort.</blockquote><p>Here are some of its key traits that attracted me the most:</p><h4>A pool of over 40k global customers, more than 500 million connected devices, and a community of more than 100,000k developers.</h4><h4>Processing over 10 billion API requests each month at an astounding rate of <a href="https://blog.back4app.com/2018/02/15/parse-alternative/">20.000 requests/second per app</a>.</h4><h4>Their freemium offerings, which include 5 GB File Storage, 0.5 GB Database Storage, 10 requests/second, 10k requests/month, and 1 Cloud Code job.</h4><p>Thanks to their freemium package, you can run a large number of apps comfortably without ever having to upgrade to a paid subscription. Long story short, If I have to choose between Back4App and other backend platforms, I’d always go for Back4App as I find this service overall more appealing, and of course, lock-in free.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=524ab7c22ee3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Firebase Alternative: 3 Open-Source ways to follow]]></title>
            <link>https://medium.com/@brenda.clark/firebase-alternative-3-open-source-ways-to-follow-e45d9347bc8c?source=rss-cf35849e5d7e------2</link>
            <guid isPermaLink="false">https://medium.com/p/e45d9347bc8c</guid>
            <category><![CDATA[firebase]]></category>
            <category><![CDATA[parse]]></category>
            <dc:creator><![CDATA[Brenda Clark]]></dc:creator>
            <pubDate>Thu, 30 Nov 2017 17:43:17 GMT</pubDate>
            <atom:updated>2017-11-30T18:19:17.390Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*dZfKzp7QLW6WeVUN.png" /><figcaption>Firebase Alternative: Open Source Parse</figcaption></figure><p>Firebase is a Google-backed, real-time backend service that empowers developers to build real-time mobile or web applications without complex protocols or rewriting the app from scratch.</p><p>It comes with many benefits such as fast and real-time updates, free tier up to 100 simultaneous connections, push-notifications support, easy setup, Robust APIs for JavaScript (including several frameworks like Angular), iOS &amp; Android support, built-in auto-scaling, cross-platform API, and more.</p><p>Despite the fact that it’s a great way to get your app up and running quickly (and easily of course), just like any other backend service, it does have some limitations which cannot be overlooked. For instance, unless your app runs on one centralized database and is updated by a vast quantity of users, it’s a major overkill.</p><h3>What are the downsides of Firebase?</h3><p>One of its biggest and most obvious concerns is vendor lock-in, which prevents you from making your app portable. Besides that, you cannot access your data as it is hosted on the Firebase server.</p><p>Talking about<strong> vendor lock-in</strong>, it is one of the greatest obstacles to enterprise cloud adoption. To be precise, it is a situation where customers are locked-in on single cloud provider technology (i.e. vendor) for products and services and cannot switch to a different vendor without incurring substantial costs, legal constraints, or technical incompatibilities. It involves a lack of compatibility between different systems, which compels a customer to continue using products from a particular vendor. It has several disadvantages, such as:</p><ul><li>You cannot optimize your backend according to your app’s needs;</li><li>You’ll lose the ability to shop around and the power to negotiate;</li><li>You’ll not be aware of the new technologies that are used by other vendors;</li><li>You are always locked by Google updates, and considering the nature of these updates, it is impossible for you to customize your app on server levels;</li></ul><p>Another downside of Firebase is its database, which can be easily disorganized, and thus, form a tree-shaped structure, which can be hard to navigate and search. Also, there’s a high potential for data loss. To be exact, you may often delete your entire database accidentally when you’re in the console. Remember, two or three wrong clicks and all your data is gone! Also, the data validation does not support complex objects directly, so you’d need to validate individual child nodes separately.</p><p>Additionally, neither Firebase allows easy integrations with other apps nor is it possible to install your own modules on your backend. As far as scaling is concerned, even a fully managed database provider like Firebase is not a complete solution to all your scaling related concerns, as it becomes extensive once you scale your app. That’s why it’s always a better idea to choose an open source framework over Firebase for scaling apps.</p><p>So, if you’re looking for a more complete backend solution (open source alternative) that not only provides similar functionality like Firebase but also gives you much more control over your data, we’ve got you covered. In this article, we’ve disclosed three of the best alternatives to Firebase.</p><p><em>So, without wasting no time, let’s dive in!</em></p><h3>1-Parse Server</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/401/0*lgjTxbw0dyXTqr8K.png" /></figure><p><strong>Overview:</strong> It’s no secret that Parse.com it was the best Backend as a Service in 2016 when facebook decided to turn it off. Parse Server (the open source version of Parse) was created by facebook (and the open source community) with the same power and a huge and important differential: to be Open Source.</p><p><a href="http://parseplatform.org/">Parse Server</a> comes with a gazillion out-of-the-box features that allows you to get your MVP out quick and effortlessly. Currently, Parse server is the most popular and robust BaaS framework available that helps developers build mobile apps faster without any technical locks. It is an open source version of the Parse backend that can be easily <a href="https://github.com/parse-community/parse-server"><strong>downloaded for free</strong></a><strong> </strong>on GitHub. Many developers have successfully migrated their apps from other platforms to Parse Server.</p><p>Presently, the Parse Server is quite active, with 143 contributors and <strong>more than 14k stars on GitHub</strong>. The key attribute that sets Parse Server apart from Firebase and other fellow app development counterparts is that it can work with the Express Web Application framework, can be easily added to existing web applications, and can even run by itself, if required. Furthermore, it can be deployed to any infrastructure that can run Node.js.</p><p><strong>Pros:</strong></p><p>Allows you to easily customize the foundation of your app, to make it suitable for other OSs;</p><ul><li>Complete Dashboard to accelerate your backend development and manage your App easily;</li><li>Provides you a very complete range of prebuilt SDKs to plug into your app project;</li><li>Empowers you to make modifications to the API without having to write the code, and you can easily view analytics or push notifications as well;</li><li>Parse Server is open source, which means you can have access to it anytime;</li><li>Comes with a plethora of features that offer a better user experience;</li><li>Can be hosted in almost any environment.</li></ul><p><strong>Cons:</strong></p><ul><li>Missing a stable command line interface to automate your custom code development;</li><li>It’s not multi-tenancy App compliant;</li><li>No custom atomic operations.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*y1FZ1OH-JPElix50BpsAPw.png" /><figcaption>Parse Server Made Simple</figcaption></figure><blockquote><a href="https://www.back4app.com/"><strong>Back4App.com</strong> </a>is the best implementation of Parse Server and solved these downsides. They have a very user-friendly CLI, it is possible to create as many App as you want and <a href="https://medium.com/back4app/baas-revolution-bring-your-next-app-to-back4app-94c5e61b06a2">you can custom your Backend in many ways.</a></blockquote><h3>2-Hoodie</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/401/0*_1GaTlFAp_nwqFyG.png" /></figure><p><strong>Overview: </strong>Hoodie is the First Offline JavaScript Backend that makes web application development very fast, easy, and accessible. It is a simple, self-hosted, and open source platform that allows developers to build robust and intuitive applications for both web and iOS. It utilizes a noBackend technology that makes the lives of developers unbelievably easy. Being a developer, all you need to do is deploy the Hoodie’s backend to your server, and forget about it.</p><p>The key trait that gives Hoodie a competitive edge over Firebase and other app development platforms is the fact that it gives the control back in the hands of the frontend developer by abstracting away the backend completely. Yes, you heard it right! With Hoodie frontend development, without worrying about your server side, you just need to focus on its simple, easy-to-learn-and-implement frontend API. Unlike other backend platforms, Hoodie uses a community-driven approach to API designing, known as Dreamcode.</p><p>One of Hoodie’s primary goals is to help users overcome their crippling dependence on the internet. With Hoodie, you can do it all — post comments, synchronize data, handle payments, edit accounts, send emails, and more without worrying about having a connection.</p><p><strong>Pros:</strong></p><ul><li>It has a noBackend, Dreamcode-driven API, which makes Hoodie code a breeze to write and read;</li><li>NoBackend means you don’t need a back-end developer;</li><li>It’s the biggest advantage is its offline support, which solves the major problem of connectivity dependence;</li></ul><p><strong>Cons:</strong></p><ul><li>Going offline can be quite frustrating sometimes, as you can’t have access to your Google Docs.</li><li>It has a very small developer community and a very few of Firebase’s trademark features.</li></ul><h3>3-Horizon</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/401/0*XS279w-IBl124pjI.png" /></figure><p><strong>Overview: </strong>Horizon is a real-time, open-source backend platform that allows you to rapidly build and deploy web and mobile apps using a simple JavaScript API. Built by the RethinkDB team and an open-source community, Horizon lets you scale your app to millions of users without any backend code. It is a standalone server for browser-based JavaScript apps. Here’s the best part: whenever you feel like you’re ready to write custom backend code, you can easily load the Horizon modules directly in Node.js.</p><p>Horizon is made up of three key components:</p><ol><li>A middleware backend server built with Node.js and RethinkDB that supports data persistence, user authentication, input validation, real-time streams, and permissions;</li><li>A JavaScript client library that frontend developers can use for storing JSON documents in the database, performing queries, and subscribing to live updates;</li></ol><ul><li>A command-line (CLI) tool that can help you start up a local Horizon development server, generate project templates, and deploy your Horizon app to the cloud.</li></ul><p><strong>Pros:</strong></p><ul><li>Built on RethinkDB, Horizon not only allows you to host your data but also do complex queries;</li><li>You can build and deploy cross-platform, real-time web and mobile apps at lightning speed;</li><li>Horizon is open source, which means you can run it on your laptop, deploy it to the cloud, or deploy it to any other infrastructure if required;</li><li>Unlike Firebase, you can build complex enterprise apps with Horizon, not just basic ones with limited functionality;</li><li>It reduces the amount of friction that developers face while building and scaling Web applications;</li><li>It eliminates repetitive boilerplate and tedious steps such as hand-writing CRUD endpoints, authentication, and session management, and this is what makes it different from Firebase and other app development platforms.</li></ul><p><strong>Cons:</strong></p><ul><li>It lacks numerous useful features that Firebase provides;</li><li>Some of Horizon’s flagship features are less mature than other platforms;</li><li>Unlike Firebase, it has a small developer community;</li><li>The Horizon team are refining some features and incorporating further improvements, because of which developers might encounter some rough edges while writing code;</li><li>The long-term roadmap is still evolving;</li><li>The Horizon code base is not as stable as Firebase or Hoodie.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MFUHrvuj_XLohRpY.png" /></figure><p>Firebase Alternatives</p><h3>Final Thoughts</h3><p>These are just three of the many open-source alternatives to Firebase. Being a developer, you don’t want your backend to be a deadlock for your app, which is why it is always advisable to decide wisely. One additional risk to consider while choosing an app development platform is longevity. Remember, if the service you’re about to choose is not around for long, possibilities are that you’ll have to find another alternative and migrate again. Also, bear in mind how easy it is to migrate data from that specific platform or stack. While considering the costs upfront is important, take a look at how those costs will ascend as your app scales.</p><p>Here’s the most important thing to consider — always choose a technology that you’re already comfortable with or looking forward to learning, forget the rest. After pondering all these options I decided to go with<strong> </strong><a href="https://www.back4app.com/"><strong>Back4App</strong></a><strong>.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e45d9347bc8c" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>