{"componentChunkName":"component---src-templates-tag-jsx","path":"/blog/tag/community/5/","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":48,"numTagPages":10,"currentPage":5,"uid":"community","data":[{"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":784,"height":418},"alt":"Woman interviewing Man illustration","copyright":null,"url":"https://images.prismic.io/www-static/e2998af44cd18a7ad05e9dae5e714793557b3ddb_hatchpodcast_socialillo_blog_pat.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Marley Spoon: A Look into Their Stack and Team Structure","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Over the past eleven months, more than 1,600 startups from around the world have built their infrastructure on DigitalOcean through Hatch, our global incubator program designed to help startups as they scale. Launched in 2016, the goal of the program is to help support the next generation of startups get their products off the ground.","spans":[{"start":132,"end":137,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}}]},{"type":"paragraph","text":"Marley Spoon, a subscription meal kit company based in Berlin and Hatch startup, sees infrastructure as an integral part of every engineer’s workflow. “We are trying to build a team where people don’t feel responsible just for a small bit, but we want to build a team where people feel responsible for the whole architecture,” says Stefano Zanella, Head of Software Engineering at Marley Spoon. “In order to do this, we believe that people need to know how the system works.”","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"https://marleyspoon.com"}}]},{"type":"paragraph","text":"In this interview, Zanella gives us a glimpse into Marley Spoon’s unique engineering team structure, and the technologies they use to power both their customer-facing platform and the internal-facing production and distribution platform. The following has been transcribed from our Deep End podcast, and adapted for this blog post.","spans":[{"start":282,"end":290,"type":"hyperlink","data":{"link_type":"Web","url":"https://soundcloud.com/digitaloceanpodcast/marley-spoon-on-building-a-great-engineering-org-for-scale"}}]},{"type":"paragraph","text":"DigitalOcean: How do you model your engineering teams?","spans":[{"start":0,"end":54,"type":"strong"}]},{"type":"paragraph","text":"Stefano Zanella: Our teams are shaped around user flows to some extent. We have currently four teams: three teams are product teams—they are related to the product itself—and one team actually takes care of the platform for the infrastructure.","spans":[{"start":0,"end":15,"type":"strong"}]},{"type":"paragraph","text":"The [first] three teams, we shape them around the user flow. So, we have a team that takes care of the new customers. We call it the acquisition team because they focus mostly on marketing, but they also provide data insights, manage the customer experience for new customers, shorten the subscription flow, and so on.","spans":[]},{"type":"paragraph","text":"Then we have a team that focuses on the recurring customers. It’s the team that takes care of the functionality like adding to an order, posing new subscriptions, keeping a delivery, changing your address, changing the time that you want your box at home, etc.","spans":[]},{"type":"paragraph","text":"And then the third team actually takes care of what we call the “back office” in the sense that we do it in our own production centers; we have warehouses all across the world. We have a tool that tracks how many orders need to be done, when, where, and [by] which warehouse. We have them organize the batches because we work a lot with shippers and we try to be just in time, because of course the food is fresh and we want to keep it just like that. So this team takes care of all the production-related issues.","spans":[]},{"type":"paragraph","text":"And how do you organize these teams? Do you have teams with maybe product managers, designers, engineers in the same group? Or [do] you isolate teams depending on their skill set or area of expertise?","spans":[{"start":0,"end":200,"type":"strong"}]},{"type":"paragraph","text":"The interesting thing about Marley Spoon is that the situation is always changing. We are very proud of the fact that we believe in owning the process and changing the process and structure as we see fit.","spans":[]},{"type":"paragraph","text":"When we started we had an engineering team and a product team. Then, at some point, we realized that the communication structure wasn’t working well enough for us to be productive and effective enough. So we actually put the product managers inside the [engineering] teams. Then, we [also] figured out that the relationship with the designers wasn’t good enough, so we put the designers inside the team as well.","spans":[]},{"type":"paragraph","text":"For a certain period of time, we had teams [that] were functional from my point of view, and now since we are growing a lot, the team is growing, and we have different needs. We are [now] focusing on product managers aligning with the rest of the business, rather than with engineers because the relationship with engineers is really good right now. We moved the product team outside of the teams again, so they are their own team because we want them to also work as a team, not just be disconnected. We assign specific product managers to specific departments and then internally, the team shuffles the work to the engineering team. But it’s a situation that can change every time, because it really depends on where we see the problems.","spans":[]},{"type":"paragraph","text":"Going down the technology side of things, what’s your stack and architecture right now? Or maybe you want to talk about how Marley Spoon evolved?","spans":[{"start":0,"end":145,"type":"strong"}]},{"type":"paragraph","text":"Well, actually let me answer the last part of your question, because I think it’s really interesting speaking about the engineers. So, we do believe that the main role of an engineer is not writing code, but it's actually running the system.","spans":[]},{"type":"paragraph","text":"And in order to do this, we believe that people need to know how the system works. They need to have a feeling of how the whole system is working. From that point of view, we don’t see all of the teams related to technology, for example. We use a workflow based on the Kanban workflow. Since it’s based on Kanban, every time somebody runs out of work, they are free to pick new work from the backlog. And the product managers manage the backlog, which means that whoever is free should pick stuff from the top because that’s the most important thing to do.","spans":[]},{"type":"paragraph","text":"We don’t have this clear distinction between backend and frontend developers. We do have people that are more skilled at frontend or backend, but we try to broaden their scope of action all the time. So, from that point of view, we try to help each other a lot because we believe that’s the best way to grow.","spans":[]},{"type":"paragraph","text":"Getting back to the stack question, what are the technologies you have in your architecture?","spans":[{"start":0,"end":92,"type":"strong"}]},{"type":"paragraph","text":"So, mainly we are a Ruby-based company. We use Rails mainly for our web apps. We have a couple of projects that are pure Ruby because they are projects for background processing. We started them in Ruby, but we are considering switching to a different technology.","spans":[]},{"type":"paragraph","text":"We are currently in the process of upgrading the stack because we were using Backbone as a library and Coffeescript as a language because that was what was coming out with default Rails 4. Now we are slowly moving toward React because we see a lot of traction outside and inside the team as well. So, we would like to give it a try.","spans":[]},{"type":"paragraph","text":"We hope that will also help us shape and improve our relationship with the designers, for example. Then we have a small a command line tool, for our Kanban board because we wrote it ourselves. We wrote our own Kanban board because we like to have a tool that can evolve in the process. And we wrote a very little command line tool so that you can create tickets and move tickets around from the command line.","spans":[]},{"type":"paragraph","text":"Tune into the full interview on our podcast, or learn more about our Hatch program today.","spans":[{"start":0,"end":28,"type":"hyperlink","data":{"link_type":"Web","url":"https://soundcloud.com/digitaloceanpodcast/marley-spoon-on-building-a-great-engineering-org-for-scale"}},{"start":48,"end":82,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}}]},{"type":"paragraph","text":"Hollie Haggans heads up Global Partnerships for DigitalOcean’s Hatch program. She is passionate about startups and cold brew coffee. Get in touch with questions at hatch@digitalocean.com.","spans":[{"start":0,"end":187,"type":"em"}]}],"blog_post_date":"2017-07-31","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"marley-spoon"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Ben Uretsky","author_image":{"dimensions":{"width":197,"height":197},"alt":"Ben Uretsky","copyright":null,"url":"https://images.prismic.io/www-static/9c33dc1465bf14e543a18d402452f77970d3b4c1_aaeaaqaaaaaaaa3gaaaajdbmyjgxnzvjlti2zwutnddlzi04mgyxltlhyjfhotnlytgzna.jpg?auto=compress,format"},"_meta":{"uid":"ben_uretsky"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Sea creatures partying with a thank you and 1 million users banner illustration","copyright":null,"url":"https://images.prismic.io/www-static/97840b8ecbc9c64318a899b96a655247d04e4550_1million_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Riding the Jet Stream to 1 Million Users","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Today, we’re excited to share a recent milestone with you: DO now supports 1 million users around the world. We’ve grown with our users, and have worked hard to give them the products they need to run their services without compromising the user experience they’ve come to love. We’re grateful to our users and community, and to the people that have helped us grow and learn along the way.","spans":[]},{"type":"paragraph","text":"In 2012, DigitalOcean had a modest start. Our staging environment was around 4 or 5 servers, and we had a handful of engineers running the platform. We had two datacenter regions, 200 Droplets deployed, and a vision for what cloud computing could become. But most importantly, we had the support of a community of developers that helped us realize that vision.","spans":[]},{"type":"heading2","text":"A Maiden Voyage","spans":[]},{"type":"paragraph","text":"Holding user groups in our early stages really helped us answer key questions about what aspects of the user experience could be improved. We launched our first datacenter, NYC1, and opened up our first international datacenter, AMS1, in January 2012.","spans":[{"start":0,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/blog/a-lean-start-for-digital-ocean/"}}]},{"type":"paragraph","text":"Our users have played a huge part in helping us determine where to launch new datacenters to serve them better; in addition to NYC and Amsterdam, we now have them in San Francisco, Frankfurt, London, Singapore, Toronto, and Bangalore. Our dedicated team of network engineers, software engineers, datacenter technicians, and platform support specialists have worked tirelessly to give all of our users a great experience and access to simple cloud computing at any scale.","spans":[]},{"type":"heading2","text":"Making Waves","spans":[]},{"type":"paragraph","text":"Among our early adopters were projects and companies like JsFiddle.net, AudioBox, and GitLab, who have scaled along with us as we’ve grown. Projects like Laravel Forge also chose to host their applications on DO. We’ve also partnered with companies like GitHub (Student Developer Pack and Hacktoberfest), Docker (Docker Student Developer Kit and our Docker one-click application), CoreOS, and Mesosphere on major initiatives.","spans":[{"start":58,"end":70,"type":"strong"},{"start":72,"end":80,"type":"strong"},{"start":86,"end":92,"type":"strong"},{"start":154,"end":167,"type":"strong"},{"start":254,"end":260,"type":"strong"},{"start":305,"end":311,"type":"strong"},{"start":381,"end":387,"type":"strong"},{"start":393,"end":403,"type":"strong"}]},{"type":"paragraph","text":"Developers that helped spread the word when we first started include John Resig (jQuery), Jeff Atwood (Stack Overflow), Ryan Bates (Railscast), Xavier Noria (core Rails contributor), and Salvatore Sanfilippo (Redis).","spans":[{"start":69,"end":79,"type":"strong"},{"start":90,"end":101,"type":"strong"},{"start":120,"end":130,"type":"strong"},{"start":144,"end":156,"type":"strong"},{"start":187,"end":207,"type":"strong"}]},{"type":"paragraph","text":"Pere Hospital, co-founder of Cloudways, found DigitalOcean in 2014 while looking for an IaaS partner that could add value to his clients’ business processes. When Cloudways hit 5,000 DO compute instances they had their own internal celebration—and they’ve added thousands more since.","spans":[{"start":29,"end":38,"type":"strong"}]},{"type":"paragraph","text":"John O’Nolan, founder of Ghost, shared this anecdote: “On one of DigitalOcean's birthdays, the team sent us a couple of vinyl shark toys as a surprise and a thank you for being a customer. These sharks quickly became a mainstay of our weekly team meetings, along with the most horrific slew of puns: “Are you being ‘shark-astic’?” “That sounds a bit fishy.” etc. The jokes went so far that six months later we somehow found ourselves on a retreat in Thailand with our CTO, Hannah, coding at a table in a full-body shark costume.”","spans":[{"start":25,"end":30,"type":"strong"}]},{"type":"preformatted","text":"6 months ago @digitalocean sent us a shark toy and now the jokes have escalated so far that our CTO is literally coding in a shark suit. pic.twitter.com/6UpQuoPFrW\n— John O'Nolan @ 🇬🇧 (@JohnONolan) December 5, 2016","spans":[{"start":13,"end":26,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/digitalocean"}},{"start":137,"end":163,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/6UpQuoPFrW"}},{"start":198,"end":214,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/JohnONolan/status/805706906333388801"}}]},{"type":"paragraph","text":"Additionally, several community members embraced DO and created tools that extended our API early on. Jack Pearkes created the command line tool, Tugboat, in 2013. Ørjan Blom created Barge, a Ruby library that pre-dated our official Ruby library, droplet_kit. Lorenzo Setale created python-digitalocean, which remains the most widely used Python library on DO. And Antoine Corcy created DigitalOceanV2, a library that helps PHP applications interact with v2 of the DO API. There have also been many others that have shared feedback with us and created tools of their own. We thank all of you for being a part of this.","spans":[{"start":146,"end":153,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/petems/tugboat"}},{"start":183,"end":188,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/blom/barge"}},{"start":283,"end":302,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/koalalorenzo/python-digitalocean"}},{"start":387,"end":401,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/toin0u/DigitalOceanV2"}}]},{"type":"heading2","text":"All Hands on Deck","spans":[]},{"type":"paragraph","text":"Members of the DO community have become a part of the DO family. We’ve reached over 1,600 tutorials on our Community site, in large part due to technologists that have contributed articles through participation in our Get Paid to Write program. Marko Mudrinić, for example, has written a number of articles for the Community site, frequently engages with other users in our Q&A section, and contributes to the official DO command line tool, doctl.","spans":[{"start":245,"end":259,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/xmudrii"}}]},{"type":"paragraph","text":"We’ve been lucky to have community members go on to join the DO team, like Community Manager Kamal Nasser and Platform Support Specialist Jonathan Tittle. Jonathan was an early adopter, having migrated his company’s customers to DO back in 2012. He then became one of our most engaged Community members. Jonathan told me, “When I look over questions posted to the DigitalOcean Community, I can honestly look back and say 'I’ve been there' and recall the countless times that I ran into an issue and couldn’t find the answer on my own, much less get the help I needed from someone who knew. When the questions were stacking up one day, I dove in and did my best to help. I quickly found myself spending countless hours troubleshooting alongside a user until an issue was resolved. I was simply trying to offer a helping hand when and where I could.”","spans":[]},{"type":"heading2","text":"Over the Horizon","spans":[]},{"type":"paragraph","text":"The journey to 1 million is full of stories, people, moments, events, and companies that have crossed paths with us and have inspired us. Our users have been with us every step of the way, and we’ve tasked ourselves with meeting their growing infrastructure needs, and their goals for engaging and collaborating with us. There is so much more to come, and we’re excited to share it all with you. Thank you!","spans":[{"start":235,"end":263,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/2017-whats-shipping-next-on-digitalocean/"}},{"start":285,"end":319,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/tag/community/"}}]}],"blog_post_date":"2017-07-19","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"1-million-users"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Prabhakar (PJ) Jayakumar","author_image":null,"_meta":{"uid":"prabhakar_pj_jayakumar"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"DO India 1st Anniversary","copyright":null,"url":"https://images.prismic.io/www-static/55b8556a50a8173743e49c1b99b81a3611e52595_india1stanniversary_blog_flagedit.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Looking Back at DigitalOcean’s First Year in India","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"It’s been a year since we established DigitalOcean’s presence in India, starting with our Bangalore office and BLR1 datacenter, and it’s been nothing short of an exhilarating ride! We are excited about being able to cater to the needs of the developer community in India and its neighboring regions, and we’re humbled by the love our customers have shown.","spans":[{"start":111,"end":126,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-our-bangalore-region-blr1/"}}]},{"type":"paragraph","text":"In this blog post, we’ll share some memorable highlights from engaging with India’s growing developer community over the past 12 months.","spans":[]},{"type":"heading2","text":"Face-to-Face With India’s Developers: Conferences, Meetups, and Hackathons","spans":[]},{"type":"paragraph","text":"This past fall, we organized a “Product-a-thon” contest named Campus Shark targeted at university students to identify and recognize the best student engineers across colleges in India. The contest saw participation from student teams across colleges in more than 30 Indian cities, spanning from Silchar (Assam) in the East, Ahmedabad (Gujarat) in the West, Thiruvananthapuram (Kerala) in the South, to Jalandhar (Punjab) in the North. Student teams worked on a diverse set of projects relevant for the local community, including:","spans":[{"start":62,"end":74,"type":"hyperlink","data":{"link_type":"Web","url":"http://campusshark.incubatehub.com/"}}]},{"type":"list-item","text":"A robotic shopping cart that aimed at making a hands­-free shopping experience","spans":[]},{"type":"list-item","text":"An app that sent an SOS or helped find assistance during an emergency","spans":[]},{"type":"list-item","text":"A pedal­ powered centrifugal pump that aids irrigation in areas without electricity, and","spans":[]},{"type":"list-item","text":"A crowdfunding platform that connects non­profits with volunteers.","spans":[]},{"type":"paragraph","text":"This past fall, we ran our Hacktoberfest initiative and  partnered with IndiaStack to organize their first-ever hackathon around the Aadhaar Auth API. IndiaStack is a set of public, open APIs, and systems that allow government entities, businesses, startups, and developers to utilize a unique digital infrastructure to solve India’s pressing problems.","spans":[{"start":27,"end":40,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/open-source-at-its-hacktoberbest/"}},{"start":72,"end":82,"type":"strong"}]},{"type":"paragraph","text":"We’ve hosted two editions of our signature Tide Conference, where we’ve seen enthusiastic participation from hundreds of developers and startups, and Tide has become a platform for them to connect, network, and engage with influencers, mentors, and VCs in the tech ecosystem. Additionally, DO Meetups have expanded to chapters across six cities (Bangalore, Hyderabad, Mumbai, Pune, Delhi, and Chennai).","spans":[{"start":43,"end":58,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLseEp7p6EwibComadzJiMhr6rpmjRJVtb"}},{"start":290,"end":300,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}}]},{"type":"paragraph","text":"We’ve also added monthly webinars from industry experts such as MSV Janakiram to our ongoing programming, and continue to facilitate workshops, hackathons, and coding contests across India.","spans":[{"start":17,"end":33,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLseEp7p6EwiY7E3UUos1gETnDmtzYg2au"}},{"start":64,"end":77,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/bd3c01590844184d26e5e3deb85c646daa08eef4_indiacollage.png?auto=compress,format","alt":"India events picture collage","copyright":null,"dimensions":{"width":790,"height":746}},{"type":"heading2","text":"Becoming a Part of India’s Startup Ecosystem","spans":[]},{"type":"paragraph","text":"As part of our global incubator program Hatch, we are collaborating with more than 60 partners from the ecosystem (including top-tier accelerators like NUMA, incubators such as Nasscom 10K startups, VCs such as Accel and SAIF Partners, and government-run initiatives like the Startup India program), with hundreds of startups getting year-long free access to our infrastructure, technical training, mentorship, and priority support.","spans":[{"start":40,"end":45,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch/"}},{"start":152,"end":156,"type":"strong"},{"start":177,"end":197,"type":"strong"},{"start":211,"end":216,"type":"strong"},{"start":221,"end":234,"type":"strong"},{"start":276,"end":297,"type":"strong"}]},{"type":"paragraph","text":"We are proud to have amazing Indian companies such as NoBroker.in, Betaout, KartRocket, and HackerRank among our customers today.","spans":[{"start":54,"end":65,"type":"strong"},{"start":67,"end":74,"type":"strong"},{"start":76,"end":86,"type":"strong"},{"start":92,"end":102,"type":"strong"}]},{"type":"preformatted","text":"Akhil Gupta, co-founder and CTO of NoBroker.in, says, “NoBroker was one of the first customers of DigitalOcean in India and since Day 1 we have been amazed with the simplicity of the solution. DO has grown in last 3 years and launched some amazing products like Floating IP and Block Storage which covers what is required for a production cluster. Many times we have been stuck for implementation and DO technical blogs have come to our rescue with [their] step-by-step installation guide.”","spans":[]},{"type":"heading2","text":"What’s Next","spans":[]},{"type":"paragraph","text":"As we embark on yet another year, we will endeavor to continue empowering developers and software companies to build amazing things while our robust, affordable, and simple infrastructure does the heavy-lifting for them. To date, over 492,000 Droplets have been deployed in BLR1, and nearly one third of DO’s global Meetup presence is in India. With Block Storage to be launched in BLR1 by early Q3, and a host of new products in the 2017 roadmap, we’re focused on making it easier than ever for startups and teams of software developers from India to deploy and scale their applications.","spans":[{"start":434,"end":446,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/2017-whats-shipping-next-on-digitalocean/"}}]},{"type":"paragraph","text":"If you have participated in any of our activities or if you have suggestions on how you would like to engage with DigitalOcean, let us know in the comments below. We’re looking forward to partnering with you and supporting your needs in the year ahead!","spans":[]},{"type":"paragraph","text":"Prabhakar (PJ) Jayakumar is DigitalOcean's India Country Manager. He is responsible for running the firm’s operations in India, and his team is focused on both building out the DO community and supporting the localized needs of India’s developer and startup ecosystem.","spans":[{"start":0,"end":24,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.linkedin.com/in/prabhakarpj/"}},{"start":0,"end":268,"type":"em"}]}],"blog_post_date":"2017-06-14","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"looking-back-at-digitaloceans-first-year-in-india"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"laptop sticker","copyright":null,"url":"https://images.prismic.io/www-static/1306b2a6-e150-44ba-91ea-43474b2defd6_laptop-sticker.gif?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Open Source at Its (Hacktober)best","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"The third-annual Hacktoberfest, which wrapped up October 31, brought a community of project maintainers, seasoned contributors, and open-source beginners together to give back to many great projects.  It was a record setting year which confirmed the power of communities in general, and specifically the open source community.","spans":[{"start":17,"end":30,"type":"strong"}]},{"type":"paragraph","text":"Here's what you accomplished in a nutshell:","spans":[]},{"type":"list-item","text":"📈 92,569 total PRs were opened this Hacktoberfest, up from 49,000 last year","spans":[]},{"type":"list-item","text":"📂 29,287 total repos were contributed to","spans":[]},{"type":"list-item","text":"💝 Most popular projects included Homebrew Cask and Home Assistant","spans":[{"start":33,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://caskroom.github.io/"}},{"start":51,"end":65,"type":"hyperlink","data":{"link_type":"Web","url":"https://home-assistant.io/"}}]},{"type":"list-item","text":"👕 10,227 people completed the challenge and will receive shirts this year","spans":[]},{"type":"paragraph","text":"In this post, we'll get more into numbers and will share some stories from contributors, maintainers, and communities across the world.","spans":[]},{"type":"heading3","text":"Contributors","spans":[]},{"type":"paragraph","text":"We put the challenge out there and you stepped up to exceed it! Congratulations to both first-time open source contributors and experienced contributors who set aside time and resources to push the needle forward for thousands of open source projects.","spans":[]},{"type":"paragraph","text":"This year, we had a record number of contributors from around the world participate:","spans":[]},{"type":"list-item","text":"👨‍👩‍👧‍👦 29,616 people signed up to participate","spans":[]},{"type":"list-item","text":"🌍 Contributions came in from 114 countries","spans":[]},{"type":"paragraph","text":"Developers around the world shared their stories with us, explaining what Hacktoberfest meant to them. One contributor who completed the challenge said:","spans":[]},{"type":"preformatted","text":"I am a senior computer science student but have always been too intimidated to submit to other open github projects. Hacktoberfest gave me a reason to do that and I am really glad I did. I will for sure be submitting a lot more in the future.","spans":[]},{"type":"paragraph","text":"Aditya Dalal from Homebrew Cask went from being a Hacktoberfest contributor in 2015 to being a project maintainer in 2016:","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/adidalal"}}]},{"type":"preformatted","text":"I actually started contributing to Open Source in a meaningful way because of Hacktoberfest. Homebrew Cask was a convenient tool in my daily usage, and Hacktoberfest provided an extra incentive to contribute back. Over time, I continued contributing and ended up as a maintainer, focusing on triaging issues and making the contribution process as simple as possible (which I like to think we have succeeded at).","spans":[]},{"type":"heading3","text":"Maintainers","spans":[]},{"type":"paragraph","text":"A HUGE and very special shout out goes out to project maintainers. Many of you added \"Hacktoberfest\" labels (+15,000) to project issues and tweeted out your projects, encouraging others to join in on the fun. We know that Hacktoberfest makes things busier than usual. Thank you for setting a great example for future project maintainers—without you, Hacktoberfest wouldn't be possible!","spans":[{"start":2,"end":6,"type":"strong"}]},{"type":"paragraph","text":"Some maintainers went out of their way to make sure contributors had a great experience:","spans":[]},{"type":"preformatted","text":"Nice job @IamAdiSri scoring a #hacktoberfest PR on @osquery! pic.twitter.com/C8J6DgNX9u\n— Nick Anderson (@PoppySeedPlehzr) October 21, 2016","spans":[{"start":9,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/IamAdiSri"}},{"start":30,"end":44,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/hacktoberfest?src=hash"}},{"start":51,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/osquery"}},{"start":61,"end":87,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/C8J6DgNX9u"}},{"start":123,"end":139,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/PoppySeedPlehzr/status/789532263855722496"}}]},{"type":"preformatted","text":"@IAmWillMadison, thanks for contributing to our #Golang Rest HTTP Client open source library, happy #hacktoberfest!🙌 https://t.co/HXTqnPdGbF\n— SendGrid (@SendGrid) October 21, 2016","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/IAmWillMadison"}},{"start":48,"end":55,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/Golang?src=hash"}},{"start":100,"end":114,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/hacktoberfest?src=hash"}},{"start":117,"end":140,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/HXTqnPdGbF"}},{"start":164,"end":180,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/SendGrid/status/789509892835053568"}}]},{"type":"paragraph","text":"...and others created awesome challenges:","spans":[]},{"type":"preformatted","text":"#Chocolatey is participating in @digitalocean#hacktoberfesthttps://t.co/CP3gcOQwIf - A few lucky folks will additionally get this T-Shirt! pic.twitter.com/iF0ZzWm05V\n— Rob Reynolds (@ferventcoder) October 2, 2016","spans":[{"start":0,"end":11,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/Chocolatey?src=hash"}},{"start":32,"end":45,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/digitalocean"}},{"start":45,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/hacktoberfest?src=hash"}},{"start":59,"end":82,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/CP3gcOQwIf"}},{"start":139,"end":165,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/iF0ZzWm05V"}},{"start":197,"end":212,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/ferventcoder/status/782621022176419840"}}]},{"type":"preformatted","text":"MJLM is on Hacktoberfest !  Win MJML T-shirts + stickers if your PR got accepted https://t.co/dt5eRsLljs#hacktoberfest@digitaloceanpic.twitter.com/JHUZWZ2Kid\n— mjml. (@mjmlio) October 12, 2016","spans":[{"start":81,"end":104,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/dt5eRsLljs"}},{"start":104,"end":118,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/hacktoberfest?src=hash"}},{"start":118,"end":131,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/digitalocean"}},{"start":131,"end":157,"type":"hyperlink","data":{"link_type":"Web","url":"https://t.co/JHUZWZ2Kid"}},{"start":176,"end":192,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/mjmlio/status/786205198431780865"}}]},{"type":"heading3","text":"Events","spans":[]},{"type":"paragraph","text":"This year, we wanted to highlight the collaborative aspect of open source and created a Hacktoberfest-themed Meetup Kit with tips and tools for anyone who wanted to organize a Hacktoberfest event.","spans":[{"start":88,"end":119,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.google.com/document/d/1EwrKFnL6J8w8CM0lLgmH06SguOy8RBvjhil5t4oZI-Q/edit#heading=h.4kugqow703r4"}}]},{"type":"paragraph","text":"As a result, Hacktoberfest meetups popped up all over the world. More than 30 communities held 40 events in 29 cities across 12 countries including Cameroon,Canada, Denmark, Finland, France, India, Kenya, New Zealand, Spain, Ukraine, UK, and the US (click here to see a full list of Hacktoberfest events).","spans":[{"start":256,"end":260,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.google.com/spreadsheets/d/1QIZYYJPt111XQ1R8PYGdn-riDFKaRVekdj1MJmFX2do/edit#gid=0"}}]},{"type":"paragraph","text":"Thank you to event organizers who brought your communities together through pair programming, mentorship, demos, workshops, and hack fests.","spans":[]},{"type":"paragraph","text":"If you didn't have a chance to attend a Hacktoberfest-themed event near you, we encourage you to host one anytime or suggest the idea to your favorite meetup.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/f743dbd2f0547a9d0b5f8807d5e68cc9794a5207_sigfox.png?auto=compress,format","alt":"Hacktoberfest Paris Meetup by Sigfox","copyright":null,"dimensions":{"width":1192,"height":874}},{"type":"image","url":"https://images.prismic.io/www-static/a3f578ea265b1c9f830c10fd9e9b17baaa6ebe03_fullstack.jpg?auto=compress,format","alt":"Fullstack Open Source | Hacktober Edition, Los Angeles, California, USA","copyright":null,"dimensions":{"width":2000,"height":1472}},{"type":"image","url":"https://images.prismic.io/www-static/e45c03ac7cc0a3c381ffa307c4a635ca3e5f7885_blackcodecollective.png?auto=compress,format","alt":"Hacktober Night by BlackCodeCollective, Arlington, Virginia, USA","copyright":null,"dimensions":{"width":1997,"height":978}},{"type":"image","url":"https://images.prismic.io/www-static/4763a078e5457ffe167dae903a09956547b0bb55_nitksurathkal.jpg?auto=compress,format","alt":"Hacktober Fest Meetup at NITK Surathkal, Mangalore, India","copyright":null,"dimensions":{"width":1995,"height":969}},{"type":"paragraph","text":"Clockwise, from top left:\nHacktoberfest Paris Meetup by Sigfox, Paris, France, Fullstack Open Source | Hacktober Edition, Los Angeles, California, USA, Hacktober Fest Meetup at NITK Surathkal, Mangalore, India, and Hacktober Night by BlackCodeCollective, Arlington, Virginia, USA.","spans":[{"start":0,"end":25,"type":"em"},{"start":26,"end":280,"type":"em"}]},{"type":"heading3","text":"Beyond 2016","spans":[]},{"type":"paragraph","text":"Thank you to our friends at GitHub for helping us make Hacktoberfest 2016 possible. And special thanks go out to our friends at Mozilla, Intel, and CoreOS for supporting the initiative.","spans":[]},{"type":"paragraph","text":"Tell us: What did you enjoy about Hacktoberfest this year? What can we do to make it even better next year? Let us know in the comments.","spans":[]},{"type":"paragraph","text":"Until we meet again—happy hacking!","spans":[]}],"blog_post_date":"2016-11-15","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"open-source-at-its-hacktoberbest"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Hacktoberfest 2016 illustration","copyright":null,"url":"https://images.prismic.io/www-static/6b0f94d88fd3d4736d1e1c1ecfa5411a3fcc43bc_hero-4.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Ready, Set, Hacktoberfest!","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"October is a special time for open source enthusiasts, open source beginners, and for us at DigitalOcean: It marks the start of Hacktoberfest, which enters its third year this Saturday, October 1!","spans":[{"start":128,"end":141,"type":"strong"}]},{"type":"heading3","text":"What's Hacktoberfest?","spans":[]},{"type":"paragraph","text":"Hacktoberfest—in partnership with GitHub—is a month-long celebration of open source software. Maintainers are invited to guide would-be contributors towards issues that will help move the project forward, and contributors get the opportunity to give back to both projects they like and ones they've just discovered. No contribution is too small—bug fixes and documentation updates are valid ways of participating.","spans":[]},{"type":"preformatted","text":"#Hacktoberfest 2015 swag arrived! Got 24 PRs merged in #ohmyfish#oh-my-fish! Thanks @digitaloceanpic.twitter.com/ttlfkdY13u\n— Derek Stavis (@derekstavis) January 9, 2016","spans":[]},{"type":"heading3","text":"Rules and Prizes","spans":[]},{"type":"paragraph","text":"To participate, first sign up on the Hacktoberfest site. And if you open up four pull requests between October 1 and October 31, you'll win a free, limited edition Hacktoberfest T-shirt. (Pull requests do not have to be merged and accepted; as long as they've been opened between the very start of October 1 and the very end of October 31, they count towards a free T-shirt.)","spans":[{"start":76,"end":94,"type":"strong"},{"start":202,"end":208,"type":"em"}]},{"type":"paragraph","text":"Connect with other Hacktoberfest participants (Hacktobefestants?) by using the hashtag, #Hacktoberfest, on your social media platform of choice.","spans":[]},{"type":"preformatted","text":"#HacktoberfestA photo posted by Coston (@costonperkins) on Dec 18, 2015 at 11:49am PST","spans":[]},{"type":"heading3","text":"What's Different This Year","spans":[]},{"type":"paragraph","text":"We wanted to make it easier for contributors to locate projects that needed help, and we also wanted project maintainers to have the ability to highlight issues that were ready to be worked on. To that end, we've introduced project labeling, allowing project maintainers to add a \"Hacktoberfest\" label to any issues that contributors could start working on. Browse participating projects on GitHub.","spans":[{"start":358,"end":387,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/search?l=&amp;q=state%3Aopen+label%3Ahacktoberfest&amp;ref=advsearch&amp;type=Issues&amp;utf8=%E2%9C%93"}}]},{"type":"paragraph","text":"We've also put together a helpful list of resources for both project maintainers and contributors on the Hacktoberfest site.","spans":[{"start":34,"end":51,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/#resources"}}]},{"type":"preformatted","text":"Thank you @digitalocean for my #hacktoberfest t-shirt! Can't wait for next year #opensourcepic.twitter.com/NpWP0kO05t\n— Maithu Venkatesh (@indecisivecoder) December 22, 2015","spans":[]},{"type":"preformatted","text":"Wearing my #hacktoberfest t-shirt today & my #GitHub sweater! I now have super powers! :D /cc @digitalocean@githubpic.twitter.com/baHcy5tzci\n— Eddie Jaoude (@eddiejaoude) January 15, 2016","spans":[]},{"type":"paragraph","text":"Ready to get started with Hacktoberfest? Sign up to participate today.","spans":[{"start":41,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/2fef50f5944e65e85f23a35f02383fc15aba74a7_banner.png?auto=compress,format","alt":"Hacktoberfest","copyright":null,"dimensions":{"width":728,"height":90}}],"blog_post_date":"2016-09-26","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"ready-set-hacktoberfest"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":1400,"height":750},"alt":"hatch","copyright":null,"url":"https://images.prismic.io/www-static/7bb44246-0999-4ba1-9ebd-aa3d1ea7b9c6_hero.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing Hatch (Beta)","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"We're excited to launch Hatch (currently in beta), an online incubator program designed to help and support startups. Infrastructure can be one of the largest expenses facing these companies as they begin to scale. With Hatch, startups can receive access to both DigitalOcean credit and a range of other resources like 1-on-1 technical consultations.","spans":[{"start":24,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/hatch"}}]},{"type":"paragraph","text":"Our goal with Hatch is to give back to the startup ecosystem and provide support to founders around the world so they can focus on building their businesses and not worry about their infrastructure. Having come through the Techstars program, we know just how valuable this support network can be.","spans":[]},{"type":"paragraph","text":"The Hatch program includes a range of perks for startups to get started, including 12 months of DigitalOcean credit up to $100,000 (actual amount varies by partner organization). The program also offers various support services such as 1-on-1 technical consultations, access to mentorship opportunities, solutions engineering, and priority support. We're looking to go beyond just offering infrastructure credits. We want to provide founders with an educational and networking experience that will add tremendous value to their startup for the long term.","spans":[]},{"type":"heading2","text":"Is my startup eligible?","spans":[]},{"type":"paragraph","text":"Starting now, we are piloting the program to a small group of startups. While in beta, we'll be working to refine the offering and eligibility criteria for future bootstrapped and funded startups who apply.","spans":[]},{"type":"paragraph","text":"As of today (September 7, 2016), here are the Hatch eligibility requirements for startups:","spans":[]},{"type":"list-item","text":"Must be backed by a partner accelerator, incubator, or VC firm.","spans":[{"start":20,"end":62,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/hatch/#Partners"}}]},{"type":"list-item","text":"Less than 24 months in company duration.","spans":[]},{"type":"list-item","text":"Less than $10 million raised, up to Series A.","spans":[]},{"type":"list-item","text":"Startups who've received previous DigitalOcean promotional credit may not be eligible to receive additional credit.","spans":[]},{"type":"paragraph","text":"You can apply to Hatch by visiting digitalocean.com/hatch and completing the online application. Want to learn more? Read the FAQ.","spans":[{"start":35,"end":57,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/hatch"}},{"start":126,"end":129,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/hatch/#FAQ"}}]},{"type":"heading2","text":"Want to become a partner?","spans":[]},{"type":"paragraph","text":"We're currently adding over a hundred accelerators, investors, and partners to introduce startups around the world to the Hatch community. If you're interested in becoming a portfolio partner of Hatch, you can apply here.","spans":[{"start":210,"end":220,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.com/hatch/#PartnerApplication"}}]},{"type":"paragraph","text":"Is your startup eligible and do you plan on applying? We'd love to hear from you! Reach out to us on Twitter or use the #hatchyouridea hashtag to tell us what your startup is all about.","spans":[{"start":101,"end":108,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/digitalocean"}}]}],"blog_post_date":"2016-09-06","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"introducing-hatch"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":784,"height":392},"alt":"Collage of images with servers in ocean and dolphins jumping in the middle with the logo CloudSound","copyright":null,"url":"https://images.prismic.io/www-static/85b48a0771e59a67aab0518518c87b8ec89fe409_hero.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing CloudSound: The Music Your Server Makes","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"If a server whirrs in a datacenter and no one is around to hear it, does it still make a sound? Yes, yes it does. And now you can confirm this with a simple click of your mouse.","spans":[]},{"type":"paragraph","text":"Today, we're introducing our new acoustic monitoring feature called CloudSound. CloudSound brings the ambient, meditative sounds of datacenters to the DO control panel. Users can now spin up Droplets to the calming hum of their servers running in the background.","spans":[{"start":68,"end":78,"type":"strong"}]},{"type":"image","url":"https://images.prismic.io/www-static/84c92bcfaf81a8501db71547a03faa3125e6c906_listen.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1052,"height":486}},{"type":"paragraph","text":"We understand that the move from bare metal to the cloud can cause some anxiety. In the past, you knew your server was working because you could hear it working. Now? Only a deafening silence. With CloudSound, you're reassured that everything works with the steady, pleasant datacenter buzz of yesteryear...","spans":[{"start":145,"end":149,"type":"em"}]},{"type":"paragraph","text":"Is the sound of whirring servers through your headphones not enough? DigitalOcean is currently hiring people to work in our datacenters; experience CloudSound all the time!","spans":[{"start":69,"end":101,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/careers/"}}]}],"blog_post_date":"2016-03-31","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"introducing-cloudsound"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":2000,"height":1066},"alt":"ships sailing into the sun with the words 'A year in 2015 community' illustration","copyright":null,"url":"https://images.prismic.io/www-static/0f480f262c566d6e85afd5f1fe60447aed6ea541_blogillustration_holiday.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Thank You For 2015","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"This holiday season, we want to thank all of the people and groups in the developer community who have joined us in this journey. No matter how many Droplets continue to be deployed, what we care about most is the vibrant community of people that continue to display their passions across the community spectrum. We couldn't have done it without you!","spans":[]},{"type":"heading3","text":"Users","spans":[]},{"type":"paragraph","text":"A lot happened in 2015. We opened datacenters in Frankfurt (hallo!) and Toronto (hello!), made new operating systems and applications available, added features like Floating IPs, Team Accounts, and more. One of the biggest and hardest accomplishments was the migration of 3,500 servers to version 1.5 of our codebase which affected users across 4 datacenters. It was a team effort for us but through all of it we have our users to thank. And thank you for telling us how we can improve.","spans":[]},{"type":"heading3","text":"Collaborators","spans":[]},{"type":"paragraph","text":"A heartfelt thanks goes out to all of the people who built on version 2 of our API! Our community wrote API libraries covering many popular programming languages, adding support for more integrations. Special thanks to:","spans":[{"start":104,"end":117,"type":"hyperlink","data":{"link_type":"Web","url":"https://developers.digitalocean.com/libraries/"}}]},{"type":"list-item","text":"Antoine for working on the PHP wrapper,","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/toin0u"}},{"start":27,"end":30,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/toin0u/DigitalOceanV2"}}]},{"type":"list-item","text":"Jeevanandam for his work on the Java wrapper,","spans":[]},{"type":"list-item","text":"Matt's work on Node, and many others as well.","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/matt-major"}},{"start":15,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/matt-major/do-wrapper"}},{"start":30,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/projects/?type=api+wrappers"}}]},{"type":"paragraph","text":"Many open source projects also built or improved integrations using new features in the API this year, thanks to awesome work from contributors like Paul Stack with Terraform and Forrest Alvarez with Salt.","spans":[{"start":149,"end":159,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/stack72/status/674299715920482305"}},{"start":165,"end":174,"type":"hyperlink","data":{"link_type":"Web","url":"https://terraform.io/"}},{"start":179,"end":194,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/failvarez/status/657319318732996609"}},{"start":200,"end":204,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/saltstack/salt"}}]},{"type":"paragraph","text":"Also, big thanks to Prometheus for creating an excellent set of building blocks for a monitoring system. And last but not least, Brad Rydzewski and the community around Drone for tirelessly taking our feedback and improving the tool we use for Continuous Integration.","spans":[{"start":20,"end":30,"type":"hyperlink","data":{"link_type":"Web","url":"http://prometheus.io/docs/introduction/overview/"}},{"start":129,"end":143,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/bradrydzewski"}},{"start":169,"end":174,"type":"hyperlink","data":{"link_type":"Web","url":"http://docs.drone.io/"}}]},{"type":"heading3","text":"Authors","spans":[]},{"type":"paragraph","text":"Thanks to over 90 incredibly talented authors — including representatives from the MySQL, DEIS, and Sandstorm teams — we added over 140 new community-written tutorials to our growing library. These articles and tutorials help countless users learn to use up-and-coming technologies. In addition, thank you to the community users who share resources and answer technical questions in the Q&A section (a very special shout-out goes out to Adam Robertson, Jonathan Tittle, and Woet).Thank you all for lending your expertise to help others!","spans":[{"start":83,"end":88,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mysql.com/"}},{"start":90,"end":94,"type":"hyperlink","data":{"link_type":"Web","url":"http://deis.io/"}},{"start":100,"end":109,"type":"hyperlink","data":{"link_type":"Web","url":"https://sandstorm.io/"}},{"start":171,"end":190,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/"}},{"start":387,"end":398,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}},{"start":437,"end":451,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/sierracircle"}},{"start":453,"end":468,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/jtittle"}},{"start":474,"end":478,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/woet"}}]},{"type":"image","url":"https://images.prismic.io/www-static/fa4d290c49b887713e8fbfad510af85ed5811a0b_nylatino.jpg?auto=compress,format","alt":"NY Latino Tech Meetup, Hosted at DO","copyright":null,"dimensions":{"width":1024,"height":768}},{"type":"paragraph","text":"Source: Tweet from @nycforward","spans":[{"start":0,"end":30,"type":"em"},{"start":8,"end":30,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/nycforward/status/675104356069416964"}}]},{"type":"heading3","text":"Local Meetup Groups","spans":[]},{"type":"paragraph","text":"We plugged into the greater developer community this year by hosting over 75 tech events at our space, including events for groups like:","spans":[]},{"type":"list-item","text":"Manhattan.js,","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"http://manhattanjs.com/"}}]},{"type":"list-item","text":"Women Who Code","spans":[{"start":0,"end":14,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.womenwhocode.com/"}}]},{"type":"list-item","text":"Meteor","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"http://meteor.meetup.com/"}}]},{"type":"list-item","text":"Write the Docs","spans":[{"start":0,"end":14,"type":"hyperlink","data":{"link_type":"Web","url":"http://conf.writethedocs.org/meetups.html"}}]},{"type":"paragraph","text":"Additionally, we were delighted to host a number of technical talks by:","spans":[{"start":52,"end":67,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLseEp7p6EwiaoVfqAS71e91DM1ilpujNy"}}]},{"type":"list-item","text":"Joe Stein on Apache Mesos","spans":[{"start":0,"end":9,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/allthingshadoop"}},{"start":13,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=dyLtK4FhCZE&amp;index=4&amp;list=PLseEp7p6EwiaoVfqAS71e91DM1ilpujNy"}}]},{"type":"list-item","text":"George Neville-Neal on the history of FreeBSD","spans":[{"start":0,"end":19,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/gvnn3"}},{"start":27,"end":45,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=wwbO4eTieQY&amp;list=PLseEp7p6EwiaoVfqAS71e91DM1ilpujNy&amp;index=1"}}]},{"type":"list-item","text":"Dave Cheney on dependency management in Go","spans":[{"start":0,"end":11,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/davecheney"}},{"start":15,"end":42,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=c3dW80eO88I&amp;index=5&amp;list=PLseEp7p6EwiaoVfqAS71e91DM1ilpujNy"}}]},{"type":"paragraph","text":"Furthermore, we were honored to have #WOCinTech Chat use our office as the location for a set of freely available stock photos featuring women of color in technical roles. Thank you to all of these individuals and groups for creating amazing experiences for technologists!","spans":[{"start":37,"end":52,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.wocintechchat.com/"}},{"start":90,"end":126,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.wocintechchat.com/blog/wocintechphotos"}}]},{"type":"image","url":"https://images.prismic.io/www-static/3f7e19f027877a6d7048134a6324a044f0b03ebd_wocstock.jpg?auto=compress,format","alt":"A photo from the WOCinTech Chat stock photos gallery","copyright":null,"dimensions":{"width":640,"height":427}},{"type":"paragraph","text":"Photo credit: #WOCinTech Chat","spans":[{"start":0,"end":29,"type":"em"},{"start":0,"end":29,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.flickr.com/photos/wocintechchat/"}}]},{"type":"heading3","text":"And You!","spans":[]},{"type":"paragraph","text":"Thank you all for inspiring us and for continuing to demonstrate what makes tech such an amazing community to be a part of. From the coder just getting started to seasoned developers, we are incredibly grateful for our community and all that they build, create, and share. As always, we will continue to support you and show our gratitude. We can't wait to see what you create in 2016 and we'll be here with you all of the way!","spans":[{"start":266,"end":271,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/search?f=images&amp;vertical=default&amp;q=%23hacktoberfest&amp;src=typd"}}]},{"type":"paragraph","text":"by Stephanie Morillo","spans":[{"start":3,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/radiomorillo"}}]}],"blog_post_date":"2015-12-22","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"thank_you_for_2015"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"hacktoberfest desk with laptops","copyright":null,"url":"https://images.prismic.io/www-static/8600b580-faa3-4dcf-8adf-f8ba56f36577_hero.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"31 Days, 4 Pull Requests, 1000s of Stories: Looking Back at Hacktoberfest","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"When we completed our first Hacktoberfest in 2014, we had 768 participants, and happily sent out T-shirts across the globe. We were eager to see what 2015 would bring, but we could never have expected the huge response we received this year!","spans":[]},{"type":"paragraph","text":"This year, we partnered with GitHub to lay down the challenge: submit four pull requests on GitHub to an open source project, and we'll send you a free limited edition T-shirt.","spans":[{"start":92,"end":98,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/blog/2067-hacktoberfest-contribute-to-open-source-in-october"}}]},{"type":"paragraph","text":"As Hacktoberfest wound down and the numbers and stories began trickling — and then pouring — in, we were overwhelmed by the results that we saw. 14,419 people signed up. 5,708 people created four pull requests. And 1,060 went above and beyond, submitting over 10 each in the month of October.","spans":[]},{"type":"paragraph","text":"We were blown away by the stories people shared about their Hacktoberfest experience. Here are just some of our favorite ones from around the world:","spans":[]},{"type":"paragraph","text":"Developer from Krakow, Poland:","spans":[]},{"type":"preformatted","text":"\"I always wanted to contribute to open source projects, but haven't had the courage to do so. Hacktoberfest encouraged me to just start doing it, so I started by writing documentation for Ember.js - my currently favourite Javascript framework. I'm glad I did that and I feel like I'm part of a worldwide developer community.\"","spans":[]},{"type":"paragraph","text":"Developer from Merelbeke, Belgium:","spans":[]},{"type":"preformatted","text":"\"It was my first time using git so everything was new for me. I had a hard time figuring everything out but at the end I finally managed to become a git-pro. Most of my contributions were bug patches to existing projects and I found the layout of Github so nice that I started using Github for writing documentation about my own projects.\"","spans":[]},{"type":"paragraph","text":"Developer from Mountain View, United States:","spans":[]},{"type":"preformatted","text":"\"This was my first time contributing to open source, despite having wanted to for ages. Thanks for giving me the final push that I needed! I created substantial documentation for two projects, and enjoyed working on one of them so much that I've reached out to the maintainer about how I can help move the project forward!\"","spans":[]},{"type":"paragraph","text":"Developer from Curitiba, Brazil:","spans":[]},{"type":"preformatted","text":"\"I always wanted to start contributing to open source but wasn't able to due to being in a company that had restrictions regarding intellectual property produced by me. I changed jobs and decided it was time to start but I had no idea where to begin! My first contribution was a small bug fix in September 31th, after reading about Hacktoberfest I had extra motivation to keep going. I closed up the month with 5 opened pull requests, three of them merged, now that I've seen first hand that contributing is not as scary as it first seemed I plan to continue contributing!\"","spans":[]},{"type":"paragraph","text":"Developer from Charleston, United States:","spans":[]},{"type":"preformatted","text":"\"I recently joined an aerospace club at my school, and we used GitHub to collaborate on the code for our Arduino-controlled space balloon. My first pull request ended up flying over 100,000 feet!\"","spans":[]},{"type":"paragraph","text":"Some schools even got their students involved:","spans":[]},{"type":"paragraph","text":"Educator from Cedar City, United States","spans":[]},{"type":"preformatted","text":"\"When we found out about the Hacktoberfest opportunity we got our entire C++ programming class to participate. Not only do I assist in the high school classes, but I am also a programming student myself. In order to keep the high schoolers on track to get 4 pull requests I created repositories they felt comfortable contributing to and still felt accomplished.\"","spans":[]},{"type":"paragraph","text":"Students from Cedar City, United States","spans":[]},{"type":"preformatted","text":"\"Our class was encouraged to take on Hacktoberfest. With teamwork and help from our instructors, we accomplished this task.\"","spans":[]},{"type":"paragraph","text":"and","spans":[]},{"type":"preformatted","text":"\"Our whole C++ programming class completed the challenge of doing 4 pull requests, it  was amazing [and] I can't believe we all did it!\"","spans":[]},{"type":"paragraph","text":"Hacktoberfest has been an exciting and humbling experience for us. It's exciting to see just how much it's grown, and a humbling reminder of the true size and scope of the open source ecosystem.","spans":[]},{"type":"paragraph","text":"96 countries that participated in Hacktoberfest 2015","spans":[{"start":0,"end":52,"type":"em"}]},{"type":"image","url":"https://images.prismic.io/www-static/7308577b0755ed500288326fc1014ce45ce2c9cc_map.png?auto=compress,format","alt":"Global contributions","copyright":null,"dimensions":{"width":784,"height":418}},{"type":"paragraph","text":"We are so grateful to everyone who joined in for Hacktoberfest this year. A big thank you to the maintainers of all featured projects — we look forward to working with you again. We can't wait to see what next year will bring!","spans":[]},{"type":"paragraph","text":"If you would like to get involved, or if you have ideas about how to make the next Hacktoberfest even better, get in touch!","spans":[{"start":110,"end":122,"type":"hyperlink","data":{"link_type":"Web","url":"mailto:hacktoberfest@digitalocean.com"}}]},{"type":"paragraph","text":"Hacktoberfest T-shirts are in the mail as of 11.24! :)","spans":[]}],"blog_post_date":"2015-12-01","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"looking-back-at-hacktoberfest"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Stephanie Morillo","author_image":{"dimensions":{"width":188,"height":188},"alt":"Stephanie Morillo","copyright":null,"url":"https://images.prismic.io/www-static/88c5ec7b08345ce34cc82af6a32619bee69b1dae_stephanie_morillo-abc491ab.png?auto=compress,format"},"_meta":{"uid":"stephanie_morillo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"illustration of a tee shirt with hacktoberfest 2015 graphic on it","copyright":null,"url":"https://images.prismic.io/www-static/827e96c005aa8b811d64c6e505be4c947dc61c41_hero-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Hacktoberfest is Back!","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"We're excited to announce the start of the second annual Hacktoberfest, a month-long celebration of open source software! This year, GitHub joins us as a partner in our quest to give you a cool shirt for your open source contributions.","spans":[]},{"type":"paragraph","text":"For this year's Hacktoberfest, we encourage everyone to contribute to open source software by making meaningful contributions to the projects you use and love. We've changed the minimum contributions from 50 commits to 4 pull requests. That's right: to participate, just make 4 pull requests to any open source projects of your choice (can be more than one!). The purpose of this is to shift focus to the types of contributions being made, whether you're fixing bugs, creating new features, or updating documentation.","spans":[{"start":271,"end":319,"type":"strong"}]},{"type":"paragraph","text":"We will also sponsor and host jQuery's Developer Summit in New York City, a three-day event where members of underrepresented groups will contribute to open source projects run by the jQuery Foundation, and NYC Women Who Go's Meetup with the Bridge Foundry.","spans":[{"start":30,"end":55,"type":"hyperlink","data":{"link_type":"Web","url":"http://events.jquery.org/2015/developer-summit/"}},{"start":207,"end":232,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.meetup.com/NYC-Women-Who-Go/events/224977872/"}}]},{"type":"paragraph","text":"Additionally, we have chosen 31 awesome open source projects to highlight for each day in October, inviting participants to check out, use, and contribute to them. (You aren't limited to only these projects — use them as a reference point if you don't know where to begin!) We've split them out by programming language to make it easier for you to find one that piques your interest.","spans":[{"start":29,"end":60,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/#projects"}}]},{"type":"paragraph","text":"To participate in Hacktoberfest, sign up on the Hacktoberfest website and open four pull requests on any GitHub-hosted open source project (or projects) of your choosing in the month of October. You will win a limited-edition Hacktoberfest T-shirt featuring GitHub's Octocat and our very own Sammy the Shark.","spans":[{"start":33,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/"}}]},{"type":"paragraph","text":"We'll send you reminders throughout the month along with our top open source project picks. What projects will you contribute to? Let us know on Twitter using the #Hacktoberfest hashtag, or tell us in the comments below!","spans":[]},{"type":"paragraph","text":"Sign up here for Hacktoberfest!","spans":[{"start":0,"end":31,"type":"hyperlink","data":{"link_type":"Web","url":"https://hacktoberfest.digitalocean.com/"}}]},{"type":"paragraph","text":"Happy Hacking!","spans":[]},{"type":"paragraph","text":"by Stephanie Morillo","spans":[{"start":3,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/radiomorillo"}}]}],"blog_post_date":"2015-09-30","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"hacktoberfest-is-back"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Brian Knox","author_image":null,"_meta":{"uid":"brian_knox"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"open source doors","copyright":null,"url":"https://images.prismic.io/www-static/34c2992c-c506-4f5c-976a-714b8b9907b0_open_source.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Community, Collaboration, and Problem Solving: The Value of Open Source","spans":[]}],"blog_post_content":[{"type":"heading2","text":"Open Source is a Tool","spans":[]},{"type":"paragraph","text":"When managing a large computing infrastructure, it's paramount to understand what's happening within it; as your infrastructure scales, this becomes increasingly challenging. Fortunately, while this can be a difficult problem, there is a powerful tool available to help solve it: open source software.","spans":[]},{"type":"paragraph","text":"When describing open source software as a tool, I'm referring to the process of open source itself, not a specific piece of open source software. Any open source tool with a history in a particular problem space can be thought of, at a higher level, as a collection of solved problems within that space. This is a perspective on open source software I gained from Pieter Hintjens while working on various ZeroMQ projects, and I find it a highly valuable framing of what open source provides.","spans":[]},{"type":"paragraph","text":"The community that forms around a particular successful piece of software over time evolves into a community of experts about the problems that software solves. Being a contributing member of such communities yields great benefits — not only better tools, but strong and lasting relationships with other people working on the same issues.","spans":[]},{"type":"heading2","text":"A Real World Example","spans":[]},{"type":"paragraph","text":"As a specific example, the metrics team at DO was recently trying to figure out how to safely and securely tail logs in real-time from remote servers as conveniently as if they were local.  To solve this, we first looked at Rsyslog, which is a logging daemon common on many Linux distributions.","spans":[{"start":224,"end":231,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.rsyslog.com/"}}]},{"type":"paragraph","text":"At its heart, Rsyslog provides the ability to receive, parse, filter, and forward log messages. Over the eleven years of its life, it has become a collection of solutions to a wide range of problems, like how to handle logs as efficiently as possible, how to deal with devices logging messages that aren't standards-compliant, how to insert logs into databases for indexing and storage, how to transform logs into a common structured format, and many more.","spans":[]},{"type":"paragraph","text":"Our problem fell into an appropriate scope for Rsyslog, but we couldn't quite solve it with that alone. Our solution was to integrate Rsyslog with CZMQ, a high level C binding for ZeroMQ. CZMQ provides certificate-based authentication, libsodium-based encryption, and support for publisher filtered publish-subscribe buses, among other things. This makes it a natural fit for our particular problem when combined with Rsyslog's parser and message templates.","spans":[{"start":147,"end":151,"type":"hyperlink","data":{"link_type":"Web","url":"http://czmq.zeromq.org/"}},{"start":180,"end":186,"type":"hyperlink","data":{"link_type":"Web","url":"http://zeromq.org/"}}]},{"type":"paragraph","text":"With this combination, we can create dynamic topic streams for log messages and provide them over secure, encrypted streams without additional infrastructure. We've contributed the input and output plugins back to Rsyslog, and they'll soon be part of the official packages, so anyone else with a similar problem can use them. That said, we've tried only one possible approach of many to solving this problem, and we're looking forward to iterating on it, making improvements, and releasing more software around this idea.","spans":[{"start":181,"end":186,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/rsyslog/rsyslog/tree/master/contrib/imczmq"}},{"start":191,"end":197,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/rsyslog/rsyslog/tree/master/contrib/omczmq"}}]},{"type":"paragraph","text":"For example, by using these plugins with LogTalez, a minimal API and command line client built on top of the GoCZMQ Go bindings for CZMQ, logs from any Rsyslog aggregator can be requested by host and program name combinations, piped to standard command line tools, and / or used with useful Go libraries. We're currently working on the ability to extract metrics from log streams using these plugins with Prometheus, a monitoring system and time series database released by SoundCloud.","spans":[{"start":41,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/logtalez"}},{"start":109,"end":115,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/zeromq/goczmq"}},{"start":405,"end":415,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/prometheus/prometheus"}}]},{"type":"heading2","text":"DO + OSS","spans":[]},{"type":"paragraph","text":"Actively taking part in open source development allows us to learn from each other's perspectives and have a conversation about different approaches to the same problems. The tools built through these conversations become shared repositories of knowledge gained through direct experience, freeing all of us to work on the core problems our individual organizations are addressing.","spans":[]},{"type":"paragraph","text":"I'm overjoyed to work at an organization that believes in this approach and puts resources behind it. Our Community team has created a site to highlight some of the open source projects that DO folks release and contribute to. Keep an eye on it for more to come!","spans":[{"start":125,"end":139,"type":"hyperlink","data":{"link_type":"Web","url":"https://developers.digitalocean.com/opensource/"}}]},{"type":"paragraph","text":"by Brian Knox","spans":[{"start":3,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/taotetek"}}]}],"blog_post_date":"2015-06-29","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}},{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"community-collaboration-and-problem-solving"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"stack javascript.com","copyright":null,"url":"https://images.prismic.io/www-static/3cdeeb9a-1675-4b14-bd12-1c3cfd01c8b1_guest-post-javascript-com.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Guest Post: Behind the Stack of JavaScript.com","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"This morning at Code School we released JavaScript.com, a free community resource that serves two purposes: to provide a starting point to learn JavaScript, and to keep JavaScript developers up to date with the latest news, frameworks, and libraries.","spans":[{"start":16,"end":27,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.codeschool.com/"}},{"start":40,"end":54,"type":"hyperlink","data":{"link_type":"Web","url":"http://javascript.com"}}]},{"type":"paragraph","text":"Since the purpose of JavaScript.com is to teach everyone about web development, I couldn't resist this opportunity to spread a little knowledge about the site's deployment process. In this article, I thought I'd give a peek behind the curtain to show you the stack we're using and why we're hosting with DigitalOcean.","spans":[]},{"type":"heading2","text":"How Does JavaScript.com Work?","spans":[]},{"type":"paragraph","text":"JavaScript.com is developed in JavaScript, of course. We chose Node.js for its speed, ease of use, and community support. But that's not telling the whole story.","spans":[]},{"type":"paragraph","text":"We don't want every web request to make it all the way to our application servers, since that would strain them unnecessarily. So, before any web request makes it to the application, it passes through several layers that help offload and balance the traffic between multiple servers.","spans":[]},{"type":"heading2","text":"Content Delivery & Caching","spans":[]},{"type":"paragraph","text":"The first destination on your request's journey is CloudFlare. We've been experimenting with CloudFlare for some time at Code School, as both a security and extra caching layer. If CloudFlare sees a request for a static page that's been generated recently, it will return that page from one of its data centers rather than asking our application servers to regenerate the page. The sort of page and asset caching CloudFlare provides works extremely well with a read-heavy site like JavaScript.com. After all, the best kind of cached request never even hits your server.","spans":[]},{"type":"heading2","text":"Load Balancing","spans":[]},{"type":"paragraph","text":"After CloudFlare, any uncached request will go through one of two load balancers running HAProxy. These load balancers allow us to quickly add new application servers to the mix as the load increases. A lone HAProxy process can service many millions of requests per day, so we run only two of them: one to serve requests from the Internet, and one on standby, ready to take over if the hot server fails. This is called a \"hot standby\" configuration.","spans":[]},{"type":"heading2","text":"Application Servers","spans":[]},{"type":"paragraph","text":"Finally, HAProxy routes the request down to our NGINX and Phusion Passenger stack. NGINX is a web server that handles static requests (like images), while Phusion Passenger manages our Node processes and dynamic requests (like the comments page) from within NGINX. We really enjoy Passenger on the DevOps side of things since it makes Node process management dead simple.","spans":[]},{"type":"paragraph","text":"All of these application servers are designed to run independently from one another. So, we can fire up as many as we need of each type to handle whatever traffic we see on JavaScript.com.","spans":[]},{"type":"heading2","text":"Database Servers","spans":[]},{"type":"paragraph","text":"In order to save all those stories and comments, JavaScript.com uses the PostgreSQL database. It is an extremely quick and reliable piece of software that we use across Code School for a variety of applications.","spans":[]},{"type":"paragraph","text":"The database always gets its own server, along with a spare, should the main server ever go down. As a bonus, a PostgreSQL hot spare can be used by the JavaScript.com application as a read-only database should the main server fall under too much load.","spans":[]},{"type":"heading2","text":"One Command to Deploy Them All","spans":[]},{"type":"paragraph","text":"JavaScript.com is made up of a minimum of six servers: two load balancers, two application servers, and two database servers. Since we want to be able to scale out at a moment's notice, we need a way to spin up new servers quickly and automatically. Enter SaltStack and DigitalOcean.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/4413289e7896aff6e20f3f97813062020413c3cf_stack-of-javascript-com.png?auto=compress,format","alt":"Javascript.com","copyright":null,"dimensions":{"width":745,"height":460}},{"type":"paragraph","text":"SaltStack is a configuration management system for servers that lets us configure the following:","spans":[]},{"type":"list-item","text":"Deploy a new DigitalOcean server","spans":[]},{"type":"list-item","text":"Configure the server to run JavaScript.com","spans":[]},{"type":"list-item","text":"Grant access to the database servers","spans":[]},{"type":"list-item","text":"Add the new server to the load balancer so it can start handling requests","spans":[]},{"type":"paragraph","text":"It finishes this provisioning process for a new server in just a few minutes. Our process for code deployments is exactly the same, since SaltStack knows how to ship new code to existing servers as well.","spans":[]},{"type":"paragraph","text":"In order to scale out horizontally, we needed a provider that not only spins up servers very quickly, but can also do so programmatically. DigitalOcean works very well on both fronts, and in multiple locations around the world. If we end up with more traffic than expected, more capacity is just a salt-cloud command away.","spans":[]},{"type":"heading2","text":"Conclusion","spans":[]},{"type":"paragraph","text":"To create a website that's ready to handle a great deal of traffic, you need a detailed plan. Not only do you need a caching layer, but you must also be able to spin up new servers quickly as more uncacheable requests flow in. The first step in this process is separating your stack into layers so that each can scale independently. The second is making use of tools like HAProxy, SaltStack, and DigitalOcean to bring it all together.","spans":[]},{"type":"paragraph","text":"Now that you've read about JavaScript.com's stack, go try it — and feel free to promote your own stack, framework, or library on our community news page.","spans":[{"start":27,"end":41,"type":"hyperlink","data":{"link_type":"Web","url":"http://javascript.com"}}]},{"type":"paragraph","text":"by Thomas Meeks","spans":[{"start":3,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/codeschool"}}]}],"blog_post_date":"2015-06-15","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"guest-post-behind-the-stack-of-javascript-com"}}}]}}}