Logo
    Search

    Potluck - JS × Web Components × Security × They took our jobs!

    enSeptember 26, 2018

    Podcast Summary

    • Potluck episode with listener questions and weekend updatesScott and Wes answered listener queries, shared weekend experiences, and announced their live show at JAMstack Conf, emphasizing audience engagement.

      Scott and Wes from the Syntax podcast discussed their potluck episode where they answer listener questions, covering various topics in web development. They mentioned their weekends, with Scott dealing with a tailbone injury and Wes attending Art Crawl in Hamilton. They also announced their upcoming live show at JAMstack Conf, sponsored by Sanity and Mlab. Despite a busy schedule, they encouraged listeners to join them in San Francisco for the event. The episode showcased the dynamic nature of the podcast and the hosts' willingness to engage with their audience.

    • Building Cross-Platform Mobile Apps with FlutterFlutter, developed by Google, lets developers build native apps using the Flutter SDK and Dart language, converting code to native for iOS and Android. While Dart has limitations, Flutter is seen as friendlier than React Native. Google's past project drops raise concerns for its future as an open-source project.

      Flutter, developed by Google, is a new player in the market for building cross-platform mobile applications. It allows developers to build native apps using the Flutter SDK and the Dart programming language. Flutter converts the code to native code for both iOS and Android platforms. While Dart was Google's attempt to replace JavaScript several years ago, it didn't gain much traction. Flutter is seen as a more friendly environment for building cross-platform applications compared to React Native. However, the Dart barrier to entry might limit its adoption, especially in JavaScript-heavy circles. NativeScript, another tool for building native apps using web technologies, might be a closer competitor to React Native than Flutter. Google's history of dropping projects might be a concern for the future of Flutter as an open-source project. Overall, Flutter looks promising, but it remains to be seen if it will take React Native's seat as the go-to solution for building cross-platform mobile applications.

    • Securing Forms on Static and Dynamic SitesUse both client-side and server-side validation, limit requests per IP, implement two-stage opt-ins, use CSRF tokens, and employ CAPTCHA to secure forms and protect against malicious activity.

      Firebase, a Google-backed mobile development platform, is gaining popularity and integrating features from shuttered services like Fabric. While client-side validation is useful for user experience, it's essential to have server-side validation for form security. Alan from Falmouth asked about securing static and dynamic sites, specifically regarding forms. The answer is to use both client-side and server-side validation, with services like Netlify offering form solutions. To enhance security, limit requests per IP address, implement two-stage opt-ins for email lists, use CSRF tokens, and employ CAPTCHA. These measures help protect against malicious activity, ensuring a safer user experience.

    • Protecting web apps through obfuscation and CloudflareObfuscating code and using Cloudflare can enhance web app security. Hide platform identity, exploit known vulnerabilities, and defend against DDoS attacks with Cloudflare's free tier.

      When it comes to building and securing web applications, obfuscation and using additional tools like Cloudflare can help protect against potential attacks. Hiding the identity of a platform like Drupal or WordPress can make it more difficult for attackers to exploit known vulnerabilities. Cloudflare acts as a middleman between a website's DNS and server, providing added security against DDoS attacks and offering a free, excellent tier of service. When selecting a stack for building new web apps, the choice depends on the specific requirements. For simpler, static sites, Gatsby is a fast and popular option. For more dynamic sites with user accounts and database needs, a stack like Meteor with Apollo and React, using MongoDB, offers a quick setup and essential features. In recent years, Next.js has become a go-to choice for building React applications due to its ease of use and immediate setup.

    • Using local tools for development and cloud-based solutions for productionThe speaker uses local tools for simple React and Express projects but prefers cloud-based solutions like MongoDB Atlas for production due to benefits like security, performance, and scalability.

      For developing applications using React and Express, the speaker prefers to use local tools for simple projects and cloud-based solutions like MongoDB Atlas (Mlab) for production. The speaker mentioned the ease of setup and use of local tools like DiskDB, but also highlighted the benefits of using cloud-based databases for production, such as security, performance, and scalability. The speaker emphasized their comfort with Express and the availability of middlewares for it. They also mentioned the convenience of Mlab for getting started with MongoDB in development without dealing with local setup complexities. Overall, the speaker's approach revolves around using React and Express with local tools for development and cloud-based solutions for production.

    • 100 Days of Code: Commitment, Accountability, and CommunityImprove coding skills through daily practice and community engagement with the 100 Days of Code challenge. Use MongoDB Atlas for hosting databases and consider Next.js for server-side rendering, Gatsby for static sites with rich data, or Vanilla React for core UI building.

      The 100 Days of Code challenge is an excellent initiative for individuals looking to improve their coding skills through consistent practice and community engagement. The challenge, which involves coding for an hour every day for 100 consecutive days and tweeting about progress with the #100DaysOfCode hashtag, promotes the importance of commitment, accountability, and community in learning a new skill. MongoDB Atlas, a sponsor of the podcast, offers a telemetry tool that provides real-time and historical data about databases and underlying VMs, making it an ideal choice for hosting MongoDB databases. Regarding the difference between Next.js, Gatsby, and Vanilla React, these frameworks serve distinct purposes. Vanilla React is the core JavaScript library for building user interfaces, while Next.js is a React framework that enables server-side rendering and static site generation. Gatsby, on the other hand, is a static site generator built on top of React that offers additional features like data prefetching and GraphQL support. The choice between these frameworks depends on the specific use case and requirements. For instance, Next.js is a good option for building server-side rendered React applications, while Gatsby is suitable for building static sites with rich data and GraphQL integration. Ultimately, understanding the unique features and strengths of each framework will help developers make informed decisions about which one to use for their projects.

    • Choosing Between Vanilla React, Next.js, and GatsbyNext.js is best for dynamic sites with frequent content updates, while Gatsby is ideal for static sites with blazing fast performance and GraphQL integration.

      When it comes to choosing between Vanilla React, Next.js, and Gatsby for building web applications, each option has its strengths. Vanilla React using Create React App is a great starting point for front-end development, but it lacks built-in features like routing and server-side rendering. Next.js, on the other hand, offers these features and is ideal for dynamic sites that require frequent content updates. Gatsby, a static site generator, is perfect for more static sites that don't change often. It offers blazing fast performance and GraphQL integration. Both Next.js and Gatsby ship React, allowing developers to write logic in the browser. While Next.js is a popular choice due to its ease of use and server-side rendering capabilities, Gatsby's static site generation and community of adapters make it a strong contender. Ultimately, the choice depends on the specific needs of the project. For dynamic sites with frequently changing content, Next.js is the way to go. For more static sites, Gatsby's speed and simplicity make it an attractive option.

    • Gatsby's GitHub integration for free swagGatsby offers free swag to GitHub users who've committed to the platform, ensuring active contributors receive rewards. WebSockets enable real-time, bidirectional communication between clients and servers for low latency applications.

      Gatsby, an open-source platform for building websites, offers a unique integration with GitHub for accessing free swag. This integration checks if you've committed to Gatsby, ensuring that only active contributors receive the rewards. The checkout process for the Gatsby store is handled by Shopify. WebSockets, another topic discussed, are a technology that allows for real-time, bidirectional communication between a client and a server over a single, long-lived connection. Unlike traditional REST APIs where requests are sent and responses received, WebSockets enable instant data transfer. This technology is beneficial for applications requiring low latency and real-time data processing, such as chat rooms or collaborative drawing tools. WebSockets gained popularity around the same time as Node.js, making it a popular choice for Node developers.

    • WebSockets for real-time communicationWebSockets enable instant data exchange between clients and servers, powering real-time apps like chat and drawing tools. Firebase uses it, and Syntax.fm covers it in episode 50. Sanity.io simplifies content management with a back-end solution for APIs and customizable content types.

      WebSockets enable real-time communication between a client and a server, making it an ideal solution for applications requiring instant data exchange. This technology powers various features, including real-time drawing applications and chat apps. Firebase, for instance, uses WebSockets to provide instant updates. For those interested in progressive web apps, episode 50 on Syntax.fm covers the topic extensively. As for managing content, Sanity.io offers a back-end solution that simplifies the process of setting up an API and allows customization of content types and inputs. It's open-source, real-time, and a joy to use.

    • Exploring Sanity: A User-Friendly Platform for Building Secure Web AppsSanity offers a user-friendly platform for building web apps, with a query language called Groq, CLI import for data, and secure integrations with services like Stripe and Snipcart.

      Sanity is a powerful and user-friendly platform for building web applications, especially for those new to backend development. It offers a query language called Groq, which allows for various types of queries, and even has a WinApp React component for easy integration. Sanity also offers CLI import for data from external sources. For those concerned about security, especially when handling sensitive information and payments, using services like Stripe and Snipcart can help ensure PCI compliance and ease the burden of securing the site. The platform also encourages using pre-existing and vetted tools instead of writing everything from scratch. Jared's question, expressing concern for creating a secure web app, highlights the importance of prioritizing security and using trusted services to make the process easier.

    • Specialized services for data storage and handling tasksStoring only necessary data and using JavaScript generators for specific scenarios, such as managing lines in a grocery store or fetching multiple things in sequence, can be beneficial. However, async await offers a more straightforward approach for most tasks, and understanding the differences between sync and async await is crucial for effective coding.

      There are certain data storage and handling tasks that are best left to specialized services due to their expertise and adherence to various data protection regulations. For instance, storing only necessary invoice information is recommended, and the use of JavaScript generators, which allow the return of multiple values from a function, can be useful in specific scenarios, such as managing lines in a grocery store or fetching multiple things in sequence. However, with the advent of async await, the use of generators has become less common as async await provides a more straightforward approach to handling such tasks. It's important to stay informed about the specific use cases where generators may still be advantageous, as they offer the ability to pause a function and return multiple values. Additionally, understanding the differences between sync await and async await, and how they impact generator usage, is crucial for effective coding.

    • The Rise of Web Components and their FlexibilityWeb components offer flexibility for developers to create custom HTML elements, with tools like Svelte making them more accessible and efficient. Despite the need for polyfills, their popularity is increasing due to their wider applicability in production sites like YouTube.

      Web components, which allow developers to create their own HTML elements and are not tied to specific frameworks, are on the rise and are here to stay. Although they require the use of a polyfill like Polymer for wider browser compatibility, their popularity is increasing due to their flexibility and the fact that they are used in production on sites like YouTube. Tools like Svelte, which magically compiles down to JavaScript, are also making web components more accessible and efficient. Regarding the question about designers replacing React developers with tools like Framer X, it is unlikely to happen soon as Framer X does not output React components but rather allows designers to create components in React for use in their designs, making React developers more essential. The debate between different technologies and their applications continues, and it is essential for teams to evaluate their options carefully to make the best decision for their projects.

    • The Role of Developers in UI Design is EvolvingDevelopers remain essential in UI design, despite automation, as their creativity and problem-solving skills are crucial for effective user experiences.

      The role of developers in designing and building user interfaces is evolving, and tools like Framer X make it clear that developers remain essential, not obsolete. While these tools may automate certain tasks, they don't replace the need for human creativity and problem-solving. The photography industry serves as a relevant analogy – as technology advances, the job of a photographer doesn't disappear, but it changes. Similarly, the job of a developer will continue to evolve, with new tools and technologies emerging to streamline certain tasks. However, the importance of developers' expertise and creativity will remain crucial in creating effective and engaging user experiences. Ultimately, the industry will continue to change, and it's essential for professionals to stay adaptable and open to new tools and approaches.

    • Advancement of tools and industry challenges shape developer rolesDevelopers adapt to advanced tools and industry challenges, finding joy in problem-solving and growth.

      Technology tools like Wix and Squarespace have significantly improved, making it easier for individuals to build simple websites and enabling developers to create more complex projects. This progression empowers professionals and allows them to tackle increasingly complex tasks. However, as tools advance, there may be a need for specialists to handle unique requirements that cannot be met through pre-built solutions. Regarding the industry, the speakers shared that despite the challenges, they have never considered quitting due to technical difficulties. Instead, they find joy in solving problems and overcoming obstacles. The occasional frustration is a part of the profession and serves as motivation to continue learning and growing. An intriguing anecdote was shared about a football player, Vontae Davis, who retired mid-game due to his team's poor performance. This extreme reaction stands in contrast to the resilience of developers, who face similar challenges but continue to push forward. In summary, the advancement of tools and the inherent challenges of the industry have shaped the roles of developers, pushing them to adapt and specialize. Despite the occasional frustrations, the sense of accomplishment and problem-solving keeps professionals engaged and motivated.

    • NFL goes global and lawn care goes electricThe NFL is expanding internationally, while the lawn care industry shifts towards battery-powered tools for convenience, quiet operation, and environmental benefits

      The NFL is expanding its reach beyond the US borders by hosting games in cities like Toronto and London. This outreach includes the Buffalo Bills, who play an annual game in Toronto, aiming to bring the first Canadian NFL team to life. Meanwhile, in the world of lawn care, the shift towards battery-powered tools, such as those from Ego, is proving to be a game changer. These tools, which include lawnmowers, leaf blowers, and weed trimmers, offer significant power, quiet operation, and the absence of gas fumes. The speaker's positive experience with Ego's products has led him to replace his old gas-powered tools and recommend them to others. This transition to electric appliances is not only convenient but also environmentally friendly, making it an exciting development in various industries.

    • Discovering the Power of Electric Motors: Chainsaws, Leaf Blowers, and DIY ProjectsExplore the benefits of electric motors for powerful tools and DIY projects, learn from honest reviews, and access comprehensive educational resources through LevelUp Pro.

      Electric motors provide impressive torque for tools like chainsaws and leaf blowers, offering potential advantages in power and performance. A review on the AVE YouTube channel highlighted the superiority of an electric leaf blower compared to gas-powered alternatives. Another YouTube channel, B is for Build, showcases an ex-software engineer's journey into rebuilding cars, offering insights into problem-solving and DIY projects. The speaker shared his enthusiasm for the AVE reviewer's honest and detailed analysis of various power tools and appliances. He also expressed his admiration for the B is for Build channel, which documents the process of swapping a modern BMW M5 engine into a 240z, showcasing creativity and determination. Additionally, the speaker promoted LevelUp Pro, offering a yearly subscription with a 25% discount and access to over 30 premium series on various topics, including React testing, Gatsby, and modern CSS. With new content planned for the upcoming year, LevelUp Pro aims to provide comprehensive learning resources for individuals interested in various tech-related subjects. Overall, the discussion emphasized the value of honest reviews, the potential of electric motors, and the inspiration found in DIY projects and educational resources.

    • Launch of 'Testing Library for React' course at advancedreact.comA passionate developer is launching a comprehensive React.js course, 'Testing Library for React', offering 16.5 hours of content to help developers master testing in React and excel in the industry.

      A passionate developer, who has been working on it for almost a year full-time, is about to launch an advanced React.js course named "Testing Library for React" at advancedreact.com. The course, which includes 11 hours of regular content and 5.5 hours of testing alone, is designed to help developers master testing in React and reach the top of the industry. The developer is excited about the launch and encourages listeners to visit the website for early access. The course is expected to be a significant undertaking due to its comprehensive nature. Listeners are invited to submit questions for the next Syntax.fm potluck episode. The show is released every four episodes and appreciates listener questions, which make the shows more enjoyable.

    Recent Episodes from Syntax - Tasty Web Development Treats

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    Today, Scott and Wes dive into cloud storage solutions—why you might need them, how they use them, and what you need to know about the big players, fees, and more.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    9: Web Accessibility for JavaScript Components and Custom Elements

    9: Web Accessibility for JavaScript Components and Custom Elements

    In Episode 9, ‘Web Accessibility for JavaScript Components and Custom Elements’. Steve Faulkner (@stevefaulkner) from The Paciello Group and Marcy Sutton (@marcysutton) from Substantial discuss the lack of focus in product development today in building accessible applications & services. Many times web accessibility becomes an afterthought in creating a software product, having little prioritization from the business side until it is a problem. Retrofitting such an important part of our development can make web accessibility seem more like a chore with low ROI for the the time taken to implement it. It can be easy if developers know how to do it and hardly any work when it is successfully incorporated into a development process and it’s valued at the business level.

     

    With recent advances in the past few years in JavaScript MV* frameworks like Angular, React, & Ember we are seeing the need for web accessibility more and more. Heavy JavaScript applications tend to provide little or wrong functionality for things we take for granted like keyboard access. Examples on modifying these to better attend to user experience traditionally meant lots of overhead in development by forking the framework and updating it constantly. Based on the resources developers typically find in online searches & Roles the lack of good developer examples, WAI ARIA & even simple accessibility is easy to misunderstand.

     

    Many newer client side frameworks focus on componentization of HTML elements. Angular Directives, Ember Components, React Classes and Web Components. Componentization gives developers a chance to build much faster and easier Web Accessibility using various tools like WAI ARIA roles at a much more focused & reusable level. What is the future of Web Accessibility with these technologies? Why are we so concerned about Web Accessibility?

     

    References:

    https://github.com/marcysutton/accessibility-of-mvcs

    http://www.w3.org/TR/wai-aria/appendices#a_schemata

    https://www.youtube.com/watch?v=BgvDZZ8Ms8c

    https://www.youtube.com/watch?v=ZPsb-RR8SC0

    http://w3c.github.io/aria-in-html/

    https://www.youtube.com/watch?v=_IBiXfxhF-A

    http://www.polymer-project.org/articles/accessible-web-components.html

    http://marcysutton.com/target-corporate-website/

    http://www.w3.org/TR/2013/WD-components-intro-20130606/#decorator-section

    http://www.paciellogroup.com/blog/

    http://www.paciellogroup.com/resources/wat/

    http://www.w3.org/WAI/intro/aria

    http://webaim.org/

    https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA

     

    12: Flux Application Architecture & React

    12: Flux Application Architecture & React

    Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code.” - Facebook’s Flux Architecture Home Page -

     

    Bill Fisher (@fisherwebdev), Facebook Software Engineer & Lead Developer of the Flux Documentation, joins The Web Platform Podcast for ‘Episode 12:  Flux Application Architecture & ReactJS.’

     

    Bill talks with hosts Nick Niemeir (@nickniemeir) & Erik Isaksen (@eisaksen) about Flux, an application architecture similar in ideas to CQRS & Data Flow Programming. It was created to alleviate the performance & scalability problems that Facebook encountered in building Facebook Messenger (Watch Hacker Way: Rethinking Web App Development at Facebook’ - a presentation by Jing Chen, Software Engineer at Facebook, for further information). Flux promotes a unidirectional data flow model through an application. In contrast to MVC, Flux mainly consists of Stores, a central Dispatcher, and Controller-Views.

    Facebook has React.js as its view layer and and Flux is quickly becoming the architectural design of choice for many of its other web applications. The support, power, and marketing behind the Angular.js and Ember.js frameworks is undeniable and when Facebook released React.js many developers misunderstood its Virtual DOM approach because it was not like the frameworks developers are used too. Despite that, Facebook has proved itself a ‘contender’ in the eyes of many in the development community and many developers and engineering teams are switching their ‘framework of choice’ to React.js.

     

    Flux combined with React.js offers many appealing possibilities but it is not limited to use with just React.js. Flux is an application architecture and it can be used as a pattern in almost any technology stack for web application development.

     

    Flux & React Resources

     

    Flux Projects In Progress

     

    Flux Implementations

     

    React Channels