
Explore frontend architecture and patterns through hands-on practice with vanilla JavaScript. Learn component-based, single-page application, state management, micro frontends, serverless, progressive web apps, and server-side rendering via repo branches.
Explore the high level structure of software architecture, including components, connections, constraints, and architectural patterns, and see how frontend architecture achieves scalable, maintainable, and reliable applications.
Master frontend architecture by organizing HTML, CSS, and JavaScript into reusable components, and by managing connections and constraints with back-end and third-party services to build scalable, reliable, and fast interfaces.
Explore a vanilla JavaScript project that demonstrates component-based architecture to centralize UI components and reuse them across pages, reducing duplication when styling headers and elements.
Discover component-based pattern as reusable Lego-like building blocks that enable encapsulation, composability, independence, and easy maintenance. Enforce clear boundaries and avoid tangled dependencies to support scalability and reuse across projects.
Learn to componentize a header by creating a reusable header function in a components folder, exporting it, and using it across the home and detail pages for consistent styling.
Identify common issues in component-based patterns, including tight coupling and scalability challenges. Learn mitigation strategies such as enforcing single responsibility, improving reusability by splitting large components for resilience and efficiency.
Learn how a single page application architecture keeps the header component on the page while the content updates, reducing repeated asset requests and improving performance on slow connections.
Explore how single-page applications update content asynchronously with Ajax and client-side routing. Compare to traditional websites, experiencing faster interactions and reduced server load while noting initial loading and SEO considerations.
Build a simple spa using Vit bundling, loading assets upfront and data on navigation, with a shared header and a route-driven view that supports lazy loading.
Explore common issues in single-page app architectures, including performance and SEO challenges. Learn mitigations like lazy loading, resource caching, and server-side rendering to improve initial load times and SEO indexing.
Identify the application state and illustrate the problems of sharing it across pages. Introduce centralized storage as the foundation of state management architecture.
Define a state management pattern in web development and explain how to manage and synchronize data across components; compare library options and a vanilla JavaScript approach.
Build a simple state management solution by defining data, actions, and getters, then export a state manager and use it across the app to maintain a consistent counter.
Leverage robust state management to avoid performance bottlenecks, using memoization, profiling, centralized libraries, immutability, and testing strategies for state-related functionalities.
Explore the challenges of monolithic frontend architectures across home, tracker, and shipments tabs, and learn how micro-frontend patterns and lazy loading improve modularity and deployment speed.
Explore micro-frontend architecture, a modular approach that splits a web app into independent, reusable micro-frontends with separate source control, build and test pipelines, merged into a seamless user experience.
Explore building a simple micro-frontend architecture by splitting a three-screen app into reusable components, routes, and shared state, and implementing a container with webpack module federation.
Split a shipments page into its own micro-frontend and expose it via module federation, then create a tracker micro-frontend, connect them through a container, and run each on separate ports.
Navigate common microfrontend challenges, from inter-frontend communication and cart synchronization to shared services and a centralized design system, with event buses, lazy loading, caching, testing, and runtime versus build-time integration.
Illustrate a music instruments e-commerce site scenario to demonstrate client-server architecture and the challenges of traffic spikes, contrasting traditional servers with serverless solutions for reliability and reduced infrastructure costs.
Explore how serverless architecture abstracts server management, uses event-driven, stateless functions, and auto-scales with pay-as-you-go pricing to handle traffic spikes efficiently.
Learn to build a simple serverless front-end application by connecting to Firebase Firestore, modeling products and instruments, and fetching data with a get products method.
Explore the pros and cons of serverless architecture with firebase in frontend architecture and patterns bootcamp, including limited customization, ecosystem lock-in, performance at scale, and security considerations.
Discover how progressive web apps tackle slow or offline connections by caching assets, enabling fast offline navigation and installable, app-like experiences on mobile devices.
Progressive web apps blend web technologies with app-like features. They can be installed, run offline, access device features via the browser engine and service workers, and resemble platform specific apps.
Learn to build a simple PWA with vanilla JavaScript by setting up a node express server, creating manifest.json and service worker, and enabling offline caching of assets.
Learn best practices for progressive web apps, including feature detection, progressive enhancement, offline support with service workers, responsive design, and app-like experiences with unique URLs and OS integration.
Analyze how server side rendering improves indexing with a pre-rendered HTML document. Compare it to client side rendering and its crawl limitations for better SEO.
Explore server-side rendering and how pre-rendered HTML on the server speeds up initial loads, improves SEO, and helps web crawlers index content.
Learn server-side rendering with vanilla JavaScript and Express by building a simple SSR app that fetches Pikachu data from the poke API, comparing SSR with client-side rendering.
Identify common server side rendering challenges and mitigation strategies, including caching, frameworks like Next.js and Nuxt.js, hydration, server side data fetching for SEO, performance optimization, state hydration, and session management.
Thank you for joining this frontend architecture and patterns bootcamp. Access attachments, docs, manuals, and articles to deepen your understanding of web patterns and scalable architectures.
Frontend Architecture and Patterns bootcamp
This comprehensive course covers a wide range of software architecture topics, including component-based patterns, single-page application architecture, state management pattern, microfrontend architecture, serverless architecture, progressive web apps (PWAs), and server-side rendering (SSR). With this knowledge, you'll be ready to design and develop maintanable, scalable and faster frontend applications, improving your user's experience! And better: you'll learn practically! For each module of this course, I have prepared a specific repository, where you'll be able to play with and apply all the knowledge I teach you!
What You'll Learn:
For each of the topics of this course, we are going to talk about:
A generic software development problem. From "project takes to long to run the pipeline", to "many places should be changed because of one changing requirement". I'll give you a link to a repository with this problem, and you'll be able to solve this problem by yourself
An architecture or pattern that comes to solve this problem
How do we implement this architecture or pattern (using only Vanilla Javascript). For all the modules, I recommend you to play with the repository, before watch this "solving class"
Good and bad practices in this architecture/pattern implementation, tips and common issues
Why Enroll:
-> Practical Approach: You'll not just watch theorical classes about architectures and patterns. You'll have real world issues, from software development world, and at the same time, you'll be able to learn how to fix these problems.
-> Know-how: You'll have a portfolio of tools you can use to solve the most common software developments world issues. What should you do to rank your page well in Google, for example? Here you'll have one of the tools to solve this problem, and this is just one!
-> Improve the quality of your products: Do you want to keep writing shitty code forever? Or do you want to write scalable, maintainable and faster frontend applications? Improve your user's experience, constructing a tools box of techniques to serve quality platforms. This tools box construction starts here!
Who Is This For:
Web developers aiming to improve the overall performance of their websites
Frontend and full stack developers aiming to create silky-smooth user interfaces
Developers that want to learn how to write quality code, applying the most actual architectures and patterns in the market
Enroll now and let's redefine web together!