<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Paul Brady's blog]]></title><description><![CDATA[Check out Paul Brady's blog which covers all things web dev related including JavaScript, CSS, React and more!]]></description><link>http://github.com/dylang/node-rss</link><generator>GatsbyJS</generator><lastBuildDate>Wed, 07 Jan 2026 12:02:08 GMT</lastBuildDate><language><![CDATA[en]]></language><item><title><![CDATA[Building Blocks of a Full Stack Web-App]]></title><description><![CDATA[As a beginner developer, it can be hard to figure out what technologies you need to learn and how to fit it all together to produce a production ready full stack web-app. What exactly is an API and h…]]></description><link>https://paulbrady.dev/blog/building-blocks-of-a-full-stack-web-app/</link><guid isPermaLink="false">https://paulbrady.dev/blog/building-blocks-of-a-full-stack-web-app/</guid><pubDate>Invalid Date</pubDate><content:encoded>&lt;div style=&quot;margin-top: 50px; font-style: italic;&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://paulbrady.dev/blog/building-blocks-of-a-full-stack-web-app/&quot;&gt;View the original post&lt;/a&gt;.&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As a beginner developer, it can be hard to figure out what technologies you need to learn and how to fit it all together to produce a production ready full stack web-app.&lt;/p&gt;&lt;p&gt;What exactly is an API and how does it relate to the frontend? What languages and frameworks should I be using? What resources should I use to learn all this stuff?&lt;/p&gt;&lt;p&gt;These are the types of questions I’ll be answering down below.&lt;/p&gt;&lt;h2 id=&quot;what-is-a-full-stack-web-app&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#what-is-a-full-stack-web-app&quot; aria-label=&quot;what is a full stack web app permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;What is a full stack web-app?&lt;/h2&gt;&lt;p&gt;Put simply, a full stack web-app is an application built with both a frontend (client side) and a backend (server side).&lt;/p&gt;&lt;p&gt;The frontend is the visible part of the application which the user can see and interact with in the browser. It’s responsible for your users experience and should run smoothly, provide the expected information and work without visible bugs or problems.&lt;/p&gt;&lt;p&gt;The backend refers to the server side of the application that can’t be accessed by the user. It’s responsible for any complex logic, making queries for data from a database or an external API and securely dealing with sensitive information (such as emails and passwords) away from the view of the user.&lt;/p&gt;&lt;p&gt;The frontend and backend will frequently communicate with each other as the user navigates the app. For example, an E-Commerce store might ask the backend for a list of products and all relevant information such as prices and reviews etc. The backend would then query the database to get the required data then send it back to the frontend so that up to date and relevant information is provided to the user.&lt;/p&gt;&lt;p&gt;Examples of full stack web applications:&lt;/p&gt;&lt;div items=&quot;Twitter,Amazon,Spotify,YouTube,Trello,Figma&quot; columns=&quot;3&quot;&gt;&lt;/div&gt;&lt;h2 id=&quot;frontend&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#frontend&quot; aria-label=&quot;frontend permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Frontend&lt;/h2&gt;&lt;p&gt;Frontend development refers to the “client-side” where the main priority is providing the user with the best possible experience and all required information.&lt;/p&gt;&lt;p&gt;These are the 3 components to building the frontend:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h3 id=&quot;html--css&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#html--css&quot; aria-label=&quot;html  css permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;HTML &amp;amp; CSS&lt;/h3&gt;&lt;p&gt;HTML is the foundation of any web page and is where all frontend development starts.&lt;/p&gt;&lt;p&gt;It is a markup language which uses tags to identify different types of content and the purposes they each serve to the page.&lt;/p&gt;&lt;p&gt;For example, below is a basic numbered list:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;List Item 1&lt;/li&gt;&lt;li&gt;List Item 2&lt;/li&gt;&lt;li&gt;List Item 3&lt;/li&gt;&lt;li&gt;List Item 4&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And below is the HTML code responsible for that list. The &lt;code class=&quot;language-text&quot;&gt;ol&lt;/code&gt; tag represents an ordered (numbered) list, the &lt;code class=&quot;language-text&quot;&gt;li&lt;/code&gt; tag respresents a list item.&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;List Item 2&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;List Item 3&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;List Item 4&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;List Item 1&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;CSS is responsible for giving a page it’s entire style including layouts, colors, fonts and more. Not only that, if you want to change the style on different screen sizes (responsiveness), CSS is responsible for that too.&lt;/p&gt;&lt;p&gt;Basically, you can think of CSS as a list of rules for how the different HTML elements in a page should look.&lt;/p&gt;&lt;p&gt;Check out the list below which is the same one from above but with CSS applied.&lt;/p&gt;&lt;ol style=&quot;color:#0f7cd0;font-weight:800;font-style:italic&quot;&gt;&lt;li value=&quot;1&quot;&gt;List Item 1&lt;/li&gt;&lt;li value=&quot;2&quot;&gt;List Item 2&lt;/li&gt;&lt;li value=&quot;3&quot;&gt;List Item 3&lt;/li&gt;&lt;li value=&quot;4&quot;&gt;List Item 4&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And below is the CSS responsible for the styling changes. You can see that 3 different rules are applied to each &lt;code class=&quot;language-text&quot;&gt;li&lt;/code&gt; list item.&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;li&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #0f7cd0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 800&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;font-style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; italic&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;css-preprocessors&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#css-preprocessors&quot; aria-label=&quot;css preprocessors permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;CSS Preprocessors&lt;/h4&gt;&lt;p&gt;A CSS preprocessor is a program that lets you generate CSS using its own unique syntax.&lt;/p&gt;&lt;p&gt;There are many preprocessors to choose from and each add different features that don’t exist in pure CSS such as mixins, nesting, and functions. They are especially useful for large full stack web-apps since they offer more flexibility and maintainability.&lt;/p&gt;&lt;p&gt;Some of the most popular ones today:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;css-frameworks&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#css-frameworks&quot; aria-label=&quot;css frameworks permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;CSS Frameworks&lt;/h4&gt;&lt;p&gt;CSS frameworks provide a basic structure and generic functionality for styling a web app and deals with common and repetitive problems.&lt;/p&gt;&lt;p&gt;They’re extremely useful for quickly building a frontend without having to start from scratch and can usually be overridden with your own CSS at any time.&lt;/p&gt;&lt;p&gt;Some of the most popular ones today:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]&quot; columns=&quot;2&quot;&gt;&lt;/div&gt;&lt;h3 id=&quot;javascript&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#javascript&quot; aria-label=&quot;javascript permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;JavaScript&lt;/h3&gt;&lt;p&gt;JavaScript is at the heart of frontend development and is what’s used to modify content and make the web app behave differently depending on a user’s actions.&lt;/p&gt;&lt;p&gt;Common uses for JavaScript include confirmation boxes, buttons and handling form inputs.&lt;/p&gt;&lt;p&gt;For example, JavaScript can be used to make an alert popup when a button is pressed.&lt;/p&gt;&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; button &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;#x27;button&amp;#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

button&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;onclick&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;alert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;#x27;Hi! This is an alert!&amp;#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h3 id=&quot;frameworks&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#frameworks&quot; aria-label=&quot;frameworks permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Frameworks&lt;/h3&gt;&lt;p&gt;When building a full stack web-app, it’s likely that you’re going to want to use a JavaScript framework (or library).&lt;/p&gt;&lt;p&gt;A JavaScript framework provides developers with a collection of pre-written code that solves many of the recurring problems that consistently pop up in frontend development. Although more complex than any other area of frontend development, it’s worth learning to use at least one since it makes life as a full-stack developer much easier.&lt;/p&gt;&lt;p&gt;You will often see the words framework and library used interchangeably but there are slight differences. Libraries (React) offer code that you can plug into your web app when needed whereas frameworks (Angular) provide a more rigid structure (or framework) for you to build your frontend on.&lt;/p&gt;&lt;p&gt;There are many frameworks and libraries with different pros and cons to each. Right now the most popular frameworks are React, Angular and Vue.&lt;/p&gt;&lt;h4 id=&quot;react&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#react&quot; aria-label=&quot;react permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;React&lt;/h4&gt;&lt;p&gt;Created and maintained by Facebook, React is by far the most popular frontend framework.&lt;/p&gt;&lt;p&gt;React encourages modularity and scalability in your frontend making it perfect for web-apps of all sizes.&lt;/p&gt;&lt;p&gt;Features include:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;angular&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#angular&quot; aria-label=&quot;angular permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Angular&lt;/h4&gt;&lt;p&gt;Angular is an opinionated framework released by Google in 2016 in answer to the massive success of React in 2016.&lt;/p&gt;&lt;p&gt;It was built to target web-apps that require a more rigid and structured approach on the frontend and is suitable for large applications. This is especially the case due to it’s suitability for using TypeScript.&lt;/p&gt;&lt;p&gt;Features include:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;vue&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#vue&quot; aria-label=&quot;vue permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Vue&lt;/h4&gt;&lt;p&gt;Vue was created with the aim of combining the best of Angular (the view layer) and the best of React (the virtual DOM) and it’s fair to say that they succeeded.&lt;/p&gt;&lt;p&gt;It offers a nice middle ground between the two with the option of a simple view layer like React and the option to build a full end-to-end framework with routing and data-binding like Angular.&lt;/p&gt;&lt;p&gt;Features include:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Although not as popular as the top 3 frameworks right now, it’s also worth checking out other rising frameworks such as Svelte and Ember.&lt;/p&gt;&lt;h2 id=&quot;backend&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#backend&quot; aria-label=&quot;backend permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Backend&lt;/h2&gt;&lt;p&gt;The backend is the foundations that the rest of the app is built on.&lt;/p&gt;&lt;p&gt;These are the 4 main components to the backend:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Although you can build the frontend and backend in any order (or at the same time), I think it makes sense to start building out the backend first. It’s much easier to develop the frontend when you’ve already planned out what data you’re going to need and how you’re going to access that data.&lt;/p&gt;&lt;h3 id=&quot;api&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#api&quot; aria-label=&quot;api permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;API&lt;/h3&gt;&lt;p&gt;API stands for &lt;em&gt;Application Programming Interface&lt;/em&gt; and is the method any application interacts (interfaces) with the backend.&lt;/p&gt;&lt;p&gt;The most widely used type of API is a RESTful API which basically just means that there’s a set of standardized rules about how communication with the backend should take place.&lt;/p&gt;&lt;p&gt;In a web-app, the frontend would make HTTP requests to the backend through specific API routes (urls) and the backend would return a response with data.&lt;/p&gt;&lt;p&gt;There are 4 parts to a RESTful API:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Learn more about API’s with &lt;a href=&quot;https://www.youtube.com/watch?v=GZvSYJDk-us4&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;this&lt;/a&gt; great video by Free Code Camp.&lt;/p&gt;&lt;h3 id=&quot;languages--frameworks&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#languages--frameworks&quot; aria-label=&quot;languages  frameworks permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Languages &amp;amp; Frameworks&lt;/h3&gt;&lt;p&gt;Since the backend runs on a server (instead of in the browser), it can be built using a variety of languages and frameworks.&lt;/p&gt;&lt;p&gt;Learn about some of the most popular backend frameworks below.&lt;/p&gt;&lt;h4 id=&quot;javascript--nodejs&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#javascript--nodejs&quot; aria-label=&quot;javascript  nodejs permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;JavaScript &amp;amp; Node.js&lt;/h4&gt;&lt;p&gt;JavaScript can be used for both frontend and backend thanks to Node.js which makes it possible to run JavaScript code outside the browser.&lt;/p&gt;&lt;p&gt;Node.js is increasingly a very popular choice for the backend, especially for frontend devs who are already experienced with JavaScript. It’s extremely well supported, is easy to learn and use, has many useful NPM packages and allows you to make a full stack web-app in the same development environment.&lt;/p&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;php--laravel&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#php--laravel&quot; aria-label=&quot;php  laravel permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;PHP &amp;amp; Laravel&lt;/h4&gt;&lt;p&gt;PHP is a server-side scripting language that was designed specifically for developing web-apps.&lt;/p&gt;&lt;p&gt;Laravel is a PHP framework which makes development much easier through many built in features. These include a modular packaging system, a complete authentication system, automatic testing and more.&lt;/p&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;c--aspnet&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#c--aspnet&quot; aria-label=&quot;c  aspnet permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;C# &amp;amp; ASP.NET&lt;/h4&gt;&lt;p&gt;C# is a simple and modern strongly typed object oriented programming language developed by Microsoft.&lt;/p&gt;&lt;p&gt;When used together with the ASP.NET Core framework, you’re able to build dynamic and secure web-apps with a complex and organized backend. It also has the NuGet package system which is easy to use and is full of useful packages.&lt;/p&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;python--django&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#python--django&quot; aria-label=&quot;python  django permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Python &amp;amp; Django&lt;/h4&gt;&lt;p&gt;Python is one of the most popular languages due to it being easy to learn, well supported and efficient.&lt;/p&gt;&lt;p&gt;Django makes it simple to build a web-app which is versatile, scalable and secure.&lt;/p&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;As well as these languages and frameworks, you can also use Golang, Java, Ruby and C++.&lt;/p&gt;&lt;h3 id=&quot;databases&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#databases&quot; aria-label=&quot;databases permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Databases&lt;/h3&gt;&lt;p&gt;Databases are the brains of the backend and is the main component that makes a web-app dynamic.&lt;/p&gt;&lt;p&gt;This is where all the data is stored and is where data is retrieved from or saved to with every request to the backend. Using the E-Commerce store example, every product and all of it’s details will come from a database as will the users account and order information.&lt;/p&gt;&lt;p&gt;There are two main types of databases: SQL &amp;amp; NoSQL (or relational and non-relational) databases.&lt;/p&gt;&lt;p&gt;The difference is in how they’re built, the type of information they store, and how they store it.&lt;/p&gt;&lt;h4 id=&quot;sql-relational&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#sql-relational&quot; aria-label=&quot;sql relational permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;SQL (Relational)&lt;/h4&gt;&lt;p&gt;SQL databases use SQL (structured query language) to query for data and are structured in rigid tables, like phone books that store phone numbers and addresses.&lt;/p&gt;&lt;p&gt;When to use an SQL database:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Popular SQL databases:&lt;/p&gt;&lt;div columns=&quot;3&quot; items=&quot;MySQL,Oracle,PostgreSQL,MariaDB,Microsoft Azure,MS SQL Server&quot;&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h4 id=&quot;nosql-non-relational&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#nosql-non-relational&quot; aria-label=&quot;nosql non relational permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;NoSQL (Non-Relational)&lt;/h4&gt;&lt;p&gt;NoSQL databases use JSON documents to store data with key-value pairs. Seperate documents will hold specific data like a users account details, product review information or profile information.&lt;/p&gt;&lt;p&gt;When to use a NoSQL database:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Popular NoSQL databases:&lt;/p&gt;&lt;div columns=&quot;3&quot; items=&quot;MongoDB,Firebase,Redis,Amazon DynamoDB,Cassandra,Couchbase&quot;&gt;&lt;/div&gt;&lt;p&gt;Recommended learning resources:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;h2 id=&quot;where-should-i-go-from-here&quot; style=&quot;position:relative&quot;&gt;&lt;a href=&quot;#where-should-i-go-from-here&quot; aria-label=&quot;where should i go from here permalink&quot; class=&quot;header-autolink before&quot;&gt;&lt;span&gt;i&lt;/span&gt;&lt;/a&gt;Where should I go from here?&lt;/h2&gt;&lt;p&gt;You now know everything you need to learn in order to build a full stack web-app from scratch.&lt;/p&gt;&lt;p&gt;If you want some more direction, here are some great learning resources which use a variety of technologies and languages:&lt;/p&gt;&lt;div items=&quot;[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]&quot;&gt;&lt;/div&gt;&lt;p&gt;Be sure to also check out &lt;a href=&quot;https://github.com/florinpop17/app-ideas&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;this&lt;/a&gt; list of fullstack web-app ideas if you’re struggling to get an idea of what to build.&lt;/p&gt;</content:encoded></item></channel></rss>