{"componentChunkName":"component---src-templates-blog-list-jsx","path":"/blog/4/","result":{"data":{"prismic":{"allFeaturedblogs":{"edges":[{"node":{"featured_blogs_enabled":true,"heading":[{"type":"paragraph","text":"Featured posts","spans":[]}],"featured_blog_1":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/6d8d81b1-971a-4313-b033-b4e125cb14a0_MondoDB-blog-header-790x395.PNG?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing DigitalOcean Managed MongoDB – a fully managed, database as a service for modern apps","spans":[]}],"blog_post_date":"2021-06-29","blog_post_content":[{"type":"paragraph","text":"MongoDB is one of the most popular databases, and it’s ideal for apps that evolve rapidly and need to handle huge volumes of data and traffic. It offers advantages like flexible document schemas, code-native data access, change-friendly design, and easy horizontal scale-out.","spans":[{"start":22,"end":44,"type":"hyperlink","data":{"link_type":"Web","url":"https://db-engines.com/en/ranking","target":"_blank"}}]},{"type":"paragraph","text":"However, building and maintaining MongoDB clusters from the ground up can be a huge undertaking. Developers often complain that they have to spend their valuable time and resources on database management. Well, we’ve been listening and have some great news: accessing and managing MongoDB on DigitalOcean just got a lot simpler!","spans":[]},{"type":"paragraph","text":"We are excited to announce that DigitalOcean Managed MongoDB is now in General Availability. Managed MongoDB is a fully managed, database as a service (DBaaS) offering from DigitalOcean, built in partnership with and certified by MongoDB Inc. It provides you all the technical capabilities that make MongoDB so beloved in the developer community. Together we have ensured that you will get access to all the latest releases of the MongoDB document database as they become available.","spans":[{"start":32,"end":91,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases-mongodb/"}},{"start":230,"end":241,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/","target":"_blank"}}]},{"type":"paragraph","text":"Managed MongoDB simplifies the MongoDB administration. Developers of all skill levels, even those who do not have prior experience in databases, can spin up MongoDB clusters in just a few minutes. We handle the provisioning, managing, scaling, updates, backups, and security of your MongoDB clusters, allowing you to offload the complex, time consuming –yet critical – database administration tasks to us. This empowers you to focus on what really matters: building awesome apps.","spans":[]},{"type":"embed","oembed":{"height":113,"width":200,"embed_url":"https://www.youtube.com/watch?v=NvHQSV7jnKA","type":"video","version":"1.0","title":"Create a MongoDB Database on DigitalOcean","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","provider_name":"YouTube","provider_url":"https://www.youtube.com/","cache_age":null,"thumbnail_url":"https://i.ytimg.com/vi/NvHQSV7jnKA/hqdefault.jpg","thumbnail_width":480,"thumbnail_height":360,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/NvHQSV7jnKA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"heading2","text":"Benefits of Managed MongoDB","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"list-item","text":"Easy set up and maintenance: We create the database clusters for you. Simply choose the cluster configuration (e.g., memory, disk size, number of nodes, etc.), and the data center in which you want to host the database. Follow a few simple steps and your database cluster will be up and running in a matter of minutes. You can spin up clusters using the cloud control panel, CLI, or API.\n\n","spans":[{"start":0,"end":28,"type":"strong"}]},{"type":"list-item","text":"Automatic daily backups with point in time recovery: Data is one of the most important assets of an app, so it’s critical to backup your database. We take backups of your entire clusters automatically on a daily basis, for free. We also provide a point in time recovery for 7 days, that way if things go wrong due to human error, machine error, or some combination of both, you can easily restore the database as it was at any point in the previous 7 days. \n\n","spans":[{"start":0,"end":52,"type":"strong"}]},{"type":"list-item","text":"Automatic updates and access to latest MongoDB releases: You get access to MongoDB 4.4. This is the latest release of MongoDB and comes packed with numerous enhancements like hedged reads, rust, and swift drivers. Since we have developed Managed MongoDB in partnership with MongoDB Inc, you will always get access to new releases as they become available. With Managed MongoDB, the updates happen automatically. Just select a date and time for the updates and we take care of the rest. This makes it easy to stay up to date with MongoDB releases without disrupting your business.\n\n","spans":[{"start":0,"end":56,"type":"strong"},{"start":148,"end":169,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/new","target":"_blank"}}]},{"type":"list-item","text":"High availability with automated failover: If your database goes down, it can take down the entire app, leading to bad customer experiences. With Managed MongoDB, you can easily minimize the downtime for your database and make it highly available with standby nodes. Standby nodes add redundancy, so if for example the primary node fails, the standby node is immediately promoted to primary and begins serving requests while we provision a replacement standby node in the background.\n\n","spans":[{"start":0,"end":42,"type":"strong"}]},{"type":"list-item","text":"Scale up easily to handle traffic spikes: As your app gains traction and the usage grows, it’s important to have a database that can keep up with the increased demand. With Managed MongoDB, you can easily scale up the size of database nodes when needed.\n\n","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Secure by default: Since data is critical, it also needs to be secure. We encrypt data at rest with LUKS and in transit with SSL. When you create a new cluster, it’s placed in a VPC network by default that provides a more secure connection between resources. You can also restrict access to your nodes to prevent brute-force password and denial-of-service attacks.","spans":[{"start":0,"end":18,"type":"strong"},{"start":178,"end":189,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/vpc/"}}]},{"type":"heading2","text":"The need for Managed Databases","spans":[]},{"type":"paragraph","text":"DigitalOcean’s mission is to simplify cloud computing so developers, startups, and SMBs can spend more time building software that changes the world. While databases are a critical component to any application, building, maintaining, and scaling them can be complex and time consuming. For developers that are building apps for their business, database administration is often not a core focus area. But it’s quite common to find developers that write the code and then also roll up their sleeves to maintain databases. Such users would rather offload the tedious database administration and focus their limited time and energy on building and enhancing their apps. ","spans":[]},{"type":"paragraph","text":"With this in mind, we introduced Managed Databases a couple of years ago and are excited to add Managed MongoDB to our portfolio. With this release, DigitalOcean Managed Databases now supports the following engines:","spans":[{"start":33,"end":50,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/87745cc1-1c5f-4463-b104-104b7fc30dc7_managed-databases-logos.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":849,"height":104}},{"type":"paragraph","text":"Managed MongoDB launch comes on the heels of DigitalOcean App Platform, a modern, reimagined PaaS (Platform as a Service) that we released a few months ago. App Platform makes it very easy to build, deploy, and scale apps and static sites. You can deploy code by simply pointing to your GitHub and GitLab repos, and App Platform will do all the heavy lifting of managing infrastructure, app runtimes, and dependencies. App Platform, along with Managed Databases, helps fulfill DigitalOcean’s mission by empowering developers, startups, and SMBs to focus more on their apps, and less on the underlying infrastructure and databases.","spans":[{"start":45,"end":70,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"heading2","text":"How Managed MongoDB works","spans":[]},{"type":"paragraph","text":"DigitalOcean provides you with various compute options to build your apps like:","spans":[]},{"type":"list-item","text":"Droplets: On-demand, Linux virtual machines suitable for production business applications and personal passion projects.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}}]},{"type":"list-item","text":"DigitalOcean Kubernetes: Managed Kubernetes with automatic scaling, upgrades, and a free control plane.","spans":[{"start":0,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"list-item","text":"DigitalOcean App Platform: A fully managed Platform as a Service.","spans":[{"start":0,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"paragraph","text":"No matter which compute option you choose to build your apps, you can easily add Managed MongoDB to it. In addition to this, Managed MongoDB also integrates with the Node.js 1-Click App from DigitalOcean Marketplace making it a lot easier to build Node.js apps.","spans":[{"start":166,"end":215,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/nodejs"}}]},{"type":"heading2","text":"Simple, predictable pricing","spans":[]},{"type":"paragraph","text":"Just like all DigitalOcean products, Managed MongoDB provides simple, predictable pricing that allows you to control costs and prevent any surprise bills. You can spin up a database cluster for just $15/month, or a highly available three-node replica set for $45/month. Click here for more information.","spans":[{"start":270,"end":301,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/pricing/#managed-databases"}}]},{"type":"heading2","text":"Regional availability","spans":[]},{"type":"paragraph","text":"Managed MongoDB is currently available in the following regions:","spans":[]},{"type":"list-item","text":"NYC3 (New York, USA)","spans":[]},{"type":"list-item","text":"FRA1 (Frankfurt, Germany)","spans":[]},{"type":"list-item","text":"AMS3 (Amsterdam, Netherlands)","spans":[]},{"type":"paragraph","text":"We will be making Managed Mongo available in other regions soon. Please check out the release notes for most up to date information on regional availability.","spans":[{"start":86,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/release-notes/"}}]},{"type":"heading2","text":"Join us at deploy, DigitalOcean’s virtual user conference","spans":[]},{"type":"paragraph","text":"Today we have deploy, DigitalOcean’s signature user conference, which focuses on celebrating, educating, and connecting awesome builders from all over the world.","spans":[{"start":14,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/home"}}]},{"type":"paragraph","text":"Check out the keynote session from DigitalOcean's CEO, Yancey Spruill, in which he talks about where we're headed as a company and shares some exciting product updates. His keynote will be followed by sessions from community members, engineers, customers, and other experts that are building technologies and businesses powered by the cloud. With live Q&A and an active Discord server, there’s ample opportunity to engage and learn something new. Click here to attend the deploy conference.","spans":[{"start":14,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/agenda/session/552806"}},{"start":347,"end":384,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy-discord"}},{"start":461,"end":489,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy"}}]},{"type":"paragraph","text":"We are also launching a hackathon for DigitalOcean Managed MongoDB. Learn how you can participate, submit an app and get a t-shirt.","spans":[{"start":24,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/mongodb-hackathon"}}]},{"type":"paragraph","text":"We hope you will give Managed MongoDB a try. Here are some sample datasets and sample apps that you can use to kick the tires. Check out the docs and let us know what you think!","spans":[{"start":22,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/databases/new?engine=mongodb"}},{"start":59,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/do-community/mongodb-resources","target":"_blank"}},{"start":141,"end":145,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/databases/mongodb/"}}]},{"type":"paragraph","text":"If you’d like to have a conversation about using DigitalOcean and Managed MongoDB in your business, please feel free to contact our sales team.","spans":[{"start":120,"end":142,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/contact/sales/"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"André Bearfield","spans":[]},{"type":"paragraph","text":"Director of Product Management","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"André Bearfield","author_image":{"dimensions":{"width":553,"height":547},"alt":"André Bearfield","copyright":null,"url":"https://images.prismic.io/www-static/fdc7c85186f0a850b04083e1d4306bd1c19772e8_andre-bearfield.png?auto=compress,format"},"_meta":{"uid":"andre-bearfield"}},"_meta":{"uid":"introducing-digitalocean-managed-mongodb"}},"featured_blog_2":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":"Droplet Console","copyright":null,"url":"https://images.prismic.io/www-static/710499ae-78cc-4179-afc1-15793637b200_DODX3727-790x400-logo-2.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Securely connect to Droplets with SSH key pairs using a new Droplet Console","spans":[]}],"blog_post_date":"2021-08-10","blog_post_content":[{"type":"paragraph","text":"The famous author Ken Blanchard once said, “Feedback is the breakfast of champions.\" This is something we truly believe at DigitalOcean, and we always strive to enhance our products based on customer feedback.","spans":[]},{"type":"paragraph","text":"With this goal in mind, we are excited to introduce a new Droplet Console that will make it much easier to connect to your Droplets securely. The new Droplet Console provides one-click SSH access to your Droplets through a native-like SSH/Terminal experience. It also eliminates the need for a password or manual configuration of SSH keys. Starting today, we’re pleased to announce that the new Droplet Console is now available to all Droplet users.","spans":[]},{"type":"heading2","text":"Why you should be using Secure Shell (SSH) ","spans":[]},{"type":"paragraph","text":"Password-based security is notoriously insecure due to password fatigue and the overuse of passwords such as ‘123456’. Secure Shell or SSH is a network communication protocol that solves this by using passwordless solutions for encryption, enabling two computers to communicate and securely share data. At a high level, SSH works by creating cryptographic key pairs consisting of a public and private key, which are computer generated and stored separately to ensure their security. ","spans":[{"start":80,"end":117,"type":"hyperlink","data":{"link_type":"Web","url":"https://cybernews.com/best-password-managers/most-common-passwords/"}}]},{"type":"paragraph","text":"SSH has become the default encryption protocol for many industries, but it was difficult to use SSH keys with DigitalOcean’s current Recovery (VNC) console, which is why we developed our new Droplet Console. The new Droplet Console is backed by an agent that security supervises the key pair, while also providing one-click SSH access to our users. You can see the full list of features below.","spans":[]},{"type":"heading2","text":"The new Droplet Console: More time saving, less time wasting ","spans":[]},{"type":"paragraph","text":"The new Droplet Console is for everyone who is looking to build fast, secure apps and avoid hassles with SSH access & usability issues.","spans":[]},{"type":"paragraph","text":"In addition to easier SSH access, the new Droplet Console comes with:","spans":[]},{"type":"list-item","text":"Copy/paste text: Instead of typing lengthy key pairs and text manually, you can use copy/paste to save time. ","spans":[{"start":0,"end":17,"type":"strong"}]},{"type":"list-item","text":"Multi-color support: Multi-color support makes the console more useful and intuitive, and breaks the conventional standard appearance which is black text on a white background. ","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Multi-language support: DigitalOcean’s new Droplet Console supports multiple languages, meaning you can now type and view any content in any language that is supported by UTF-8","spans":[{"start":0,"end":24,"type":"strong"}]},{"type":"list-item","text":"OS/images supported: Linux distributions (Ubuntu(16.04 - 20.04), Fedora (32 & 33), Debian (9), CentOS (7.6 & 8.3), CentOS 8 Stream, Rocky Linux and Marketplace images.","spans":[{"start":0,"end":20,"type":"strong"},{"start":148,"end":159,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/"}}]},{"type":"paragraph","text":"The new Droplet Console is available by default on any new Droplets you spin up. You can also enable it manually on older Droplets. Click here to learn more!","spans":[{"start":132,"end":157,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/droplets/how-to/connect-with-console/"}}]},{"type":"paragraph","text":"Check out this short walkthrough video that shows the new Droplet Console in action: ","spans":[]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=Qt7QihVuxiE","title":"Access Your Droplet Terminal Through the Web Console","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/Qt7QihVuxiE/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","height":113,"width":200,"version":"1.0","thumbnail_height":360,"thumbnail_width":480,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/Qt7QihVuxiE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"paragraph","text":"We hope you’re excited about the new Droplet Console. You’re welcome to spin some Droplets up right now, and try out the new Droplet Console – why wait?","spans":[{"start":72,"end":103,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/droplets/new"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"Harsh Banwait, Senior Product Manager","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Harsh Banwait","author_image":{"dimensions":{"width":600,"height":399},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/e83ff690-b20c-4d88-a2b6-57e562558cd6_download.png?auto=compress,format"},"_meta":{"uid":"harsh-banwait"}},"_meta":{"uid":"new-droplet-console-ssh-support"}},"featured_blog_3":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/588e28d3-d41e-480b-937b-8c3b19201f6e_DODX3568-790x400-Blog.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How to scale your SaaS product without breaking the bank","spans":[]}],"blog_post_date":"2021-06-22","blog_post_content":[{"type":"paragraph","text":"These days, if you are in the business of software, chances are you are delivering or plan to deliver your services using a Software-as-a-Service (SaaS) model. A combination of internet-based delivery, subscription-based pricing, and low-friction product experiences have made SaaS solutions valuable tools for their users, and an excellent vehicle for software builders looking to distribute their products.","spans":[]},{"type":"paragraph","text":"These factors have made SaaS solutions ubiquitous; SaaS is the largest segment in the public cloud market, and is used to provide functionality ranging from personal finance apps for consumers, to productivity software for businesses, and even tools and services for software developers themselves to compose their applications and simplify their workflows. It is also not uncommon to find micro-SaaS applications being built for specific industries such as retail, job functions such as accounting or marketing, or tasks such as event management. ","spans":[]},{"type":"paragraph","text":"The best thing about this SaaS wave has been that it has allowed a new generation of software builders to build and monetize applications and participate in the digital economy. Previously, you had to be a big company with lots of resources, name recognition and distribution networks to successfully sell software products. Now, irrespective of whether you are a single person working on a passion project, a small team of developers in a startup, or a small and medium-sized business (SMB), the SaaS model enables you to express your ideas in the form of software and deliver them to customers anywhere in the world.","spans":[]},{"type":"heading2","text":"The unique challenges of building SaaS solutions","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Despite the opportunities that come with the widespread adoption of SaaS products, software builders still have to answer key questions in their journey to building successful SaaS products. Understanding what customers to target, features to prioritize, how to price your product, and how to acquire customers are all critical questions to figure out while you are also doing the important job of actually building and operating the product. ","spans":[]},{"type":"paragraph","text":"Writing the code, testing, deployment, monitoring the usage in production, and ensuring that your apps are able to handle the additional demand when customer base and usage grows are all essential and time-consuming tasks.","spans":[]},{"type":"paragraph","text":"Additionally, being able to test multiple ideas, pivot, and double down on the ideas that actually work is critical in early stages of SaaS development. Once growth comes, it is equally important to scale up without compromising on performance or reliability. Needless to say, all of this needs to be economically viable as well, since not everyone has the resources of large SaaS providers like Salesforce or Adobe.","spans":[]},{"type":"heading2","text":"Cloud Computing enables builders but also poses challenges","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Fortunately, for the act of building and operating your apps, cloud computing can help take some load off your shoulders. Unless you have the scale and resources of Facebook, chances are you are not going to set up your own data centers to host the computing infrastructure that powers your SaaS company. Public cloud infrastructure providers can bring great value to SaaS builders by providing on-demand computing services with usage-based pricing. However, just like how the legacy software companies weren't built for the SaaS model, the early (and big) cloud computing services were not optimized for the unique needs of small SaaS building teams. ","spans":[]},{"type":"paragraph","text":"Smaller SaaS teams face challenges with large cloud computing providers, including:","spans":[]},{"type":"heading4","text":"Too many technology options","spans":[]},{"type":"paragraph","text":"There are just too many options for tech stacks on which to build your SaaS - programming languages, application development frameworks, libraries, runtime environments, architectural patterns, and deployment models - and the list is growing by the day.","spans":[]},{"type":"heading4","text":"Complexity of cloud computing services","spans":[]},{"type":"paragraph","text":"Even when you have decided on a technology stack, there is a lot of cloud vendor-specific terminology you need to learn and heavy lifting you need to do to build on the cloud, not all of which contributes to making your SaaS applications successful.","spans":[]},{"type":"heading4","text":"Unpredictable costs","spans":[]},{"type":"paragraph","text":"The experimentation necessary in early stages of SaaS development, as well as the scaling of applications required during the growth phase, call for affordable and predictable pricing from your cloud provider. The last thing SaaS teams want is surprising and indecipherable bills from your cloud provider. Unfortunately, smaller businesses often experience unpredictable costs with cloud providers who are busy serving only the large enterprises.","spans":[]},{"type":"heading2","text":"DigitalOcean provides a simple, cost effective solution for SaaS builders","spans":[]},{"type":"paragraph","text":"Fortunately, at DigitalOcean we have a laser focus on small software development teams, who are trying to build the next generation of applications. Today, DigitalOcean customers are already building SaaS applications which serve all kinds of customers.","spans":[{"start":191,"end":217,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/solutions/saas/"}}]},{"type":"paragraph","text":"We believe SaaS builders should focus on building apps that power their business, and not spend their valuable time on managing infrastructure. That is exactly what we have been able to enable through our intuitive products that are built for scale and reliability.","spans":[{"start":205,"end":223,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/"}}]},{"type":"list-item","text":"Vidazoo is an advertising technology company specializing in video streaming and serving. It serves video ads to thousands of websites and handles close to 10 billion requests per day. \n\n“We are as much a data company as an adtech company. Our business relies on speedy and accurate data processing at massive scale. DigitalOcean provides us the perfect set of tools to operate our SaaS business profitably, while not making us feel the need to become full time system administrators. We plan to move a lot of our apps to DigitalOcean App Platform and other fully managed products.” - Roman Svichar, CTO of Vidazoo","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://vidazoo.com/"}},{"start":187,"end":583,"type":"em"}]},{"type":"paragraph","text":"We believe in meeting customers where they are. If they already have an understanding of cloud infrastructure technologies, they should be able to leverage that knowledge and get started with our products without any further ramp up.","spans":[]},{"type":"list-item","text":"Whatfix is an enterprise SaaS provider that offers a digital adoption platform to businesses. The company helps enterprises gain the full value of their investments in enterprise applications by providing real-time, interactive, and contextual guidance to users of those applications. \n\n“What we really love about the DigitalOcean platform is the ease of use. We feel like we know infrastructure and can handle most of the configuration and management. What we needed from a cloud was not bells and whistles but efficiency and reliability. DigitalOcean provides us a platform to build our apps and then gets out of the way. Just how we like it.” - Achyuth Krishna, Director of Engineering of Whatfix","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://whatfix.com/blog/driving-the-future-now-were-excited-to-announce-our-90-million-series-d-funding/"}},{"start":287,"end":648,"type":"em"}]},{"type":"paragraph","text":"We understand that scaling while maintaining reliability of applications and profitability of business is important, so we provide robust solutions which minimize downtime.","spans":[]},{"type":"list-item","text":"Centra is a SaaS-based e-commerce platform for global direct-to-consumer and wholesale e-commerce brands. Centra provides a powerful e-commerce backend that lets brands build pixel-perfect, custom designed, online flagship stores. \n\n“How do we enable our customers to create differentiated online experiences? How do we ensure their e-commerce apps stay up and running at all times? How do we scale on-demand when traffic grows or new customers come in? These are the questions that we ask ourselves every day. Thankfully, we have a partner in DigitalOcean that provides just the platform to answer those questions enabling us to guarantee 99.9% uptime for our clients.” - Martin Jensen, CEO of Centra","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://centra.com/"}},{"start":233,"end":673,"type":"em"}]},{"type":"paragraph","text":"These are just a few examples of SaaS businesses finding success on DigitalOcean. We are constantly amazed by the creativity and innovation that software builders are utilizing our platform for. If you are interested in learning more about product updates, technical deep-dives and best practices for building SaaS products and businesses, please contact us to learn how we can help you get started. ","spans":[{"start":340,"end":357,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"Come build with DigitalOcean!","spans":[]},{"type":"paragraph","text":"Looking to migrate your SaaS to DigitalOcean? Leverage free infrastructure credits, robust training, and technical support to ensure a worry-free migration.","spans":[{"start":0,"end":156,"type":"strong"},{"start":0,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Raman Sharma","spans":[]},{"type":"paragraph","text":"Vice President, Product & Programs Marketing","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Developer Relations","_linkType":"Link.document","_meta":{"uid":"developer-relations"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Raman Sharma","author_image":{"dimensions":{"width":512,"height":512},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/497b4b14-d192-493a-8b66-7ae176ba99f3_raman.png?auto=compress,format"},"_meta":{"uid":"raman-sharma"}},"_meta":{"uid":"how-to-scale-your-saas-product-without-breaking-the-bank"}}}}]}}},"pageContext":{"limit":12,"skip":36,"numPages":33,"currentPage":4,"data":[{"node":{"author":{"_linkType":"Link.document","author_name":"Jake Levirne","author_image":{"dimensions":{"width":200,"height":200},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/cc61a64b-427d-420e-9ebd-b8cc956dc342_Jake.jpeg?auto=compress,format"},"_meta":{"uid":"jake-levirne"}},"blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/72f5e1f3-5df0-40c0-8c7f-4d85f3ec0c92_AP-blog-banner.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing Bring Your Own Container Image workflow for DigitalOcean App Platform","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"A few months ago, we launched DigitalOcean App Platform, our modern, reimagined PaaS (Platform as a Service) offering. App Platform makes it very easy to build, deploy, and scale apps and static sites. It’s a fully managed solution, meaning we handle provisioning and managing infrastructure, operating systems, databases, application runtimes, and other dependencies, so that you can focus on your code. ","spans":[{"start":30,"end":55,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-digitalocean-app-platform-reimagining-paas-to-make-it-simpler-for-you-to-build-deploy-and-scale-apps/"}}]},{"type":"paragraph","text":"One of the biggest benefits of App Platform is that it runs on DigitalOcean Kubernetes. When you run an app, we build and deploy containers for each of your app’s components like web service, database, or workers on Kubernetes clusters. ","spans":[{"start":63,"end":86,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"paragraph","text":"App Platform supports many popular languages and frameworks out of the box, including Node.js, Python, Django, Go, PHP, Laravel, React, Ruby, Ruby on Rails, Gatsby, Hugo etc. If you have apps in other languages, you could still deploy them using the App Platform, but need to provide the appropriate Dockerfile in your source repo.","spans":[{"start":27,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/languages-frameworks/"}}]},{"type":"paragraph","text":"We are excited to introduce the ‘Bring Your Own Container Image’ (BYOCI) feature that allows you to deploy pre-built container images with App Platform. This means that if your app is already containerized, you can deploy it using App Platform, irrespective of how it’s built. This further reduces the barrier of entry and opens up App Platform for a vast number of use cases, including tighter integration with CI/CD systems. ","spans":[{"start":100,"end":151,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/deploy-from-registry/"}}]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=YAeOzVTN4EQ","title":"Deploy Your Own Container Image to App Platform","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/YAeOzVTN4EQ/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","height":113,"width":200,"version":"1.0","thumbnail_height":360,"thumbnail_width":480,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/YAeOzVTN4EQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"paragraph","text":"Currently App Platform integrates with DigitalOcean Container Registry (DOCR), so to deploy your container images with App Platform, you first need to push them to the DOCR. DOCR recently became Generally Available, and makes it easy to securely store and manage private container images. It also provides a Starter plan that’s free and is ideal for trying DOCR and testing out the BYOCI workflow for App Platform. Check out the docs for more details.","spans":[{"start":39,"end":77,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/"}},{"start":174,"end":214,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/container-registry-generally-available"}},{"start":308,"end":333,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/container-registry/#plans-and-pricing"}},{"start":429,"end":434,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/deploy-from-registry/"}}]},{"type":"paragraph","text":"We hope you’ll check out App Platform. To learn more, read the docs, try out this sample app for an RSS feed aggregator (here are the repos for the frontend and API), and let us know what you think!","spans":[{"start":15,"end":37,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/apps"}},{"start":63,"end":67,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/"}},{"start":82,"end":119,"type":"hyperlink","data":{"link_type":"Web","url":"https://rss-reader.shark.codes/"}},{"start":148,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/do-community/rss-reader-frontend"}},{"start":161,"end":164,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/do-community/rss-reader-api"}}]},{"type":"paragraph","text":"If you’d like to have a conversation about using DigitalOcean and App Platform in your business, please feel free to contact our sales team.","spans":[{"start":117,"end":139,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/contact/sales/"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":" ","spans":[]},{"type":"paragraph","text":"Jake Levirne,","spans":[]},{"type":"paragraph","text":"Senior Director of Product Management","spans":[]}],"blog_post_date":"2021-01-12","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"introducing-bring-your-own-container-image-workflow-for-digitalocean-app-platform"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Billie Cleek","author_image":null,"_meta":{"uid":"billie_cleek"}},"blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/31b4724c-9cfe-4d0c-ad21-ca8e10bb7925_GTA+Blog+image.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"GTA: Detecting affected dependent Go packages","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Today we are announcing the open sourcing of gta, which we use to understand the downstream dependencies of Go packages changed in pull requests to our monorepo, cthulhu. Technically, gta stands for Go Test Auto, but a more proper name might be Go Transitive Analysis. ","spans":[{"start":28,"end":48,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/gta"}}]},{"type":"paragraph","text":"In this article, we'll go through the primary use case for gta, its options, and how it can improve build times on feature branches by targeting only packages impacted by the changes on the feature branch.","spans":[]},{"type":"paragraph","text":"Matt Layher first introduced gta in his blog article about cthulhu, where he discussed the motivation and positive impact that gta had on DigitalOcean's build times of monorepo pull requests. In short, gta compares the current branch with its merge base of the destination branch to determine what's been changed in the branch. It then calculates all dependencies of those changes and outputs the import paths of all the affected packages.","spans":[{"start":40,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/cthulhu-organizing-go-code-in-a-scalable-repo/"}}]},{"type":"paragraph","text":"After experiencing slow and unreliable builds, one of our engineers, Justin Hines, set out to solve the problem once and for all. After a few hours of work, he authored a build tool called gta, designed to inspect the git history to determine which files changed between the merge base of the destination branch and a feature branch. It uses this information to determine which packages must be tested for a given build, including packages that import the changed package.","spans":[]},{"type":"paragraph","text":"As an example, suppose a change is committed which modifies a package, such as: do/teams/example/droplet. Suppose this package is imported by another package: do/teams/example/hypervisor. Gta is used to inspect the git history and determine that both of these packages must be tested, although only the first package was changed.","spans":[{"start":80,"end":104,"type":"em"},{"start":80,"end":104,"type":"strong"},{"start":159,"end":186,"type":"em"},{"start":159,"end":186,"type":"strong"}]},{"type":"paragraph","text":"The introduction of gta into our CI build process dramatically reduced the amount of time taken by builds. When gta was introduced in early 2016, the average build time dropped from 20 minutes to 2-3 minutes! This tool is now used almost everywhere in our build pipeline, including static analysis checks, code compilation and testing, and artifact builds and deployment.","spans":[{"start":182,"end":208,"type":"em"}]},{"type":"paragraph","text":"There are cases where building everything is still useful regardless of which files have actually changed. To support that use case, our build pipelines will bypass gta when either the name of the branch being tested has -force-test anywhere in its name or the pull request has a force-test label, restoring the old default behavior of “build everything for every change.”","spans":[{"start":221,"end":232,"type":"em"},{"start":221,"end":232,"type":"strong"},{"start":280,"end":290,"type":"em"},{"start":280,"end":290,"type":"strong"}]},{"type":"heading3","text":"input","spans":[]},{"type":"paragraph","text":"Gta needs a list of changed files. In the usual case, gta uses git to determine which files have changed by running git diff --name-only --no-renames It also supports a flag, --changed-files, to provide a file that contains a newline separated list of absolute paths of changed files for cases where the file list needs to be prefiltered.","spans":[{"start":116,"end":149,"type":"em"},{"start":116,"end":149,"type":"strong"},{"start":175,"end":190,"type":"em"},{"start":175,"end":190,"type":"strong"}]},{"type":"heading3","text":"analysis","spans":[]},{"type":"paragraph","text":"The --tags flag is a comma separated list of build tags to consider satisfied while analyzing the changes. You will be familiar with this if you rely on build constraints to build your packages.","spans":[{"start":4,"end":10,"type":"em"},{"start":4,"end":10,"type":"strong"}]},{"type":"heading3","text":"output","spans":[]},{"type":"paragraph","text":"The --include flag is used as a filter to control which packages are output. Its value is expected to be a comma separated list of package path prefixes that must match on an affected package's import path. Go developers will be familiar with this concept; gta essentially appends ... to each of the entries in the comma separated list.  A value of net/ would cause gta to output any affected package whose import path begins with net/ (e.g. net/http, net/httputil, or net/url).","spans":[{"start":4,"end":13,"type":"em"},{"start":4,"end":13,"type":"strong"},{"start":431,"end":435,"type":"em"},{"start":431,"end":435,"type":"strong"},{"start":442,"end":450,"type":"em"},{"start":442,"end":450,"type":"strong"},{"start":452,"end":464,"type":"em"},{"start":452,"end":464,"type":"strong"},{"start":469,"end":476,"type":"em"},{"start":469,"end":476,"type":"strong"}]},{"type":"paragraph","text":"Two flags, --buildable-only and --json are used to control the output. The former, \n--buildable-only, is a boolean flag that cannot be on when --json is on. Because --buildable-only is on by default, it must be explicitly set to false when -json is used.","spans":[{"start":11,"end":27,"type":"em"},{"start":11,"end":27,"type":"strong"},{"start":32,"end":38,"type":"em"},{"start":32,"end":38,"type":"strong"},{"start":84,"end":100,"type":"em"},{"start":84,"end":100,"type":"strong"},{"start":143,"end":149,"type":"em"},{"start":143,"end":149,"type":"strong"},{"start":165,"end":181,"type":"em"},{"start":165,"end":181,"type":"strong"},{"start":240,"end":245,"type":"em"},{"start":240,"end":245,"type":"strong"}]},{"type":"paragraph","text":"The --buildable-only flag causes gta to output a newline-separated list of buildable packages that were affected. This flag will elide any packages that were fully deleted or that were fully excluded by build constraints (i.e. --tags). The latter, --json, outputs a JSON object that fully describes the changes, including deleted packages.","spans":[{"start":4,"end":20,"type":"em"},{"start":4,"end":20,"type":"strong"},{"start":248,"end":254,"type":"em"},{"start":248,"end":254,"type":"strong"}]},{"type":"paragraph","text":"When --json is used, the output will be a JSON object with three properties: dependencies, changes, and all_changes. When piped to jq, gta's JSON output can be transformed as needed.","spans":[{"start":5,"end":11,"type":"em"},{"start":5,"end":11,"type":"strong"},{"start":77,"end":89,"type":"em"},{"start":77,"end":89,"type":"strong"},{"start":91,"end":98,"type":"em"},{"start":91,"end":98,"type":"strong"},{"start":104,"end":115,"type":"em"},{"start":104,"end":115,"type":"strong"},{"start":131,"end":133,"type":"hyperlink","data":{"link_type":"Web","url":"https://stedolan.github.io/jq/"}}]},{"type":"paragraph","text":"The dependencies property is a JSON object whose keys are the import paths of packages that have changed. Each key's value is a JSON array of strings whose values are import paths of the packages dependent on the package identified in the key. The changes property is a JSON array of strings whose values are the import paths of the packages that have changed. The final property, all_changes, is a JSON array of strings whose values are the import paths of all packages affected by changes.","spans":[{"start":4,"end":16,"type":"em"},{"start":4,"end":16,"type":"strong"},{"start":248,"end":255,"type":"em"},{"start":248,"end":255,"type":"strong"},{"start":381,"end":392,"type":"em"},{"start":381,"end":392,"type":"strong"}]},{"type":"paragraph","text":"The --merge and -base flags are used to control the left-hand side of the git diff operation. The former, --merge, will cause gta to use the most recent merge commit on the current branch as the left-hand side. The latter, -base, will cause gta to use the provided git revision as the left-hand side.","spans":[{"start":4,"end":11,"type":"em"},{"start":4,"end":11,"type":"strong"},{"start":16,"end":21,"type":"em"},{"start":16,"end":21,"type":"strong"},{"start":74,"end":82,"type":"em"},{"start":74,"end":82,"type":"strong"},{"start":106,"end":113,"type":"em"},{"start":106,"end":113,"type":"strong"},{"start":223,"end":228,"type":"em"},{"start":223,"end":228,"type":"strong"}]},{"type":"heading3","text":"gotchas","spans":[]},{"type":"paragraph","text":"Gta assumes that the source control system is git. It is unlikely that other systems will be supported. The --changed-files flag can be used to provide a list of files to inspect and completely skip the git operations in gta.","spans":[{"start":108,"end":123,"type":"em"},{"start":108,"end":123,"type":"strong"}]},{"type":"paragraph","text":"Gta will consider a package to have changed even when none of the changed files in the directory are Go files; as long as there is a valid Go package in the directory, gta will consider that package to have been changed. This is intentional: it helps ensure that if tests use those files or go generate needs to be run, that the tests or build scripts can be informed of the package change. We believe the tradeoff of sometimes being overly aggressive is worth the practical guarantee that it provides.","spans":[{"start":291,"end":302,"type":"em"},{"start":291,"end":302,"type":"strong"}]},{"type":"paragraph","text":"Gta does not report a package as having changed if files in its testdata directory have changed. For consistency with how non-Go files in a package directory are handled, we are reconsidering how changed files in a testdata directory should affect gta's output.","spans":[{"start":64,"end":72,"type":"em"},{"start":64,"end":72,"type":"strong"},{"start":215,"end":223,"type":"em"},{"start":215,"end":223,"type":"strong"}]},{"type":"paragraph","text":"To get the full benefit of using gta to reduce build times, it is important to structure your Go packages efficiently. When possible, put interface definitions in a separate package from implementations, program against the interfaces, and reference the implementations of those interfaces in main packages. This is not always practical or desirable; the important thing is to design your package layout thoughtfully and be aware that some package changes will necessarily affect a large number of dependents.","spans":[]},{"type":"heading3","text":"Conclusion","spans":[]},{"type":"paragraph","text":"DigitalOcean was able to dramatically reduce the time required to build and test a pull request while still ensuring complete analysis and testing by focusing only on the packages that are affected by the changes in the pull request. Thanks to Go's excellent support for static analysis, gta is able to determine which packages are affected by those changed packages with a high degree of confidence. We hope gta will be able to streamline your builds, too.","spans":[]},{"type":"paragraph","text":"Billie Cleek is a Staff Engineer in the PaaS group where he supports teams building DigitalOcean's PaaS product line and  internal tools to provide a consistent deployment surface for DigitalOcean's microservices. In his spare time, Billie is the maintainer of vim-go, infrequent contributor to other open source projects, and can be found working on his 100 year old house, sailing, or in the forests of the Pacific Northwest regardless of the weather. You may also find Billie on GitHub and Twitter.","spans":[{"start":0,"end":501,"type":"em"},{"start":482,"end":488,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/bhcleek"}},{"start":493,"end":500,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/bhcleek"}}]}],"blog_post_date":"2021-01-12","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"gta-detecting-affected-dependent-go-packages"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Rafael Rosa","author_image":{"dimensions":{"width":250,"height":250},"alt":"Rafael Rosa","copyright":null,"url":"https://images.prismic.io/www-static/6326cb734e557630247062ec390166664f5d3b63_77d07a0ba7bc27b40afc8f5932c57417.png?auto=compress,format"},"_meta":{"uid":"rafael_rosa"}},"blog_header_image":{"dimensions":{"width":1200,"height":600},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/72bd2f14-1db1-4e37-a5a1-8f71e4e1994b_latest-at-do-blog-img.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Latest products and features at DigitalOcean: December 2020 ","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"December was a busy month at DigitalOcean as we introduced many new features. Here are the highlights for this month:","spans":[]},{"type":"heading2","text":"Infrastructure as a Service (IaaS)","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"Introducing new DigitalOcean Load Balancers for higher-scale business applications","spans":[]},{"type":"paragraph","text":"As more businesses have realized they could save huge sums of money by migrating their bandwidth-intensive apps to DigitalOcean, we’ve heard some say that they need more robust, scalable load balancers than the ones we provide for just $10 per month.","spans":[{"start":44,"end":68,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/its-all-about-the-bandwidth-why-many-network-intensive-services-select-digitalocean-as-their-cloud/"}}]},{"type":"paragraph","text":"We are excited to introduce more scalable Load Balancer plans. Our new ‘Medium’ Load Balancer is a great fit for transaction-driven sites or services with moderate traffic, and costs just $30 per month. Our ‘Large’ Load Balancer is ideal for higher-traffic sites or API endpoints, and costs $60 per month. Users of our existing $10 per month Load Balancer will find that these are now classified as ‘Small.’ Check out the docs to learn more. ","spans":[{"start":28,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-new-digitalocean-load-balancers-plans"}},{"start":422,"end":427,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/load-balancers/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/18242f6a-ac1b-41d0-8f1e-9db24182ab01_digitalocean+load+balancer+control+panel.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1600,"height":644}},{"type":"heading5","text":"Standard Droplet plans deprecated for new users ","spans":[]},{"type":"paragraph","text":"A few months ago, we renamed Standard Droplet plans to Basic Droplet plans. Basic Droplets have shared CPU and are ideal for simple or bursty applications such as low-traffic web servers, blogs, discussion forums, CMS, small databases, dev/test servers, microservices, and repository hosting. ","spans":[{"start":76,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}},{"start":96,"end":106,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/droplets/resources/choose-plan/#shared-vs-dedicated"}}]},{"type":"paragraph","text":"We have deprecated Standard Droplet plans from the API for new users. Existing customers will retain grandfathered access to these plans. See the API changelog for a full list of deprecated plans.","spans":[{"start":166,"end":195,"type":"hyperlink","data":{"link_type":"Web","url":"https://developers.digitalocean.com/documentation/changelog/api-v2/deprecate-standard-droplet-plans"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"End of life for CentOS 6 (Reminder) ","spans":[]},{"type":"paragraph","text":"CentOS 6 has reached its end of life. Per our image deprecation policy, you can now only deploy the CentOS 6 image via the API. We will remove CentOS 6 from the platform on January 7, 2021.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://wiki.centos.org/About/Product"}},{"start":46,"end":70,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/platform/image-deprecation/"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Platform as a Service (PaaS)","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"Managed Databases for Redis 6 are now available ","spans":[]},{"type":"paragraph","text":"We recently upgraded Managed Databases from Redis 5 to Redis 6. This means if you spin up a cluster for Managed Redis, you will now have access to Redis 6. You can no longer create Redis 5 clusters. ","spans":[{"start":21,"end":38,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/databases/redis/how-to/create/"}}]},{"type":"paragraph","text":"Redis 6 provides a lot of new functionality related to security, performance, and ease of use. This includes features like access control lists (ACLs), ability to encrypt traffic over SSL, threaded I/O to boost performance, support for a new version of the RESP3 protocol, etc. We hope this upgrade will enable you to get the most out of Redis.","spans":[{"start":26,"end":93,"type":"hyperlink","data":{"link_type":"Web","url":"https://redislabs.com/blog/diving-into-redis-6/"}}]},{"type":"paragraph","text":"Starting January 6, your existing clusters for Managed Redis will be automatically upgraded to version 6. Redis 6 is fully backward compatible, so your applications with Redis 5 should work seamlessly with Redis 6. ","spans":[{"start":18,"end":20,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"Get DigitalOcean credits for use of “Deploy to DigitalOcean” button ","spans":[]},{"type":"paragraph","text":"Last month we launched the ‘Deploy to DigitalOcean’ button, which helps maintainers, contributors, and consumers of open source software save time with app deployment. Simply embed this button and associated link in the README.md files in your GitHub repositories, web pages, blogs, etc. – and let us handle the app deployment process. ","spans":[{"start":27,"end":60,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/easily-deploy-open-source-apps-with-the-new-deploy-to-digitalocean-button-and-other-app-platform-enhancements"}}]},{"type":"paragraph","text":"You can now get DigitalOcean credits for use of the ‘Deploy to DigitalOcean’ button. If you refer someone to DigitalOcean via the button using a valid referral code, they’ll receive credits on their account as soon as they add a valid payment method. Additionally, you’ll receive credit with DigitalOcean for the referral. The amounts that are paid out are listed here. ","spans":[{"start":12,"end":37,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/add-deploy-do-button/#get-digitalocean-credits-for-use-of-deploy-to-digitalocean-button"}},{"start":364,"end":368,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/accounts/referrals/"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"Marketplace updates","spans":[]},{"type":"paragraph","text":"We launched many preconfigured 1-Click Apps in the DigitalOcean Marketplace to help you save time and remove the hassle of provisioning servers.","spans":[]},{"type":"list-item","text":"Cloud Manager: A feature-rich web UI for Kubernetes, designed from the ground-up to support all the workflows needed by developers when deploying cloud-native and microservice applications.","spans":[{"start":0,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/cloud-manager"}}]},{"type":"list-item","text":"Gigantum Client: An open source web application that manages portable and reproducible work in Jupyter, JupyterLab, and RStudio. ","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/gigantum-client"}}]},{"type":"list-item","text":"CSMM: A 7 days to die server manager with lots of features! Player tracking, ingame commands, economy, Discord integrations, roles, permissions and more.","spans":[{"start":0,"end":4,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/csmm"}}]},{"type":"list-item","text":"Saltcorn: Provides an easy way to build web-applications with a wide range of functionality, from customer relationship and project management to niche social networks.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/saltcorn"}}]},{"type":"heading2","text":"Developer experience","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading5","text":"Doctl updates ","spans":[]},{"type":"paragraph","text":"We have released two new versions for doctl, the official DigitalOcean CLI:","spans":[{"start":38,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/"}}]},{"type":"list-item","text":"v1.53.0 - This release adds support for container registry garbage collection of untagged manifests.","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.53.0"}}]},{"type":"list-item","text":"v1.54.0 - This release supports user confirmation before container registry garbage collection is started.","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.54.0"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"You can check out the release notes to get up to date information about product updates, and read about updates from the previous month here. ","spans":[{"start":22,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/release-notes/"}},{"start":104,"end":140,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/latest-products-and-features-at-digitalocean-november-2020"}}]},{"type":"paragraph","text":"We hope you’ll give the new products and updates a try. If you have an idea for improving our products or want to vote on other user ideas so they get prioritized, please submit your feedback. And if you have any questions, please feel free to ask them here. ","spans":[{"start":171,"end":191,"type":"hyperlink","data":{"link_type":"Web","url":"https://ideas.digitalocean.com/"}},{"start":244,"end":257,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Until next month, ","spans":[]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"Rafael Rosa","spans":[]},{"type":"paragraph","text":"Senior Product Manager","spans":[]}],"blog_post_date":"2020-12-21","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"latest-products-and-features-at-digitalocean-december-2020"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Yancey Spruill","author_image":{"dimensions":{"width":6016,"height":4016},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/5108518f-e9f6-4361-931e-64c8a848160d_YanceySpruill.jpg?auto=compress,format"},"_meta":{"uid":"yancey_spruill"}},"blog_header_image":{"dimensions":{"width":1920,"height":1080},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/5036ebe6-a85d-4fc8-b9ac-859c2780410e_DO-mission-statement+%281%29.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"2020 Reinforced that the 'community is bigger than just us'","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"When we began the year, we knew this would be an important one for DigitalOcean and our team was excited to do what we do best: help developers, startups, and small- and medium-sized businesses (SMBs) be successful testing their ideas and building their businesses in the cloud. What we didn’t know was what this would mean to so many members of our community. ","spans":[]},{"type":"paragraph","text":"With 2020 and the shift to a work-from-home environment, we all had to dramatically change the way we operated. Many developers and entrepreneurs across the world have been inspired to spin up new projects or businesses in the light of the pandemic. Their needs changed and our priorities had to shift to support them in this new way of working. ","spans":[]},{"type":"paragraph","text":"This wasn’t the year we anticipated, but I am grateful and extremely proud of what our team has been able to accomplish in this unusual and unprecedented year. We stayed true to focusing on you and, in a time when the global community needed it most, we remained focused on simplifying cloud computing so developers and businesses could spend more time creating software that changes the world. ","spans":[]},{"type":"paragraph","text":"Allow me to share a few highlights. ","spans":[]},{"type":"paragraph","text":"Product innovation to power your success","spans":[{"start":0,"end":40,"type":"strong"}]},{"type":"paragraph","text":"With a focus on making our cloud even more accessible, reliable, and secure, our product and support teams worked hard to deliver key innovations and make your lives even easier.","spans":[]},{"type":"paragraph","text":"We launched App Platform, a whole new take on deploying software apps. App Platform abstracts away the servers to allow users to focus on their code and deploy it with a click of a button. For our customers who didn’t want to worry about provisioning and managing infrastructure, App Platform is a great tool to speed up your work.","spans":[{"start":12,"end":24,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-digitalocean-app-platform-reimagining-paas-to-make-it-simpler-for-you-to-build-deploy-and-scale-apps/"}}]},{"type":"paragraph","text":"To simplify working with containers especially in Kubernetes workflows, we made DigitalOcean Container Registry generally available. This makes it easy to securely store and manage private container images, allowing for rapid deployment to DigitalOcean Kubernetes, and other destinations in future..","spans":[{"start":80,"end":111,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/"}}]},{"type":"paragraph","text":"To help customers stay more secure, we released DigitalOcean Virtual Private Cloud (VPC), which allows customers to create multiple private networks for their account and/or team, along with our Trust Platform, where we provide honest and real information about privacy and security at DigitalOcean. We also joined the Mutually Agreed Norms for Routing Security (MANRS) initiative for CDN and Cloud Providers to reduce common routing security threats and help make the internet a safer place. ","spans":[{"start":61,"end":88,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/vpc-trust-platform/"}},{"start":195,"end":209,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/trust/"}},{"start":319,"end":369,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/digitalocean-joins-manrs/"}}]},{"type":"paragraph","text":"Finally, we introduced improved and different-sized Load Balancers products as well as Storage Optimized Droplets for customers who wanted VMs with larger, faster disks.","spans":[{"start":52,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-new-digitalocean-load-balancers-plans"}},{"start":87,"end":113,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-storage-optimized-droplets-with-nvme-ssds"}}]},{"type":"paragraph","text":"Investment in learning for the community of developers and entrepreneurs","spans":[{"start":0,"end":72,"type":"strong"}]},{"type":"paragraph","text":"Learning has always been a major focus of ours at DigitalOcean and this year we continued to invest in developer education to help our customers and community grow their skills through high-quality content. ","spans":[]},{"type":"paragraph","text":"In 2020, we published more than 400 original tutorials and released 10 free eBooks, including reference guides on topics like SysAdmin needs and how-tos on new programming languages. We fielded more than 4,500 questions and 7,400 answers to help developers get the help they needed on specific questions, and hosted 63 educational Tech Talks throughout the year. ","spans":[{"start":45,"end":54,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials"}},{"start":76,"end":82,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tags/book"}},{"start":126,"end":134,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/books/sysadmin-ebook-making-servers-work"}},{"start":331,"end":341,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tags/tech-talks"}}]},{"type":"paragraph","text":"We also held our first ever global community conference, deploy, to bring together our global community to celebrate the things we care about most: learning, building, and creating. ","spans":[{"start":57,"end":63,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/deploy/"}}]},{"type":"paragraph","text":"Our community is bigger than just us","spans":[{"start":0,"end":36,"type":"strong"}]},{"type":"paragraph","text":"Our community is bigger than just us. This is one of our company’s values, and also one of our most important promises to the global community of developers and entrepreneurs. In 2020, our focus on community was also one of the most powerful things we did here at DigitalOcean.","spans":[]},{"type":"paragraph","text":"We again hosted our Hacktoberfest (for the 7th straight year!) to bring the community together to celebrate open source software. The program looked a lot different this time around. We worked with project maintainers to shift the program to an “opt-in” model for open source projects so we could help improve the quality of contributions and we made Hacktoberfest 100% virtual. We also provided an option for participants to choose to “plant a tree” instead of receiving a t-shirt as a reward for participation. Close to 170,000 participants joined us from 135 countries worldwide, and together we made more than half a million pull requests and planted more than 6,000 trees. ","spans":[]},{"type":"paragraph","text":"Last, but certainly not least, this year we introduced Hub for Good, a program near to my heart. Hub for Good encourages collaboration among people looking to solve the unique challenges created by the COVID-19 pandemic as well as social and racial injustice. 2020 has been a difficult year for all of us and we were happy to do our part to help where we could. The program connects educators and innovators to share their knowledge or experiences to help people in need, and to give developers a place to come together to serve their communities. So far we’ve accepted more than 1,000 projects into the program and provided more than $150,000 in support. ","spans":[{"start":55,"end":67,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/pages/hub-for-good"}}]},{"type":"paragraph","text":"Hub for Good is DO's most important commitment yet, to our community is bigger than just us. In 2021, we will expand the donation of our infrastructure to people around the world who seek to make our world, our community, a better place.","spans":[]},{"type":"paragraph","text":"Excited for 2021","spans":[{"start":0,"end":16,"type":"strong"}]},{"type":"paragraph","text":"As we look ahead to 2021, I’m encouraged to see positive change on the horizon. With the vaccines, and other medical and social breakthroughs we hope to get back to a new kind of normal soon. But we will be sure not to forget the lessons learned from this unique year. ","spans":[]},{"type":"paragraph","text":"As for DigitalOcean, our team will continue to stay focused on our customers and the global community of developers and entrepreneurs. And we will continue to do our best for DO to be the place where they come to test their ideas, build their businesses, and realize their dreams.","spans":[]},{"type":"paragraph","text":"Our best to you as we close out 2020 and look forward to a better 2021! ","spans":[]}],"blog_post_date":"2020-12-21","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"when-we-began-the-year-we-knew-this-would-be-an-important"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tim Raphael","author_image":{"dimensions":{"width":1445,"height":1600},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/7b43ba43-c950-485c-8aef-fbada68e2743_Tim+Raphael.png?auto=compress,format"},"_meta":{"uid":"tim-raphael"}},"blog_header_image":{"dimensions":{"width":1200,"height":600},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/5787f177-ce76-445a-80b1-c0a445065e6f_DODX-1941-header-option-3+%282%29.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"DigitalOcean Joins MANRS Initiative to Combat Routing Security Threats","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Today we are pleased to announce that DigitalOcean has joined the Mutually Agreed Norms for Routing Security (MANRS) initiative for CDN and Cloud Providers to reduce common routing security threats. The initiative, supported by the Internet Society, outlines actions network operators should take to improve the resilience and security of routing infrastructure.","spans":[{"start":66,"end":155,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.manrs.org/cdn-cloud-providers/"}}]},{"type":"paragraph","text":"The continued improvement of core internet security and stability is not only critical for our customers, but it is essential for our internet network peers and the community at large. In the first three days of December alone, the number of routing incidents — including route misoriginations and leaks — in the world surpassed 700. MANRS works to combat this prominent issue by bringing together a large group of industry stakeholders, which now includes DigitalOcean. By joining the initiative, we agree to follow specific guidelines to increase our routing security to ultimately help make the internet safer for both businesses and consumers.","spans":[{"start":232,"end":259,"type":"hyperlink","data":{"link_type":"Web","url":"https://observatory.manrs.org/#/overview"}}]},{"type":"paragraph","text":"Since the very beginning, cooperation has been at the heart of how the internet has operated. Whole new protocols, enhancements to existing protocols and the development of common standards continue to improve the network of networks. The passion and energy of thousands of engineers across the globe is focused on making incremental improvements to key infrastructure so that the Internet continues to enable new and exciting technological advancements. Many of these experts voluntarily work on these issues because they understand the deep technical complexities and the risks they pose to internet security and availability. ","spans":[]},{"type":"paragraph","text":"Routing security threats have the potential to be detrimental to a business’s bottom line. However, with standardized controls and guidelines like MANRS, incidents can not only be reduced, but prevented. As more companies and cloud service providers adopt these controls, the fewer incidents and less damage there will be.","spans":[]},{"type":"paragraph","text":"The technical steps MANRS outlines for cloud service providers to follow are:","spans":[]},{"type":"list-item","text":"Filtering: prevents the propagation of incorrect routing information. This technique provides assurance against configuration errors that can lead to “hijacking” traffic directed to other networks, resulting in widespread outages.","spans":[]},{"type":"list-item","text":"Anti-spoofing: prevents traffic with spoofed source IP addresses, a practice that can help dramatically diminish the prevalence and impact of distributed denial of service (DDoS) attacks.","spans":[]},{"type":"list-item","text":"Coordination: facilitates timely communication and coordination among peers, which is essential for incident mitigation and better assurance of the technical quality of relationships.","spans":[]},{"type":"list-item","text":"Global validation: encourages network operators to publish routing data, which is essential for limiting the scope of routing incidents, making the global system more resilient.","spans":[]},{"type":"paragraph","text":"\"The MANRS initiative shows that when the internet community comes together to create a baseline of routing security for network operators around the world, it is possible to protect the core of the internet,\" said Aftab Siddiqui, MANRS Project Lead and Senior Manager, Internet Technology, Internet Society. \"We are delighted to welcome DigitalOcean, whose conformance with the MANRS actions brings us one step closer to enabling a safer internet for everyone.\"","spans":[]},{"type":"paragraph","text":"“DigitalOcean has long understood the deep value of strong communities, and by joining MANRS our team is taking a necessary step in helping to build a better internet,” said Chris Higgins, VP Infrastructure. “We will be working with our peers to bring these benefits to even more networks.”","spans":[]}],"blog_post_date":"2020-12-17","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"digitalocean-joins-manrs"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Phil Dougherty","author_image":{"dimensions":{"width":573,"height":557},"alt":"Phil Dougherty","copyright":null,"url":"https://images.prismic.io/www-static/ef89c36114b5e1872e8de0b79eb679b9be5b3765_phil.png?auto=compress,format"},"_meta":{"uid":"phil_dougherty"}},"blog_header_image":{"dimensions":{"width":2880,"height":1200},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/499858ce-04e8-4c5b-9329-a735976b3cf5_App-Platform-bg.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Build component-based apps with DigitalOcean App Platform","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Software development and deployment best practices continue to evolve at a rapid pace. It can be challenging to understand whether you are making the right choices to ensure that you’re going to deliver a great experience for your end users while maintaining a workflow that keeps your team unblocked and productive. Traditional Platform as a Service (PaaS) offerings make it easy and cost effective to get started, but as your application begins to grow in complexity and scale, and your needs from the offering become more diverse, it can become difficult to manage. Taking a component-based approach to your architecture can go a long way to ease this burden.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"The Existing Approaches","spans":[]},{"type":"paragraph","text":"As a developer working on a new project, you’ll face the decision of picking an application architecture and deciding on the frameworks, tooling, and services you’ll utilize to be successful. It can often feel overwhelming to make sense of all of the options and decide on the right approach. Should you be building a 12 factor app? Should you be focused on building with the JAM stack? Are you backing yourself into a corner if you decide on one over the other? What if your needs change in six months, or business takes you in a new direction with a new set of requirements? ","spans":[]},{"type":"paragraph","text":"With component-based applications you can layer on the building blocks of all of these approaches in a succinct specification that is easy to understand, manage, and expand upon. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"The Power of Component-Based Apps","spans":[]},{"type":"paragraph","text":"As your applications evolve, their structure often needs to as well. Component-based apps encourage the building of modular and loosely coupled parts that enable independent scaling, management, and maintenance of the various pieces of software needed to deliver your application. Modern apps are typically made up of a static single page application  (SPA) hosted via a content delivery network (CDN), a backing set of dynamic APIs, and a database. Adopting a component-based design lets members of your team focus on the parts of the app that are most important at that moment, while retaining flexibility and accelerating how quickly they can iterate.","spans":[]},{"type":"paragraph","text":"An example of a platform that enables the creation and management of component-based apps is DigitalOcean App Platform. The app specification allows for adding component building blocks as they are needed. ","spans":[]},{"type":"paragraph","text":"An example of a simple application that only contains a CDN-backed static site. ","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/3dda9a43-e1a7-4d2f-a6c5-6a1dc012b07c_Phil_blog1.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":934,"height":288}},{"type":"paragraph","text":"Perhaps I also want to deploy my golang based API that my static site can utilize to serve up dynamic content. If I was hosting on most platforms, I would be forced to take a look at potentially adding another hosting platform in order to run my API. In a component-based platform, I can simply expand on my app specification declaration to define my dynamic service. ","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/c9a425fc-e16a-4274-a78f-22d06d99b290_Phil_blog2.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":936,"height":615}},{"type":"paragraph","text":"Let’s take a look at some of the various components that make up a modern app and how you might leverage them as your application evolves. ","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/42453250-63ca-498a-8077-42b00eb5f543_Phil_blog3.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":919,"height":448}},{"type":"heading2","text":"Static Sites","spans":[]},{"type":"paragraph","text":"As you’re just getting started building your application, it often makes sense to deploy a static website. Perhaps this is a landing page or marketing website that you are using to gauge interest in your idea before you fully commit to building it out, or maybe you’re already well underway when it comes to writing code, and you’re looking for a cost effective way to deploy your SPA. This type of component is typically delivered to end users via a CDN to ensure the fastest response time no matter where the user is located globally. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Services","spans":[]},{"type":"paragraph","text":"As your needs evolve and you need to move from a strictly static website to something more dynamic, you will want to deploy an API that your static site can interact with. With services, you are able to deploy long running internet facing web services. Services can be written in many different programming languages and frameworks. Once your service is built and running, resizing the service vertically to add more resources, or scaling out horizontally is a simple way to increase the amount of horsepower and capacity available to serve your end users. Services are a great way to deploy an API or any other supporting service that your SPA running as a static site can leverage.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Databases","spans":[]},{"type":"paragraph","text":"Services are meant to handle the task of acting as a backing API that your static SPA can consume to provide dynamic functionality. In order to provide that dynamic content, services will need to be hooked up to a database where all of that data is held. There are many options available for databases, some of the most commonly used being MongoDB, PostgreSQL, and MySQL. Being able to scale out your database as your application grows is important to ensure that your services can quickly get access to the data needed to support your end users.","spans":[]},{"type":"paragraph","text":"Just as we saw in the previous sections, If I need a database to back my API, I do not need to go hunting for a managed database provider to host it for me; I can simply update my app specification. Environment variables will be automatically injected into my other components so that I can easily access it.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/b1891cf7-2bac-46be-a62b-68899188b3e0_Phil_blog4.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":934,"height":261}},{"type":"heading2","text":"Workers","spans":[]},{"type":"paragraph","text":"Now that you have a SPA running, dynamic services powering an API, and a database backing it, it often becomes a necessity to have a type of service that is not internet accessible, but runs in the background doing processing or handling interactions with the database. This is where workers come in very handy. Workers can be scaled vertically and horizontally just like a regular service, but cannot be accessed by the public internet and run internally to your app. Workers can be used to process various records in your database, or to handle populating your database with data fetched from third party APIs or from records that have been queued for batch processing.","spans":[]},{"type":"paragraph","text":"Workers can be added to your app specification as well quite easily!","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/71be639b-fbad-41cc-abe2-d13d39bdd793_Phil_blog5.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":930,"height":313}},{"type":"heading2","text":"Jobs","spans":[]},{"type":"paragraph","text":"Sometimes it is necessary to kick off a one-off task, or a scheduled task, to run a script or make a change to some part of an application. Jobs are designed for just that purpose. Jobs can typically support both pre and post-deploy hooks, which are great for making a change before or after a new deployment of your code is rolled out. For example, these types of jobs can be used to handle a database migration during your software deployment. Scheduled jobs are similar to a Linux cron job and are configured to run on a schedule you set to handle housekeeping or other common repeatable tasks.","spans":[]},{"type":"paragraph","text":"Jobs are defined as follows in the app specification.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/b65ad262-d43f-43d5-9d14-4ef7670c69b4_Phil_blog6.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":933,"height":346}},{"type":"paragraph","text":"With these sets of components it’s possible to go from an extremely simple static site, to a highly complex and scalable environment designed to help you bring your ideas to market faster and delight your users. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Component-Based Apps with App Platform","spans":[]},{"type":"paragraph","text":"App Platform was developed from the ground up to be as open as possible. That is why when we were designing the product, we made sure to leverage as many industry standard cloud-native technologies as possible. The core of App Platform is built on top of a fleet of multi-tenant DigitalOcean Kubernetes clusters with gVisor for isolation, utilizes DigitalOcean Container Registry, and layers on tools such as Kaniko for image builds, Fluent Bit for logging, Prometheus for metrics and alerting, and so much more. App Platform has been designed to be simple to start with but able to grow with you as your business scales by fully adhering to building modern component based apps.","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"https://try.digitalocean.com/app-platform/?utm_medium=sponsorship&utm_source=stackshare&utm_campaign=global_app-platform_featured-post_en&utm_content=fto_100"}},{"start":279,"end":302,"type":"hyperlink","data":{"link_type":"Web","url":"https://try.digitalocean.com/kubernetes-in-minutes/?utm_medium=sponsorship&utm_source=stackshare&utm_campaign=global_app-platform_featured-post_en&utm_content=fto_100"}},{"start":348,"end":379,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/container-registry/?utm_medium=sponsorship&utm_source=stackshare&utm_campaign=global_app-platform_featured-post_en&utm_content=product"}}]},{"type":"paragraph","text":"Everything in the App Platform is built around a declarative spec that defines the applications’ desired state. This makes it simple to clone, reuse, and share apps easily, and also makes it easy to maintain parity between staging and production environments. The application spec can be either created from scratch, or can be downloaded from the Setting tab within your app. Once you have your app spec available, you have all of the features that are present in the UI available to you from the command line interface, as well as the API. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"App Platform is live now","spans":[]},{"type":"paragraph","text":"App Platform is now generally available, and we cannot wait to see the awesome things that users create with the building blocks that we have made available. Make sure to let us know what you think!","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"https://try.digitalocean.com/app-platform/?utm_medium=sponsorship&utm_source=stackshare&utm_campaign=global_app-platform_featured-post_en&utm_content=fto_100"}},{"start":171,"end":197,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions/new?tags=Digitalocean%20App%20Platform"}}]},{"type":"paragraph","text":"We are also running an App Platform Hackathon in partnership with DEV.to. Build an app using App Platform and get an opportunity to win some seriously sweet prizes (e.g. $2,000 USD gift card or equivalent, a Zoom meet-and-greet with our CEO, Yancey Spruill, and of course some cool swag!) The hackathon ends on Jan 10th and we hope you participate in it. ","spans":[{"start":23,"end":72,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/hackathon"}},{"start":233,"end":256,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/yanceyspruill"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"Phil Dougherty,","spans":[]},{"type":"paragraph","text":"Senior Product Manager","spans":[]}],"blog_post_date":"2020-12-15","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"build-component-based-apps-with-digitalocean-app-platform"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Rafael Rosa","author_image":{"dimensions":{"width":250,"height":250},"alt":"Rafael Rosa","copyright":null,"url":"https://images.prismic.io/www-static/6326cb734e557630247062ec390166664f5d3b63_77d07a0ba7bc27b40afc8f5932c57417.png?auto=compress,format"},"_meta":{"uid":"rafael_rosa"}},"blog_header_image":{"dimensions":{"width":1000,"height":500},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/14a9775d-c951-4875-89f4-85bb8f04fcff_load+balancer+blog.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing new DigitalOcean Load Balancers for higher-scale business applications","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Many of our largest customers run successful, high-traffic web and mobile apps, which use load balancers to spread traffic across compute resources. DigitalOcean provides a managed Load Balancer that thousands of our customers run in front of their Droplet VMs. Other customers pair our Load Balancers in conjunction with our easy-to-use managed Kubernetes service.","spans":[{"start":173,"end":194,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/load-balancer/"}},{"start":249,"end":260,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}},{"start":326,"end":364,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"paragraph","text":"As more businesses have realized they could save huge sums of money by migrating their bandwidth-intensive apps to DigitalOcean, we’ve heard some say that they need more robust, scalable load balancers than the ones we provide for just $10 per month.","spans":[{"start":43,"end":67,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/its-all-about-the-bandwidth-why-many-network-intensive-services-select-digitalocean-as-their-cloud/"}}]},{"type":"paragraph","text":"That’s why we’re introducing more scalable Load Balancer plans today.","spans":[{"start":0,"end":69,"type":"strong"}]},{"type":"paragraph","text":"Our new ‘Medium’ Load Balancer is a great fit for transaction-driven sites or services with moderate traffic, and costs just $30 per month. Our ‘Large’ Load Balancer is ideal for higher-traffic sites or API endpoints, and costs $60 per month. Users of our existing $10 per month Load Balancer will find that these are now classified as ‘Small’.","spans":[{"start":9,"end":16,"type":"em"},{"start":144,"end":151,"type":"em"},{"start":336,"end":343,"type":"em"}]},{"type":"paragraph","text":"To get a sense of how these Load Balancer options compare, here's an example of a synthetic HTTPS workload’s performance. The Small Load Balancer maxes out at ~8.3k RPS (requests per second); Medium at 23.9k RPS; and Large at ~41.9k RPS. Your own workloads, which might feature different protocols and packet sizes, will produce different results.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/220e99c6-9fa0-4889-afb8-ce161422c161_digitalocean+load+balancer+performance.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1600,"height":661}},{"type":"paragraph","text":"Bunnyshell, which describes itself as a second-generation cloud infrastructure solution with which to build and run your app or website, helped us test the new sizes. Here’s what their CEO had to say:","spans":[{"start":0,"end":10,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.bunnyshell.com"}}]},{"type":"paragraph","text":"\"The new DigitalOcean Load Balancers are just amazing! The Large Load Balancer helped us deliver 100% uptime in high traffic periods like Black Friday to over 2000 e-commerce customers.\"\n- Alin Dobra - CEO Bunnyshell","spans":[{"start":0,"end":216,"type":"em"}]},{"type":"paragraph","text":"To get started with the new Load Balancers, you can sign into the DigitalOcean control panel, or use our CLI, API, or extensions like our Terraform provider to create them programmatically. You might also provision a Load Balancer specifically for use with DigitalOcean Kubernetes.","spans":[{"start":79,"end":92,"type":"hyperlink","data":{"link_type":"Web","url":"https:///cloud.digitalocean.com"}},{"start":105,"end":108,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl"}},{"start":110,"end":113,"type":"hyperlink","data":{"link_type":"Web","url":"https://developers.digitalocean.com/documentation/v2/"}},{"start":134,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://registry.terraform.io/providers/digitalocean/digitalocean/latest/docs"}},{"start":217,"end":280,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/kubernetes/how-to/add-load-balancers/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/18242f6a-ac1b-41d0-8f1e-9db24182ab01_digitalocean+load+balancer+control+panel.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1600,"height":644}},{"type":"paragraph","text":"Visit our product documentation page to know more about our Load Balancers. At this time, you can’t resize an existing Load Balancer, but we’re intending to introduce this ability early next year.","spans":[{"start":10,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/load-balancers/"}}]},{"type":"paragraph","text":"If you have any feedback or questions, please leave us a comment.","spans":[]},{"type":"paragraph","text":"Happy coding!\nRafael Rosa,\nSenior Product Manager","spans":[]}],"blog_post_date":"2020-12-08","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"introducing-new-digitalocean-load-balancers-plans"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Daniel Levy","author_image":{"dimensions":{"width":867,"height":951},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/d1c19de4-5baf-4efa-9b8d-6be97b41c24d_daniel_levy+copy.jpg?auto=compress,format"},"_meta":{"uid":"daniel-levy"}},"blog_header_image":{"dimensions":{"width":1200,"height":628},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/b4301a9f-e6be-4783-9c03-a7395af3dade_Solarwind_Blog.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Monitor your applications on DigitalOcean with SolarWinds","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Providing awesome customer experiences is a top priority for most businesses. One way to improve customer experience is to improve the performance of your applications and the infrastructure on which your applications run. Monitoring performance allows you to detect problems early, avoid outages, and prevent customer dissatisfaction.","spans":[]},{"type":"paragraph","text":"DigitalOcean Monitoring allows you to track infrastructure metrics like CPU usage, disk usage, disk I/O, bandwidth, and memory – all provided at no additional cost. You can set alerts to be notified via email, Slack, or PagerDuty should metrics surpass thresholds that you define. But monitoring your infrastructure only tells half the story; you also need to monitor the apps that run on top of the infrastructure. ","spans":[{"start":0,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/monitoring/"}}]},{"type":"paragraph","text":"Today we’re partnering with SolarWinds™, a leading provider of powerful and affordable IT management software, to enable you to create application-level metrics, trace transactions, monitor the performance of individual processes, and drill all the way down to the poor-performing line of code. DigitalOcean customers who sign up for SolarWinds through the links below will have special access to their products at a 20% discount with discount code ‘welcomeDO’.","spans":[{"start":0,"end":461,"type":"strong"},{"start":28,"end":40,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.solarwinds.com"}},{"start":450,"end":459,"type":"em"}]},{"type":"paragraph","text":"Application-level metrics report on the performance of individual processes and services in your application and help you understand the state of your software. The following products from SolarWinds are a good match for many DigitalOcean users’ needs:","spans":[]},{"type":"list-item","text":"PaperTrail: Log management that installs in seconds and provides instant log visibility with full-text search and the ability to view, pause, and search live event streams.","spans":[{"start":0,"end":10,"type":"strong"},{"start":0,"end":10,"type":"hyperlink","data":{"link_type":"Web","url":"https://papertrailapp.com/signup?plan=free&CMP=SYN-OTA-DGTOCN-PA_WW_X_0_PPD_LD_EN_Q420CT_SW-PPT-V1_X_X_X_X_X-X","target":"_blank"}}]},{"type":"list-item","text":"AppOptics: Identify application bottlenecks with distributed tracing, code profiling, exception tracking, custom metrics, and dashboards. ","spans":[{"start":0,"end":9,"type":"strong"},{"start":0,"end":9,"type":"hyperlink","data":{"link_type":"Web","url":"https://my.appoptics.com/sign_up?CMP=SYN-OTA-DGTOCN-AO_WW_X_0_PPD_LD_EN_Q420CT_SW-AO-V1_X_X_X_X_X-X","target":"_blank"}}]},{"type":"list-item","text":"Pingdom: Optimize and troubleshoot web application availability and performance.","spans":[{"start":0,"end":7,"type":"strong"},{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.pingdom.com/sign-up/?CMP=SYN-OTA-DGTOCN-PG_WW_X_0_PPD_LD_EN_Q420CT_SW-PING-V1_X_X_X_X_X-X","target":"_blank"}}]},{"type":"list-item","text":"Loggly: Scalable full-stack, multi-source log aggregation that allows you to visualize, search and correlate application event data. ","spans":[{"start":0,"end":6,"type":"strong"},{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.loggly.com/signup/?CMP=SYN-OTA-DGTOCN-LG_WW_X_0_PPD_LD_EN_Q420CT_SW-LOG-V1_X_X_X_X_X-X","target":"_blank"}}]},{"type":"paragraph","text":"(Note: only PaperTrail and Pingdom support the ‘welcomeDO’ discount code during the signup process.)","spans":[{"start":0,"end":100,"type":"em"}]},{"type":"paragraph","text":"SolarWinds products complement the DigitalOcean Monitoring service and empower you to run your applications and infrastructure smoothly. This in turn allows you to deliver awesome customer experiences. If you’re looking for more monitoring and logging services than we provide here at DigitalOcean, we suggest that you give SolarWinds’ products a try.","spans":[]},{"type":"paragraph","text":"UPDATE 1/5/2021: We're tracking the news regarding the SolarWinds Orion product. The products we have partnered with SolarWinds to bring to our customers are not part of that compromise, per DHS CISA - https://www.cisa.gov/supply-chain-compromise.","spans":[{"start":202,"end":246,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.cisa.gov/supply-chain-compromise"}}]}],"blog_post_date":"2020-12-02","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"monitor-your-applications-on-digitalocean-with-solarwinds"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Mohan Ram","author_image":{"dimensions":{"width":905,"height":905},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/00fd7be0-48f3-4d56-af99-f0cbf90f537a_mohan-ram.png?auto=compress,format"},"_meta":{"uid":"mohan_ram"}},"blog_header_image":{"dimensions":{"width":1000,"height":500},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/09bbc134-7fef-4d55-8eb0-14cab8ee5b9f_Network18.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Start-Ups Decoded: A sneak peek into the success stories of high-growth startups","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Start-Ups Decoded is a fun and interactive talk show in partnership with Firstpost, aimed at sharing the journeys and experiences of entrepreneurs leading fast-growing tech startups. This video series profiles five interesting stories of customers who use DigitalOcean. The Tech Founders were interviewed by Tushar Burman, Editor of Technology at Firstpost, in which they share their startup journey, challenges and milestones, life lessons, and business secrets to help and inspire budding entrepreneurs to take the plunge into the world of startups.","spans":[]},{"type":"paragraph","text":"Below, you can find a sneak peek of the series. The videos are available on DigitalOcean’s YouTube channel and you can find their individual links below. Happy viewing! ","spans":[{"start":76,"end":106,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/channel/UCaPX53JLxxSbwZz_Ra_cL0g"}}]},{"type":"heading4","text":"1. Building database driven apps made easier - In conversation with Rushabh Mehta, founder and CEO of Frappe","spans":[{"start":0,"end":108,"type":"strong"}]},{"type":"paragraph","text":"In today’s new world of automation, where apps are being published left and right, and we are all stuck in our homes, the digital world has come to our help! What if there was a framework that enabled easier creation of database-driven apps to make life easier for companies and startups? Tune in to listen to Rushabh Mehta, founder and CEO of Frappe, where he discusses  what powers ERPNext, a web framework written in Python, and JavaScript with Maria DB as the database.","spans":[{"start":289,"end":309,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/2_r1AelATbM"}}]},{"type":"heading4","text":"2. Gaming is what makes regular things exciting - In conversation with Quodeck founder Arijit Lahiri","spans":[{"start":0,"end":100,"type":"strong"}]},{"type":"paragraph","text":"With Work-from-home ‘WFH’ becoming the norm, we’ve got some time to learn more and upskill. But how can digital learning be made more interesting? That’s where Quodeck comes in. It’s an enterprise Learning Management System (LMS) that gamifies the learning experience. Tune in to listen to Arijit Lahiri, the founder of Quodeck, as he takes us through how Quodeck  is changing the way learning happens through gamification.","spans":[{"start":269,"end":289,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/8T7Br7n31aU"}}]},{"type":"heading4","text":"3. Are you a smart trader? - In conversation with Marketpulse founders Amit Dhakad and Hiral Jain","spans":[{"start":0,"end":97,"type":"strong"}]},{"type":"paragraph","text":"Market Pulse is a reputed market analysis app that helps people survive, navigate, and make profits in financial markets on the go. If you are into the trading world, you will know that seconds have immense value, and split second decisions are inevitable. To stay ahead of the game, you need to stay up-to-date with the ever-changing beats of the market. Here is where Market Pulse comes in.","spans":[]},{"type":"paragraph","text":"Watch the video to listen to Amit Dhakad (Co-founder, CEO & CTO) and Hiral Jain (Co-founder & CFO) on a ‘work from home’ style, as they share about how Market Pulse came to be! ","spans":[{"start":0,"end":29,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/UOEZY94IwUI"}}]},{"type":"heading4","text":"4. Harnessing the power of AI for the legal community made easy! - In conversation with MikeLegal co-founder Anshul Gupta ","spans":[{"start":0,"end":122,"type":"strong"}]},{"type":"paragraph","text":"MikeLegal is a cutting edge toolset enabling the legal community to be more efficient by becoming their reliable AI powered associate. If you are a part of the legal community, you know that there is practically zero room for error, and it's either pinpoint accuracy or the case is lost. MikeLegal empowers you with all the info that you need; be it trademarks and patents as per the registry, or getting your legal research done in seconds instead of toiling for days. Listen to Anshul Gupta, co-founder of MikeLegal, as he takes us through MikeLegal’s journey. ","spans":[{"start":470,"end":479,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/FJ-EJEn_y1g"}}]},{"type":"heading4","text":"5. Here’s how Datanet designs solutions for the gaming needs you might have!- In conversation with Datanet Founder and CEO Deepak Sharma ","spans":[{"start":0,"end":137,"type":"strong"}]},{"type":"paragraph","text":"Datanet is a Managed Service Provider (MSP) that builds and manages infrastructure for platforms that enable fantasy sports websites. They provide customers with customized solutions to host their website tagged along with an affordable price card. Watch the video to listen to Deepak Sharma, Founder and CEO of Datanet, talk through his entrepreneurial journey. ","spans":[{"start":249,"end":264,"type":"hyperlink","data":{"link_type":"Web","url":"https://youtu.be/i7FfOSv64ns"}}]}],"blog_post_date":"2020-11-30","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"start-ups-decoded-a-sneak-peek-into-success-stories"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"John Gannon","author_image":{"dimensions":{"width":188,"height":188},"alt":"John Gannon","copyright":null,"url":"https://images.prismic.io/www-static/c168397537fa6de301e8f96c1d3aa74bdd6b8e4b_john_gannon-02f76ff8.png?auto=compress,format"},"_meta":{"uid":"john_gannon"}},"blog_header_image":{"dimensions":{"width":1200,"height":600},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/72bd2f14-1db1-4e37-a5a1-8f71e4e1994b_latest-at-do-blog-img.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Latest products and features at DigitalOcean: November 2020 ","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"November was yet another exciting month at DigitalOcean, as we had deploy, our first 24 hour global virtual conference for developers. We announced several new products at the deploy conference, including Storage-Optimized Droplets, General Availability for DigitalOcean Container Registry, and the Deploy to DigitalOcean button. ","spans":[{"start":67,"end":133,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tags/deploy-2020"}},{"start":205,"end":231,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-storage-optimized-droplets-with-nvme-ssds"}},{"start":233,"end":289,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/container-registry-generally-available"}},{"start":299,"end":328,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/easily-deploy-open-source-apps-with-the-new-deploy-to-digitalocean-button-and-other-app-platform-enhancements"}}]},{"type":"paragraph","text":"Here are the highlights for this month:","spans":[]},{"type":"heading2","text":"Platform as a Service (PaaS)","spans":[{"start":0,"end":28,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Easily deploy open source apps with the new ‘Deploy to DigitalOcean’ button ","spans":[{"start":0,"end":76,"type":"strong"}]},{"type":"paragraph","text":"We are excited to introduce the ‘Deploy to DigitalOcean’ buttonwhich helps maintainers, contributors, and consumers of open source software save time with app deployment. You no longer have to worry about the mundane, time-consuming tasks of writing instructions for deploying your open source apps. Simply embed this button and associated link in the README.md files in your GitHub repositories, web pages, blogs, etc. – and let us handle the app deployment process. Check out the docsand deploy this sample app to see the button in action. ","spans":[{"start":32,"end":63,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/easily-deploy-open-source-apps-with-the-new-deploy-to-digitalocean-button-and-other-app-platform-enhancements"}},{"start":482,"end":486,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/add-deploy-do-button/"}},{"start":502,"end":512,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/sample-python"}}]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=7CqAbuCj_gg","title":"Deploy to DigitalOcean Button","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/7CqAbuCj_gg/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","version":"1.0","author_url":"https://www.youtube.com/user/DigitalOceanVideos","thumbnail_width":480,"thumbnail_height":360,"html":"<iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/7CqAbuCj_gg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>","height":270,"width":480}},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"New features for DigitalOcean App Platform","spans":[{"start":0,"end":42,"type":"strong"}]},{"type":"paragraph","text":"We have made numerous enhancements to App Platform since we launched the product last month: ","spans":[{"start":38,"end":50,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"list-item","text":"Released a jobs feature that allows you to run application code at a scheduled time","spans":[{"start":11,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/manage-jobs/"}}]},{"type":"list-item","text":"Support for root domains that make it much easier to transfer your domain to DigitalOcean","spans":[]},{"type":"list-item","text":"Support for wildcard domains so you can map any and all subdomains to your app with a single record ","spans":[]},{"type":"list-item","text":"Improved build caching for all App Platform build environments. Dependencies and other data are now cached and reused between builds to improve performance.","spans":[]},{"type":"list-item","text":"Added support for configuring a catch-all document that can be used by static sites to rewrite all requests to pages that are not found to the configured document ","spans":[]},{"type":"list-item","text":"Added support to services and static sites for configuring an ingress CORS policy","spans":[]},{"type":"list-item","text":"Added an App Platform environment variable binding with the CA certificate for managed databases in the users account","spans":[{"start":22,"end":50,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/app-platform/how-to/use-environment-variables/#using-bindable-variables-within-environment-variables"}}]},{"type":"paragraph","text":"Marketplace updates","spans":[{"start":0,"end":19,"type":"strong"}]},{"type":"paragraph","text":"We launched many preconfigured 1-Click Apps in the DigitalOcean Marketplace to help you save time and remove the hassle of provisioning servers.","spans":[]},{"type":"list-item","text":"CockroachDB - The most highly evolved cloud-native, distributed SQL database on the planet","spans":[{"start":0,"end":11,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/cockroachdb"}}]},{"type":"list-item","text":"Percona Monitoring and Management 2 - Percona Monitoring and Management (PMM) is a single pane of glass to help manage complex database environments in public, private, or on-premises environments","spans":[{"start":0,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/percona-monitoring-and-management-2"}}]},{"type":"list-item","text":"Varnish Cache - An open source reverse HTTP proxy that can speed up a website by up to 1000%, by caching (or storing) a copy of a webpage the first time a user visits","spans":[{"start":0,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/varnish-cache"}}]},{"type":"list-item","text":"Yacht - A web interface for managing docker containers with an emphasis on templating to provide easy deployments","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/yacht"}}]},{"type":"list-item","text":"OpenLiteSpeed Joomla - An accelerated and enormously scalable hosting platform for Joomla","spans":[{"start":0,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/openlitespeed-joomla"}}]},{"type":"list-item","text":"ServerWand - A magical control panel for managing websites and servers","spans":[{"start":0,"end":11,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/serverwand"}}]},{"type":"list-item","text":"OpenCPU - Deploy R based APIs and web applications at scale with ease using the 1-Click OpenCPU app","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/opencpu"}}]},{"type":"list-item","text":"Traccar - An open source GPS tracking platform that supports a wide variety of GPS trackers","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/traccar"}}]},{"type":"list-item","text":"TRASA -A Zero Trust Service Access Platform","spans":[{"start":0,"end":5,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/trasa"}}]},{"type":"heading2","text":"Infrastructure as a Service (IaaS)","spans":[{"start":0,"end":34,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Introducing Storage-Optimized Droplets with NVMe SSDs","spans":[{"start":0,"end":53,"type":"strong"}]},{"type":"paragraph","text":"We are excited to launch Storage-Optimized Droplets! These Droplets have large amounts of NVMe SSD storage and memory, along with 100% dedicated vCPU. They are ideal for workloads that require a high number of transactions with low latency like extra large NoSQL databases (e.g. MongoDB, Elasticsearch, TimeScaleDB), monitoring software e.g. Prometheus, and other data warehouses.","spans":[{"start":25,"end":51,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-storage-optimized-droplets-with-nvme-ssds"}}]},{"type":"paragraph","text":"You can now create Storage-Optimized Droplets in AMS3, FRA1, LON1, NYC1, and SFO3 using the control panel, API, or CLI. These are the Storage-Optimized Droplets you can choose from:","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/39e2aada-7d33-4d44-ac8e-662fd2c869ad_storage+optimized+1x+ssd.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":2091,"height":1127}},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Price cut for Memory-Optimized Droplets","spans":[{"start":0,"end":39,"type":"strong"}]},{"type":"paragraph","text":"Just over a year ago, we introduced Memory-Optimized Droplets. We recommend these VMs for use cases such as in-memory caches and real-time big data processing. With 8GB RAM for each dedicated vCPU (along with regular SSD), Memory-Optimized Droplets give you plenty of RAM to run such memory-intensive applications. We have reduced the prices of Memory-Optimized Droplets by about 11%. Existing Memory-Optimized Droplets will be charged at the lowered price from the month of November on, reflected in the December invoice.","spans":[{"start":36,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/introducing-memory-optimized-droplets/"}},{"start":323,"end":383,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/pricing/#memory-optimized-droplets"}}]},{"type":"image","url":"https://images.prismic.io/www-static/52636808-867d-40bf-bc9f-542d015f118b_memory+optimized+droplets+1x+ssd.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":2070,"height":1016}},{"type":"paragraph","text":"Ability to change the default VPC network for a region: You can now change the default VPC network for a region. A Virtual Private Cloud (VPC) is a private network interface for collections of DigitalOcean resources. VPC networks provide a more secure connection between resources because the network is inaccessible from the public internet and other VPC networks. With this update, when you change the default VPC network for a region, the new default network will be automatically selected during applicable resource set ups unless otherwise specified.","spans":[{"start":0,"end":54,"type":"strong"},{"start":68,"end":111,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/vpc/how-to/set-default-vpc/"}}]},{"type":"paragraph","text":"Base images for FreeBSD 12.2 UFS and ZFS: FreeBSD 12.2 UFS and ZFS base images are now available in the control panel and via the API. The image slug for the UFS FreeBSD image freebsd-12-x64 has been replaced with freebsd-12-x64-ufs. We will support 12.1 for three months after the release date of 12.2, which is currently scheduled for January 31, 2021.","spans":[{"start":0,"end":42,"type":"strong"},{"start":42,"end":54,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.freebsd.org/releases/12.2R/announce.html"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Cloud native","spans":[{"start":0,"end":12,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"DigitalOcean Container Registry is now in General Availability","spans":[{"start":0,"end":62,"type":"strong"}]},{"type":"paragraph","text":"We’re pleased to share that DigitalOcean Container Registry is now Generally Available. DigitalOcean Container Registry makes it easy to securely store and manage private container images, especially for use with DigitalOcean Kubernetes. Highlights of the release include:","spans":[{"start":28,"end":86,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/container-registry-generally-available"}},{"start":213,"end":236,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"list-item","text":"Three subscription plans that offer different allowances for repositories, storage, and bandwidth","spans":[{"start":6,"end":24,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/container-registry/#plans-and-pricing"}}]},{"type":"list-item","text":"1-click method to configure DigitalOcean Kubernetes Cluster to use the registry","spans":[{"start":18,"end":79,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/container-registry/how-to/use-registry-docker-kubernetes/#add-secret-control-panel"}}]},{"type":"list-item","text":"Garbage collection using the command line or the API","spans":[{"start":0,"end":18,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/container-registry/how-to/clean-up-container-registry/"}}]},{"type":"list-item","text":"Ability to see the current storage usage in the control panel","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/8cc7a19a-8ec8-40d8-94e1-4ade234864bc_digitalocean+container+registry.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1254,"height":986}},{"type":"paragraph","text":"Firewalls for Kubernetes clusters: On Kubernetes 1.19 and later we now provision two fully-managed firewalls for each new Kubernetes cluster. One firewall manages the connection between worker nodes and master nodes, and the other manages connections between worker nodes and the public internet.","spans":[{"start":0,"end":33,"type":"strong"},{"start":81,"end":140,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/kubernetes/resources/managed/#worker-node-firewalls"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Developer experience","spans":[{"start":0,"end":20,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Doctl updates: We have released four new versions for doctl, the official DigitalOcean CLI:","spans":[{"start":0,"end":13,"type":"strong"},{"start":54,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/"}}]},{"type":"list-item","text":"v1.49.0 - This release includes the ability to update the default VPC for a region, the ability to set an expiration time when downloading kubeconfig files, and more.","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.49.0"}}]},{"type":"list-item","text":"v1.50.0 -  This release includes new doctl apps sub-commands to retrieve information about App Platform pricing plan tiers, instance sizes, and regions. The doctl registry sub-command now supports managing garbage collection for container registries.","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.50.0"}}]},{"type":"list-item","text":"v1.51.0 -  This release adds support for managing DigitalOcean Container Registry subscriptions.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.51.0"}}]},{"type":"list-item","text":"v1.52.0 -  This release adds a --force-rebuild flag to doctl apps create-deployment.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/releases/tag/v1.52.0"}}]},{"type":"paragraph","text":"DigitalOcean Terraform Provider updates: We have released the following versions of DigitalOcean Terraform Provider:","spans":[{"start":0,"end":39,"type":"strong"}]},{"type":"list-item","text":"v2.2.0 -  This release adds a new digitalocean_ssh_keys data source and a digitalocean_custom_image resource.","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/terraform-provider-digitalocean/releases/tag/v2.2.0"}}]},{"type":"list-item","text":"v2.1.0 - DigitalOcean Container Registry is now in general availability and requires a subscription plan. As a result, the digitalocean_container_registry resource now requires setting a subscription_tier_slug which is supported with this release.","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/terraform-provider-digitalocean/releases/tag/v2.1.0"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"You can check out the release notes to get up to date information about product updates, and read about updates from the previous month here. ","spans":[{"start":22,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/release-notes/"}},{"start":104,"end":140,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/blog/latest-products-and-features-at-digitalocean-october-2020"}}]},{"type":"paragraph","text":"We hope you’ll give the new products and updates a try. If you have an idea for improving our products or want to vote on other user ideas so they get prioritized, please submit your feedback. And if you have any questions, please feel free to ask them here. ","spans":[{"start":171,"end":191,"type":"hyperlink","data":{"link_type":"Web","url":"https://ideas.digitalocean.com/"}},{"start":244,"end":257,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}}]},{"type":"paragraph","text":"Until next month, ","spans":[]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"John Gannon,","spans":[]},{"type":"paragraph","text":"Principal Product Manager","spans":[]}],"blog_post_date":"2020-11-23","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"latest-products-and-features-at-digitalocean-november-2020"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Hollie Haggans","author_image":{"dimensions":{"width":400,"height":400},"alt":"Hollie Haggans","copyright":null,"url":"https://images.prismic.io/www-static/7793109e3fed5f875dc50b8866c8e631bd51d5b5_0bfbced-1.jpg?auto=compress,format"},"_meta":{"uid":"hollie_haggans"}},"blog_header_image":{"dimensions":{"width":1537,"height":769},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/10edf3c3-a784-40e4-a038-c93626f433be_Blog+image.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"The Ultimate Hacktoberfest 2020 Recap ","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Seven years ago, DigitalOcean created Hacktoberfest to rally our global community toward learning and participating in the open source ecosystem. Alongside the development of our own open source tools and the sponsorship and contributions to other tools, Hacktoberfest became a hallmark initiative every October to invest in the thriving open source community. ","spans":[]},{"type":"paragraph","text":"Hacktoberfest 2020 wouldn’t have been possible without our amazing partners. First, a huge thank you goes to Intel and DEV for their awesome support. We also want to thank our other partners – Vonage, Circle CI, JetBrains, and GitHub – for all of the amazing work they did. And last but certainly not least, we’d like to thank all of the community partners who chipped in so meaningfully.","spans":[{"start":109,"end":115,"type":"strong"},{"start":109,"end":114,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/intel.pdf","target":"_blank"}},{"start":119,"end":122,"type":"strong"},{"start":119,"end":122,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/forem/forem","target":"_blank"}},{"start":193,"end":199,"type":"strong"},{"start":193,"end":199,"type":"hyperlink","data":{"link_type":"Web","url":"https://nexmo.dev/digitalocean","target":"_blank"}},{"start":201,"end":210,"type":"strong"},{"start":201,"end":210,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.circleci.com/","target":"_blank"}},{"start":212,"end":221,"type":"strong"},{"start":212,"end":221,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.jetbrains.com/lp/hacktoberfest-2020/","target":"_blank"}},{"start":227,"end":233,"type":"strong"},{"start":227,"end":233,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/","target":"_blank"}}]},{"type":"image","url":"https://images.prismic.io/www-static/41fdc9ae-371e-4925-a2b3-ccb1c7f420aa_HF+Twitter+Social+Sponsor+post.jpg?auto=compress,format","alt":"Hacktoberfest Community Partners","copyright":null,"dimensions":{"width":1024,"height":512}},{"type":"heading2","text":"Stories from Hacktoberfest","spans":[{"start":0,"end":26,"type":"strong"}]},{"type":"paragraph","text":"At the end of the day, Hacktoberfest is simply a series of human experiences that can make a positive impact. Each person who participates in the program has a unique story to tell about where they came from and where they went as a result of Hacktoberfest. Here are just a few of the stories we’ve heard following Hacktoberfest 2020. ","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/c2745676-cdea-4b15-b645-0175528e1508_Screen+Shot+2020-11-23+at+10.28.20+AM.png?auto=compress,format&rect=47,0,370,260&w=370&h=260","alt":"Lois Codes","copyright":null,"dimensions":{"width":370,"height":260},"linkTo":{"link_type":"Web","url":"https://www.youtube.com/watch?v=jQbHeB9RG8k&feature=youtu.be","target":"_blank"}},{"type":"paragraph","text":"Lois Codes joined Hacktoberfest last year and shares a few learnings for developers that she’s personally benefited from when contributing to open source.","spans":[{"start":0,"end":10,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=jQbHeB9RG8k&feature=youtu.be","target":"_blank"}}]},{"type":"image","url":"https://images.prismic.io/www-static/30bebb17-cd0f-4e13-954f-2abe6c0ad0d2_Screen+Shot+2020-11-23+at+10.27.41+AM.png?auto=compress,format","alt":"Shahed Nasser","copyright":null,"dimensions":{"width":370,"height":372},"linkTo":{"link_type":"Web","url":"https://shahednasserblog.tk/how-i-learned-about-contributing-to-open-source-projects-by-creating-one/","target":"_blank"}},{"type":"paragraph","text":"Shahed Nasser went from contributing to open source to building a project and maintaining her own repository. Daunting as it was, Nasser knew that the best way to encourage more open source contributions was to create a project new beginners could learn from and grow with. ","spans":[{"start":0,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://shahednasserblog.tk/how-i-learned-about-contributing-to-open-source-projects-by-creating-one/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/271c542a-4ba4-49fc-9b17-8eb6b8a18ecd_Screen+Shot+2020-11-23+at+10.27.47+AM.png?auto=compress,format&rect=0,38,324,266&w=370&h=304","alt":"Kaylee Llewellyn","copyright":null,"dimensions":{"width":370,"height":304},"linkTo":{"link_type":"Web","url":"https://www.instagram.com/p/CGnLKRogeoJ/?utm_source=ig_web_copy_link","target":"_blank"}},{"type":"paragraph","text":"Kaylee Llewellyn dipped her toes into Hacktoberfest for the first time this year and had an awesome experience that boosted her confidence and skill set. ","spans":[{"start":0,"end":16,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.instagram.com/p/CGnLKRogeoJ/?utm_source=ig_web_copy_link","target":"_blank"}}]},{"type":"image","url":"https://images.prismic.io/www-static/980d2410-31b6-4c8e-bc70-46b89d248fe1_Screen+Shot+2020-11-23+at+10.27.53+AM.png?auto=compress,format&rect=11,0,370,302&w=370&h=302","alt":"Matt. S","copyright":null,"dimensions":{"width":370,"height":302},"linkTo":{"link_type":"Web","url":"https://www.jackofalladmins.com/dev%20dungeon/hacktoberfest-findmebeer/","target":"_blank"}},{"type":"paragraph","text":"Matt S, a two-time Hacktoberfest participant, open-sourced a passion project that he built from scratch. Wanting to get a feel for the maintainer role, he was blown away by the number of contributions received this year. ","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.jackofalladmins.com/dev%20dungeon/hacktoberfest-findmebeer/","target":"_blank"}}]},{"type":"paragraph","text":"We are deeply inspired by all of your stories, and with your permission, we would like to share them more broadly. If you’re interested in sharing your story, please submit it in the Hacktoberfest stories form.","spans":[{"start":182,"end":209,"type":"hyperlink","data":{"link_type":"Web","url":"https://sammydigitalocean.typeform.com/to/aomhrmEk"}},{"start":183,"end":209,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Hacktoberfest by the numbers","spans":[{"start":0,"end":28,"type":"strong"}]},{"type":"paragraph","text":"When we combine all of the stories from Hacktoberfest, we get some impressive numbers that showcase the full experience: You all came together at this challenging time and made such a positive impact. It’s incredible to see how many people from around the globe take part in this celebration. And we’re excited to share the data with you. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading3","text":"Environmental stats","spans":[{"start":0,"end":19,"type":"strong"}]},{"type":"paragraph","text":"2020 was our first year making a monetary investment in lowering the climate impact of the Hacktoberfest program. As of this moment, 3% of participants have opted into the ‘Pick trees, not tees” option and 400 people have planted their own trees in the Hacktoberfest Forest. So far, we’ve donated $3,728 to the effort and have also offset 500 tons of carbon from shipping tees by planting 5000 trees. Read more about Hacktoberfest's worldwide impact on the Kotis blog, our awesome swag partner. ","spans":[{"start":133,"end":136,"type":"strong"},{"start":206,"end":216,"type":"strong"},{"start":253,"end":273,"type":"hyperlink","data":{"link_type":"Web","url":"https://tree-nation.com/profile/digitalocean"}},{"start":297,"end":303,"type":"strong"},{"start":339,"end":348,"type":"strong"},{"start":389,"end":399,"type":"strong"},{"start":457,"end":467,"type":"hyperlink","data":{"link_type":"Web","url":"https://go.kotisdesign.com/portfolio/digital-ocean-hacktoberfest/","target":"_blank"}}]},{"type":"image","url":"https://images.prismic.io/www-static/1882cea0-6dff-4736-bdb7-3b5bc1b85670_Carbon+Offsets.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1800,"height":1447}},{"type":"heading3","text":"Contributions stats","spans":[{"start":0,"end":19,"type":"strong"}]},{"type":"paragraph","text":" Many varying repositories participated, representing a multitude of programming languages, sizes, and levels of engagement. When we looked at the breakdown by language, here is what we saw.","spans":[{"start":0,"end":1,"type":"strong"}]},{"type":"image","url":"https://prismic-io.s3.amazonaws.com/www-static/143f0f91-d08d-4e11-8d72-ab379d46f85f_Repos_+Top+10+languages.png","alt":null,"copyright":null,"dimensions":{"width":790,"height":640}},{"type":"paragraph","text":"When it came to the engagement, within the repositories that participated in Hacktoberfest: ","spans":[]},{"type":"list-item","text":"621,104 pull requests were made","spans":[{"start":0,"end":8,"type":"strong"}]},{"type":"list-item","text":"166,057 pull requests were merged","spans":[{"start":0,"end":8,"type":"strong"}]},{"type":"list-item","text":"1,043 pull requests were approved","spans":[{"start":0,"end":5,"type":"strong"}]},{"type":"list-item","text":"102,231 pull requests were labeled hacktoberfest-accepted ","spans":[{"start":0,"end":8,"type":"strong"},{"start":21,"end":22,"type":"strong"}]},{"type":"paragraph","text":"All of these conditions counted toward completing Hacktoberfest. There were also 114,944 pull requests that qualified before the opt-in rules went live. In addition, there were 34,595 pull requests not accepted by a maintainer and 9,598 labeled as spam or invalid, alongside 172,599 pull requests made to repositories that decided not to participate in Hacktoberfest and 17,260 submitted to repositories that we excluded as we and the community felt they did not follow the values of Hacktoberfest.","spans":[{"start":81,"end":88,"type":"strong"},{"start":177,"end":183,"type":"strong"},{"start":198,"end":202,"type":"em"},{"start":231,"end":236,"type":"strong"},{"start":275,"end":282,"type":"strong"},{"start":371,"end":377,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/305698af-4187-4e29-8899-6ae1db5bf5c5_Eligigle+PR+Pie+Chart.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":790,"height":803}},{"type":"heading3","text":"Participant stats","spans":[{"start":0,"end":17,"type":"strong"}]},{"type":"paragraph","text":"The numbers are in, and this Hacktoberfest was the biggest one yet. In total, 169,886 people signed up to participate and 66,798 earned a chance to pick a tree or tee. Based on the location field we added this year, we are now able to see that an estimated 140 total countries were represented. Participants were also very socially active this year, mentioning #hacktoberfest 115k times and reaching 272 million people. Here is a breakdown of the top countries, excluding the U.S. and India.","spans":[{"start":78,"end":85,"type":"strong"},{"start":122,"end":128,"type":"strong"},{"start":257,"end":260,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/3dde3839-03a3-46ea-acae-016b574fbb83_Repos_+Top+10+languages-1.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":790,"height":685}},{"type":"heading3","text":"Event stats","spans":[{"start":0,"end":11,"type":"strong"}]},{"type":"paragraph","text":"Every event this year was 100% virtual, and the event kit became the one-stop-shop for all your virtual event needs. We also leveraged Major League Hacking’s platform to unify the event experiences and make it seamless to get folks to your event. There were 1,521 event organizers in total who signed up and organized 720 events in 76 countries. However, participants represented over 121 countries in the events organized. Here were the top countries with events. ","spans":[{"start":258,"end":263,"type":"strong"},{"start":318,"end":321,"type":"strong"},{"start":332,"end":335,"type":"strong"},{"start":380,"end":389,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/a452a8d8-928d-4211-9bf6-48b22262c2b4_Events_+Top+10+Countries.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":790,"height":651}},{"type":"paragraph","text":"From an attendance perspective, we saw 21,826 people sign up to attend an event. To facilitate online connections, we opened up a Hacktoberfest Discord server, where 20,000 members joined, along with active Hacktoberfest partners. ","spans":[{"start":39,"end":45,"type":"strong"}]},{"type":"paragraph","text":"In October, DigitalOcean also hosted a series of six open source livestreams, generating over 73,000 views. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Learning and growing together","spans":[{"start":0,"end":29,"type":"strong"},{"start":21,"end":29,"type":"em"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"From the very first day of Hacktoberfest, we knew that 2020 was not going to be an ordinary celebration. It was a year of many firsts, with the most notable difference being that projects had to opt-in in order to participate in Hacktoberfest. It was encouraging to see the total number of projects on GitHub with the ‘hacktoberfest’ topic go from around 2,000 on October 3 to around 63,000 on October 31. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Over the seven years of Hacktoberfest, the program has evolved with small but mighty tweaks that have significantly improved the experience. However, we learned that we were still not addressing the apex of critical mass and scale for Hacktoberfest participation with maintainers. That changed this year because the quantity of poor-quality contributions between September 30 and October 3 surpassed anything we (or even GitHub) had seen before. We knew that in order to have a positive month-long engagement that was meaningful and in the spirit of Hacktobefest’s original goal, we had to act quickly to make significant changes to the program and process. We had no other choice but to make sizable changes at that moment, and so we did. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"We looked to take in all the key maintainer perspectives after significant deliberation from the team and partner consultation, after which we made the program opt-in only, requiring that pull requests be either merged or labeled ‘accepted’ in order to qualify. Deepening our commitment to listening to the community and maintainer partnership in the Hacktoberfest initiative, we also held 20 roundtable sessions with maintainers from all over the world. More than 65% of the maintainers who signed up attended and we had powerful conversations about the clear gaps the program had not accounted for, especially as it pertains to the maintainer experience. We’d like to express our sincere gratitude to all of you who attended. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"Where DO we go from here?  ","spans":[{"start":0,"end":27,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"During a year when there has been so much change, even within Hacktoberfest, we are hopeful that next year will bring more quality connections and contributions to the open source community. That’s why we’re going to do our part to critically examine the program and make the decisions that optimize for both maintainer and contributor experience. Our commitment is to continually improve the experience for the members of this global community by always listening to our supporters and our critics for the betterment of the experience we share.","spans":[{"start":483,"end":486,"type":"em"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Once again, congratulations on another successful year, adding to your Hacktoberfest tee collection, improving your open source knowledge, and giving back to the community (and the planet) with a tree donation. We hope you’ll share your experience and inspire others on social media by using #hacktoberfest and tagging @DigitalOcean. ","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading2","text":"When you’ll receive your swag","spans":[{"start":0,"end":29,"type":"strong"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"If you have selected a tee as your Hacktoberfest reward, you should expect an email confirmation regarding your shipment over the coming weeks. Once your swag has shipped, you’ll receive tracking information. Please be patient; delivery may take between 8-12 weeks.","spans":[]},{"type":"paragraph","text":"Continue contributing to the open source community by taking our latest Currents survey. ","spans":[{"start":0,"end":89,"type":"strong"},{"start":72,"end":87,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.getfeedback.com/r/MOb9d8lS"}}]},{"type":"paragraph","text":"Lastly, we just released our latest Currents survey, which focuses on the top trends the open source has faced within the last year. This has been a unique time for all of us and we’re curious how it has affected open source participation, open source technologies, and the global open source communities.","spans":[{"start":29,"end":51,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.getfeedback.com/r/MOb9d8lS"}}]},{"type":"paragraph","text":"After launching Hub for Good, we were given a unique lens into how the open source community is using and contributing to open source software in light of recent events. To say we’ve been inspired by this is an understatement. But we want to hear our communities’ perspectives. If you have a few minutes and would like to share your insights for our upcoming Currents research report, we’d love to hear from you. As a thank you for your time, you can opt-in after taking the survey to receive a limited-edition open source \"Sammy Shark\" sticker or plant a tree in our DigitalOcean Forest. ","spans":[{"start":16,"end":28,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/pages/hub-for-good"}},{"start":568,"end":587,"type":"hyperlink","data":{"link_type":"Web","url":"https://tree-nation.com/profile/digitalocean"}}]}],"blog_post_date":"2020-11-23","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"hacktoberfest-recap2020"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Fernando Pimenta","author_image":{"dimensions":{"width":128,"height":128},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/7686a157-8179-4b6c-903e-b94ed5d4f6f1_3ec177b47883507aea505b1201bf9d8a.jpeg?auto=compress,format"},"_meta":{"uid":"fernando-pimenta"}},"blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/00bace91-76d2-4a24-99df-cf31668c1701_DODX-1271+deploy-blog-banner.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"deploy — open hearts for the community","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"This post was written by long-time DigitalOcean customer and community member Fernando Pimenta from Belo Horizonte, Brazil. In addition to being a developer, meetup organizer, educator, and translator, Fernando is a DigitalOcean Navigator – a community member that contributes content, code, and community engagement to help others build and grow. Fernando shares his experiences with and perspectives of DigitalOcean’s first deploy conference, which took place November 10-11. We encourage you to visit DigitalOcean’s Navigators Program to learn more about becoming a Navigator yourself. ","spans":[{"start":0,"end":589,"type":"em"},{"start":78,"end":95,"type":"strong"},{"start":426,"end":443,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy"}},{"start":504,"end":537,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/navigators"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"When I first discovered DigitalOcean six years ago, it was love at first sight. The simplicity, the quality of the service, and their love for their customers have impressed me since. As I got to know people at the company, I felt such good energy that I said to myself: I like these folks and this is where I would like to be.","spans":[{"start":271,"end":326,"type":"em"}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"The deploy conference managed to gather all this good energy into a virtual event. Yancey Spruill opened the event in such a simple and relaxed way that it seemed like a conversation between friends. He spoke about DO's values, such as simplicity, openness, inclusion, and the responsibility that the company has for its customers' businesses. He also spoke about their Hub for Good – a genuine aid initiative, not only for one community, but for all communities in the world. Here in Brazil, some friends and I managed to help several small companies with digital services during the pandemic, using credits from the program. Likewise, much more comprehensive projects, like coronastatus.no, became possible through the efforts of communities and free software with the participation of people from hundreds of countries. Sensational!","spans":[{"start":4,"end":21,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy-communitytalks"}},{"start":83,"end":114,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/deploy-2020-keynote"}},{"start":370,"end":382,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/hubforgood"}},{"start":447,"end":450,"type":"em"},{"start":676,"end":691,"type":"hyperlink","data":{"link_type":"Web","url":"https://coronastatus.no/"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"How cool it was to watch people performing from their homes – just being human. How cool it was to see Apurva Joshi presenting the new products as if he were telling us what surprise his class was preparing for us all. He spoke with joy about how fair and fixed prices help small businesses save and reinvest in the growth of their businesses.","spans":[{"start":99,"end":143,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/doing-this-cloud-thing-right-a-lap-around-digitalocean-products"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"It was fascinating to learn about the journey of a Droplet from user interface to bare metal from Neal Shrader. It is an engineering accomplishment that gives me pleasure to know. It was very good to understand what happens behind the beautiful blue screens, carefully designed by DO artists.","spans":[{"start":22,"end":110,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/how-a-droplet-is-made-the-journey-from-ui-to-bare-metal"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"I fell in love with Lyn Muldrow's presentation, \"Creating Inclusive Learning Experiences.\" It has everything to do with what I think and admire, and it has everything to do with what the world needs: more inclusion, more diversity, more kindness, more care. It was awesome!","spans":[{"start":20,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/creating-inclusive-learning-experiences"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"And what about the yoga sessions that took place in parallel with the main stage? I love yoga and meditation! I was able to learn more stretching and relaxation exercises that will help me take care of my mind and body, improving my life. It could only come from the DO – people first.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"The Discord chat was a separate show. I confess that I was a little lost at first, but then I was interacting and becoming more comfortable. I was able to talk to people from all over the world and also ask and exchange ideas directly with the speakers. Oh, yes, and I saw many super creative work-from-home setups from people from all over the planet.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"I feel very happy to be part of the DigitalOcean community.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"deploy showed that it was planned with great care and affection, thinking about the people in that community. It was great to know that more and more people believe that it is possible to create, include, respect and grow. Thanks, deploy!!","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Portuguese Version","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"heading1","text":"Deploy – Corações abertos para a comunidade","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Quando eu conheci a DigitalOcean há seis anos, foi amor à primeira vista. A simplicidade, a qualidade do serviço, e o carinho com o cliente me impressionaram desde então. À medida em que eu ia conhecendo pessoas na empresa, eu sentia uma energia tão boa que disse a mim mesmo: eu gosto dessa turma e é por aqui que eu gosto de estar.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"O deploy conseguiu reunir em um evento virtual toda essa energia boa. Yancey Spruill abriu o evento de uma maneira tão simples e tranquila que parecia uma conversa entre amigos. Ele falou sobre os valores da DO, como a simplicidade, o acolhimento, a inclusão e a responsabilidade que a empresa tem com os negócios dos clientes. Falou também sobre o “Hub for Good”, uma iniciativa de ajuda genuína, não apenas para uma comunidade, mas para todas as comunidades do mundo. Aqui no Brasil, eu e alguns amigos conseguimos ajudar várias pequenas empresas com serviços digitais durante a pandemia, usando créditos do programa. Da mesma forma, projetos muito mais abrangentes, como o coronastatus.no tornaram-se possíveis por meio do esforço das comunidades e do “software livre”, com a participação de pessoas de centenas de países. Sensacional!","spans":[{"start":2,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy-communitytalks"}},{"start":70,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/deploy-2020-keynote"}},{"start":350,"end":362,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/hubforgood"}},{"start":676,"end":691,"type":"hyperlink","data":{"link_type":"Web","url":"https://coronastatus.no/"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Como foi legal assistir às pessoas se apresentando a partir de suas casas – sendo apenas humanos. Como foi legal ver o Apurva Joshi apresentando os novos produtos como se estivesse contando o que a sua turma estava preparando de interessante para todos nós. Ele falou com alegria sobre como o preço justo e fixo ajuda as pequenas empresas a economizar, e com a economia investir em seus negócios para crescer.","spans":[{"start":119,"end":162,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/doing-this-cloud-thing-right-a-lap-around-digitalocean-products"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Foi fascinante conhecer a jornada da interface de usuário ao Bare Metal com Neal Shrader. É uma engenharia que dá gosto de conhecer. Foi muito bom entender o que acontece por trás das belas telas azuis, cuidadosamente desenhadas pelos artistas da DO.","spans":[{"start":15,"end":88,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/how-a-droplet-is-made-the-journey-from-ui-to-bare-metal"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Eu me apaixonei pela apresentação da Lyn Muldrow, \"Criando experiências de aprendizado inclusivas\". Tem tudo a ver com o que eu penso e admiro. E tem tudo a ver com o que o mundo precisa: mais inclusão, mais diversidade, mais gentileza, mais cuidado. Foi demais!","spans":[{"start":21,"end":98,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/community/tech_talks/creating-inclusive-learning-experiences"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"E o que dizer das sessões de Yoga que rolaram paralelamente com o palco principal? Eu adoro Yoga e meditação! Pude aprender mais exercícios de alongamento e relaxamento que me ajudarão a cuidar da minha mente e do meu corpo, melhorando a minha vida. Só podia vir da DO – pessoas em primeiro lugar.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"O chat no Discord foi um show à parte. Confesso que fiquei meio perdido no início, mas depois fui interagindo e ficando mais à vontade. Pude conversar com pessoas do mundo todo e também perguntar e trocar ideias diretamente com os palestrantes. Ah sim, conheci muitos \"Work from home setups\" super criativos de pessoas de várias partes do planeta.","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Eu me sinto muito feliz por fazer parte da comunidade da DigitalOcean.      ","spans":[]},{"type":"paragraph","text":"O deploy mostrou que ele foi planejado com muito cuidado e carinho pensando nas pessoas dessa comunidade. Foi muito bom saber que mais e mais pessoas acreditam que é possível criar, incluir, respeitar e crescer. Valeu deploy!!","spans":[]}],"blog_post_date":"2020-11-18","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"deploy-conference-recap"}}}]}}}