{"id":488,"date":"2018-06-14T15:16:44","date_gmt":"2018-06-14T12:16:44","guid":{"rendered":"https:\/\/lasoft.org\/blog\/?p=488"},"modified":"2024-06-24T21:22:02","modified_gmt":"2024-06-24T18:22:02","slug":"introducing-the-mean-stack","status":"publish","type":"post","link":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/","title":{"rendered":"Introducing the MEAN stack"},"content":{"rendered":"<h2>The Disruption<\/h2>\n<p>Technology disruption has already disrupted. Everything has changed with the pace of digital revolution, from our everyday lives to the way how we work and code. The fast moving and diverse environment of web development is no exception. <\/p>\n<p>During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing? <\/p>\n<p>Technology stacks provide complete platforms to run applications, and they have the power enough to process complex instructions. Generally they consist of the following components: operating system, runtime environments, database, web server and web application framework.<\/p>\n<h2>What is MEAN stack<\/h2>\n<p>MEAN stack is a full-stack JavaScript framework for developing dynamic websites and applications. MEAN stack derives its name from its components: M stands for MongoDB, E \u2013 Express.js, A \u2013 AngularJS, and N \u2013 Node.js. <\/p>\n<p>MEAN stack is completely JavaScript-powered: one and the same programming language (JavaScript) is being used at every level of application, thus, it allows unique server-side and client-side execution environments.<\/p>\n\n<table id=\"tablepress-2\" class=\"tablepress tablepress-id-2\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Name<\/th><th class=\"column-2\">What is<br \/>\n<\/th><th class=\"column-3\">Features<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">MongoDB<\/td><td class=\"column-2\">Database system<\/td><td class=\"column-3\">NoSQL database<br \/>\nDocument-oriented<br \/>\nJSON-style documents <br \/>\nFull cluster support<br \/>\nIndex on any attribute<br \/>\nUses one language the whole way through<br \/>\nAutomatic replication<br \/>\nEasy pass of data between client and server<br \/>\nNo complex joints<br \/>\nDeep query ability<br \/>\n<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Express.js<\/td><td class=\"column-2\">Back-end web framework<\/td><td class=\"column-3\">HTTP server framework<br \/>\nLightweight and flexible<br \/>\nRobust set of features for building single and multipage web applications in Node.js<br \/>\nComplete list of modules and components<br \/>\nSimple interface<br \/>\nAllows to create REST API server<br \/>\nEasy to integrate with template engines<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">AngularJS<\/td><td class=\"column-2\">Front-end framework<\/td><td class=\"column-3\">Developed by Google<br \/>\nTwo-way data binding<br \/>\nGood for developing reusable and testable client-side applications<br \/>\nCreation of customized DOM (Document Object Model) elements<br \/>\nDependency injection<br \/>\nSimple routing<br \/>\nRobust template-building<br \/>\nGreat code reuse<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Node.js<\/td><td class=\"column-2\">Back-end runtime environment<\/td><td class=\"column-3\">Built on Google Chrome\u2019s V8 JavaScript runtime<br \/>\nExecuting the code on the server side<br \/>\nSingle threading<br \/>\nNon-blocking I\/O paradigm<br \/>\nAsynchronous and event-driven<br \/>\nHigh scalability<br \/>\nQuick development cycles<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-2 from cache -->\n<p>To learn more about the MEAN stack architecture, read <a href=\"https:\/\/www.ibm.com\/developerworks\/library\/wa-mean1\/index.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Scott Davis\u2019 Introduction<\/a>.<\/p>\n<h2>What do you MEAN?<\/h2>\n<p>Due to its performance, simplicity and flexibility, MEAN stack is perfect for building all kinds of applications, from dynamic single-page apps to large-scale <a href=\"https:\/\/lasoft.org\/portfolio\/business_digitalization\/\">complex enterprise solutions<\/a>.<\/p>\n<p>The most common uses of MEAN stack:<\/p>\n<ul>\n<li>Social media apps<\/li>\n<li>Multimedia streaming apps<\/li>\n<li>Chat and forum apps<\/li>\n<li>Business and enterprise apps<\/li>\n<li>Big Data apps<\/li>\n<li>Apps with multi-user interaction<\/li>\n<li>Apps with user connectivity<\/li>\n<li>All types of mobile apps<\/li>\n<\/ul>\n<p>MEAN stack is currently in high demand within both startups and established companies. Some of the giants who\u2019ve successfully leveraged MEAN stack for their products are Netflix, Google, PayPal, Uber, LinkedIn, New York Times, Walmart, and many more.<\/p>\n<h3>MEANingful benefits<\/h3>\n<p>Let\u2019s look through the main advantages of MEAN stack, which make it rule the market of JavaScript frameworks:<\/p>\n<ul>\n<li><strong>Single language development<\/strong><\/li>\n<\/ul>\n<p>This benefit is the main one and the most obvious as JavaScript is one of the most popular programming languages in the world. By going MEAN your complete code (client side and server side) is written in JavaScript.<\/p>\n<ul>\n<li><strong>Employability<\/strong><\/li>\n<\/ul>\n<p>Today it\u2019s definitely not a problem to employ an engineer highly skilled in JavaScript-based technologies.<\/p>\n<ul>\n<li><strong>Cost-effectiveness<\/strong><\/li>\n<\/ul>\n<p>It is generally more cost effective to use same programming language on both front-end and back-end.<\/p>\n<ul>\n<li><strong>Time-saving<\/strong><\/li>\n<\/ul>\n<p>When the timelines of your project are limited, you can leverage the infinite set of ready to use module libraries for Node.js on the contrary to writing the modules by yourself.<\/p>\n<ul>\n<li><strong>JSON<\/strong><\/li>\n<\/ul>\n<p>Both AngularJS and Node.js offer JSON (JavaScript Object Notation), and MongoDB saves documents in JSON format. Same format of data everywhere eliminates the need for reformatting and rewriting. JSON also enables easy work with the APIs.<\/p>\n<ul>\n<li><strong>High flexibility<\/strong><\/li>\n<\/ul>\n<p>MongoDB offers a flexible JSON document structure for all the data representation, which is invaluable for complex large-scale projects. As well, MongoDB offers automatic replication and full cluster support.<\/p>\n<ul>\n<li><strong>Lightning fast speed<\/strong><\/li>\n<\/ul>\n<p>MEAN stack is superfast thanks to non-blocking architecture of Node.js.<\/p>\n<ul>\n<li><strong>Cloud compatible<\/strong><\/li>\n<\/ul>\n<p>If you need to implement cloud functionalities into your app, MongoDB helps to decrease the cost of disk space.<\/p>\n<ul>\n<li><strong>Open-source<\/strong><\/li>\n<\/ul>\n<p>All technologies, libraries and public repositories are open-source, free and available for use. Also, new versions are coming out all the time and the stack gets updated often. It helps reduce the cost of development and speed up time-to-market.<\/p>\n<ul>\n<li><strong>Active community<\/strong><\/li>\n<\/ul>\n<p>JavaScript is definitely the most popular programming language in the world, and, it has thriving and the most active developers\u2019 communities. Moreover, within communities developers share code and valuable insights with each other.<\/p>\n<h3>Turn off the LAMP<\/h3>\n<p>MEAN and LAMP stacks are going up against each other for some time now, but MEAN seems to be winning the contest. <\/p>\n<p>LAMP was one of the first open-source web-technology stacks that gained wide popularity among developers. LAMP stack combines Linux operating system, Apache web-server, MySQL database, and PHP programming language. Still, the LAMP components were not initially designed to work together.<\/p>\n<p>In the past years LAMP was one the most widely-used web-technology stacks, but MEAN stack allows developers jump off the established LAMP environment.<\/p>\n\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Technology<\/th><th class=\"column-2\">LAMP<\/th><th class=\"column-3\">MEAN<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Operating system<\/td><td class=\"column-2\">Linux<\/td><td class=\"column-3\">No restrictions<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Web server<\/td><td class=\"column-2\">Apache<\/td><td class=\"column-3\">Node.js<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Data storage<\/td><td class=\"column-2\">MySQL (relational data storage)<\/td><td class=\"column-3\">MongoDB (non-relational data storage)<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Performance<\/td><td class=\"column-2\">Horizontal scaling and high transaction loads affect performance<\/td><td class=\"column-3\">MongoDB is very fast, but can have minor and infrequent data loss<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">User development<\/td><td class=\"column-2\">In LAMP you need different programming languages for front-end and back-end development<\/td><td class=\"column-3\">JavaScript across the stack<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">Scalability<\/td><td class=\"column-2\">MySQL is a bit harder to scale compared to MongoDB. LAMP is scalable, if you know how to optimize it (MySQL optimizations can be quite complicated)<\/td><td class=\"column-3\">MEAN scales all the layers of front-end, back-end and database<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">Security<\/td><td class=\"column-2\">Stable and secure<\/td><td class=\"column-3\">Stable and secure<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">Through-put<\/td><td class=\"column-2\">Synchronous<\/td><td class=\"column-3\">Asynchronous<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">Cost<\/td><td class=\"column-2\">Costly due to the necessity to hire different experts<\/td><td class=\"column-3\">Cheaper, as same people work on front-end and back-end<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache -->\n<h2>Summing up<\/h2>\n<p>MEAN stack continues to gain amazing popularity due to its high performance, fewer overheads and easiness to combine around. The technologies perfectly integrate with each other and are invaluable in developing ambitious and competitive web apps. Another advantages are that MEAN stack is relatively easy to learn, is being constantly improved, and it heavily supported by thriving community.<\/p>\n<p>Had some projects on MEAN? Leave your comments to let us know what you think about it. Share the article to your colleagues if you find it useful.<\/p>\n","protected":false},"excerpt":{"rendered":"The Disruption Technology disruption has already disrupted. Everything has changed with the pace of digital revolution, from our everyday lives to the way how we work and code. The fast moving and diverse environment of web development is no exception. During the recent years everybody in the web community speaks about the MEAN stack. What&hellip;","protected":false},"author":2,"featured_media":532,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[240,180],"tags":[30,17],"coauthors":[133],"class_list":["post-488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-software-development","tag-mean-stack","tag-node-js"],"yoast_head":"<title>Introducing the MEAN stack<\/title>\n<meta name=\"description\" content=\"During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing the MEAN stack\" \/>\n<meta property=\"og:description\" content=\"During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Development Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/lasoftians\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-14T12:16:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-24T18:22:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"721\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vasyl Varkholyak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@LaSoftAgency\" \/>\n<meta name=\"twitter:site\" content=\"@LaSoftAgency\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vasyl Varkholyak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>","yoast_head_json":{"title":"Introducing the MEAN stack","description":"During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/","og_locale":"en_US","og_type":"article","og_title":"Introducing the MEAN stack","og_description":"During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing?","og_url":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/","og_site_name":"Software Development Blog","article_publisher":"https:\/\/www.facebook.com\/lasoftians\/","article_published_time":"2018-06-14T12:16:44+00:00","article_modified_time":"2024-06-24T18:22:02+00:00","og_image":[{"width":1024,"height":721,"url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg","type":"image\/jpeg"}],"author":"Vasyl Varkholyak","twitter_card":"summary_large_image","twitter_creator":"@LaSoftAgency","twitter_site":"@LaSoftAgency","twitter_misc":{"Written by":"Vasyl Varkholyak","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/#article","isPartOf":{"@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/"},"author":{"name":"Vasyl Varkholyak","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/person\/a697f96359d5b4a29e494d6f4f51ac29"},"headline":"Introducing the MEAN stack","datePublished":"2018-06-14T12:16:44+00:00","dateModified":"2024-06-24T18:22:02+00:00","mainEntityOfPage":{"@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/"},"wordCount":772,"publisher":{"@id":"https:\/\/lasoft.org\/blog\/#organization"},"image":{"@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/#primaryimage"},"thumbnailUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg","keywords":["Mean stack","Node.js"],"articleSection":["Programming","Software Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/","url":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/","name":"Introducing the MEAN stack","isPartOf":{"@id":"https:\/\/lasoft.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/#primaryimage"},"image":{"@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/#primaryimage"},"thumbnailUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg","datePublished":"2018-06-14T12:16:44+00:00","dateModified":"2024-06-24T18:22:02+00:00","description":"During the recent years everybody in the web community speaks about the MEAN stack. What are they discussing?","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lasoft.org\/blog\/introducing-the-mean-stack\/#primaryimage","url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg","contentUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/06\/fabian-grohs-423591-unsplash.jpg","width":1024,"height":721,"caption":"mean stack"},{"@type":"WebSite","@id":"https:\/\/lasoft.org\/blog\/#website","url":"https:\/\/lasoft.org\/blog\/","name":"Software Development Blog","description":"Insightful Analysis of IT Markets and Emerging Technologies","publisher":{"@id":"https:\/\/lasoft.org\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lasoft.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lasoft.org\/blog\/#organization","name":"LaSoft","url":"https:\/\/lasoft.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2024\/06\/lasoft.jpg","contentUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2024\/06\/lasoft.jpg","width":1200,"height":628,"caption":"LaSoft"},"image":{"@id":"https:\/\/lasoft.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/lasoftians\/","https:\/\/x.com\/LaSoftAgency","https:\/\/www.instagram.com\/lasoftians\/","https:\/\/www.linkedin.com\/company\/la'soft-","https:\/\/www.youtube.com\/channel\/UCGiINdBnqPoBpK1WaCEZMHQ\/"]},{"@type":"Person","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/person\/a697f96359d5b4a29e494d6f4f51ac29","name":"Vasyl Varkholyak","description":"Vasyl Varkholyak, Co-Founder and CTO of LaSoft, leads a team of 55 multi-talented and experienced professionals, including software engineers, designers, project managers, and QAs. Vasyl helps companies elevate their technology capabilities by providing top IT talent and technical expertise. He believes that every company will eventually become an IT company, and having the right talent onboard is crucial for staying competitive. By offering free evaluations and aligning visions with clients, Vasyl ensures that LaSoft delivers efficient, effective, and affordable technology solutions.","sameAs":["https:\/\/www.linkedin.com\/in\/vasyl-varkholyak\/"],"url":"https:\/\/lasoft.org\/blog\/author\/vasyl-varkholyak\/"}]}},"_links":{"self":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/comments?post=488"}],"version-history":[{"count":20,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/488\/revisions"}],"predecessor-version":[{"id":1580,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/488\/revisions\/1580"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/media\/532"}],"wp:attachment":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/media?parent=488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/categories?post=488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/tags?post=488"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/coauthors?post=488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}