├── .gitignore
├── README.md
├── a-journey-with-vue-router
├── README.md
├── manifest.json
└── notes
│ ├── 01-vue-js-set-up-vue-router-and-add-the-root-application-route.md
│ ├── 02-vue-js-create-routes-in-vue-and-understand-the-path-hierarchy.md
│ ├── 03-vue-js-access-route-parameters-in-a-vue-component.md
│ ├── 04-vue-js-create-subroutes-displaying-one-or-more-vue-components-with-the-children-key.md
│ └── a-jounrney-with-vue-router-live-workshop-notes.md
├── add-internationalization-to-react-app-using-react-intl
├── README.md
└── notes
│ ├── 01-install-and-configure-the-entry-point-of-react-intl.md
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message.md
│ ├── 03-render-content-with-placeholders-using-react-intl-formatted-message.md
│ ├── 04-render-content-with-markup-using-react-intl-formatted-html-message.md
│ ├── 05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time.md
│ ├── 06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative.md
│ ├── 07-format-numbers-with-separators-and-currency-symbols-using-react-intl-formatted-number.md
│ ├── 08-render-content-based-on-a-number-using-react-intl-formatted-message.md
│ ├── 09-use-a-react-intl-higher-order-component-to-format-messages-and-get-current-locale.md
│ ├── 10-write-tests-for-react-intl-output-using-enzyme-and-jest.md
│ ├── 11-use-webpack-to-conditionally-include-an-intl-polyfill-for-older-browsers.md
│ └── images
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-book-information.png
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-books.svg
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-english-translation.png
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-french-translation.png
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-homepage.png
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-spanish-translation.png
│ ├── 02-convert-a-hard-coded-string-using-react-intl-formatted-message-toggle-button.png
│ ├── 03-render-content-with-placeholders-using-react-intl-formatted-message-author-translate.png
│ ├── 03-render-content-with-placeholders-using-react-intl-formatted-message-average-rating-translate.png
│ ├── 03-render-content-with-placeholders-using-react-intl-formatted-message-review-translate.png
│ ├── 04-render-content-with-markup-using-react-intl-formatted-html-message-markdown-render.png
│ ├── 05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-2-digit-date.png
│ ├── 05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-formatted-time.png
│ ├── 05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-long-month-date.png
│ ├── 05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-numeric-date.png
│ ├── 06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-relative-date-days.png
│ ├── 06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-short.png
│ ├── 06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-update-interval.gif
│ ├── 07-format-numbers-with-separators-and-currency-symbols-using-react-intl-formatted-number-currency.png
│ ├── 08-render-content-based-on-a-number-using-react-intl-formatted-message-conditional-reviews-many.png
│ ├── 08-render-content-based-on-a-number-using-react-intl-formatted-message-reviews-before.png
│ ├── 08-render-content-based-on-a-number-using-react-intl-formatted-message-zero-reviews.png
│ └── 09-use-a-react-intl-higher-order-component-to-format-messages-and-get-current-locale-object-placeholder.png
├── advanced-javascript-fundamentals
├── README.md
└── notes
│ ├── 02_javascript-working-with-primitive-types.md
│ ├── 03_javascript-autoboxing-primitive-types-in-javascript.md
│ ├── 04_javascript-understanding-prototypal-inheritance-within-javascript.md
│ ├── 05_javascript-understanding-the-difference-between-prototype-and-__proto__-in-javascript.md
│ ├── 06_javascript-working-with-var-let-const-and-block-scopes.md
│ ├── 07_javascript-implicit-binding-of-the-this-keyword.md
│ ├── 08_javascript-arrow-functions-and-lexical-scoping-this.md
│ ├── 09_javascript-explicit-binding-of-the-this-keyword.md
│ ├── 10_javascript-private-variables-with-iifes.md
│ ├── 11_javascript-use-implicit-and-explicit-coercion-in-javascript.md
│ ├── 12_javascript-de-sugar-an-es6-class-and-the-extends-keyword.md
│ ├── 13_javascript-es6-class-constructors-and-the-super-keyword.md
│ ├── 14_javascript-working-with-static-properties-on-a-class.md
│ ├── 15_javascript-how-to-use-strict-mode.md
│ └── 16_javascript-wtf-is-a-closure.md
├── advanced-sql-for-professional-developers
├── .all-contributorsrc
├── README.md
├── exercises
│ ├── 00-setup.md
│ ├── 01-import-data.md
│ ├── 02-cast-int-to-string.md
│ ├── 03-enum.md
│ ├── 04-profile.md
│ ├── 05-CTE.md
│ ├── 06-filter-data.md
│ ├── 07-transactions.md
│ ├── README.md
│ ├── product-data.csv
│ ├── purchases-data.csv
│ ├── solutions
│ │ ├── 01-import-data.md
│ │ ├── 02-cast-int-to-string.md
│ │ ├── 03-enum.md
│ │ ├── 04-profile.md
│ │ ├── 05-CTE.md
│ │ ├── 06-filter-data.md
│ │ └── 07-transactions.md
│ └── user-data.csv
└── notes
│ ├── 01-postgresql-bulk-insert-and-export-data-with-csv-files-with-postgres-copy-command.md
│ ├── 02-postgresql-on-conflict-do-something-clause-in-postgres.md
│ ├── 03-postgresql-casting-types-in-sql.md
│ ├── 04-postgresql-create-a-custom-sql-enum-type.md
│ ├── 05-postgresql-profiling-queries-with-sql-explain-analyze.md
│ ├── 06-postgresql-common-table-expressions-in-sql.md
│ ├── 07-postgresql-conditional-returns-with-sql-case-then.md
│ ├── 08-postgresql-create-variables-and-blocks-with-do-declare-in-sql.md
│ ├── 09-postgresql-perform-multiple-steps-in-one-with-sql-transactions.md
│ ├── 10-postgresql-filter-grouped-and-aggregated-data-with-sql-having.md
│ ├── 11-postgresql-create-and-safely-handle-nulls-in-sql.md
│ ├── 12-postgresql-aggregate-inline-filters-in-sql.md
│ ├── 13-postgresql-work-with-json-data-in-sql.md
│ ├── 14-postgresql-pattern-matching-and-regular-expressions-in-sql.md
│ └── images
│ ├── bulk-insert-reverse-to.png
│ ├── bulk-insert.png
│ ├── case-statement-anatomy.jpg
│ ├── casting-types-1.png
│ ├── casting-types-2.png
│ ├── explain-sql-output.jpg
│ ├── json-data.png
│ ├── like-illustration.jpeg
│ ├── sql-bulkimport.gif
│ └── withwithoutfilter.jpg
├── auditing-react-apps-for-accessibility-08733265
├── README.md
└── notes
│ ├── 01-react-audit-component-accessibility-using-storybook.md
│ ├── 02-egghead-write-unit-tests-for-accessibility-using-jest-axe-and-reactdom.md
│ ├── 03-egghead-write-unit-tests-for-accessibility-using-jest-axe-and-enzyme.md
│ ├── 04-egghead-write-unit-tests-for-accessibility-using-jest-axe-and-react-testing-library.md
│ ├── 05-egghead-write-e2e-tests-for-accessibility-using-axe-core-and-selenium-webdriver.md
│ ├── 06-egghead-write-e2e-tests-for-accessibility-using-axe-core-and-cypress.md
│ ├── 07-egghead-automate-accessibility-audits-with-github-actions.md
│ ├── 08-audit-app-accessibility-with-the-lighthouse-ci-cli.md
│ └── 09-automate-lighthouse-audits-with-github-actions.md
├── beautiful-and-accessible-drag-and-drop-with-react-beautiful-dnd
├── README.md
└── notes
│ ├── 01-react-course-introduction-beautiful-and-accessible-drag-and-drop-with-react-beautiful-dnd.md
│ ├── 02-react-set-up-a-react-environment-with-create-react-app.md
│ ├── 03-react-create-and-style-a-list-of-data-with-react.md
│ ├── 04-react-reorder-a-list-with-react-beautiful-dnd.md
│ ├── 05-react-persist-list-reordering-with-react-beautiful-dnd-using-the-ondragend-callback.md
│ ├── 06-react-customise-the-appearance-of-an-app-during-a-drag-using-react-beautiful-dnd-snapshot-values.md
│ ├── 07-react-customise-the-appearance-of-an-app-using-react-beautiful-dnd-ondragstart-and-ondragend.md
│ ├── 08-react-designate-control-of-dragging-for-a-react-beautiful-dnd-draggable-with-draghandleprops.md
│ ├── 09-react-move-items-between-columns-with-react-beautiful-dnd-using-ondragend.md
│ ├── 10-react-conditionally-allow-movement-using-react-beautiful-dnd-draggable-and-droppable-props.md
│ ├── 11-react-create-reorderable-horizontal-lists-with-react-beautiful-dnd-direction-prop.md
│ ├── 12-react-reorder-columns-with-react-beautiful-dnd.md
│ ├── 13-react-optimize-performance-in-react-beautiful-dnd-with-shouldcomponentupdate-and-purecomponent.md
│ └── 14-react-customize-screen-reader-messages-for-drag-and-drop-with-react-beautiful-dnd.md
├── build-a-backend-with-prisma-in-a-typescript-node-project-ca6628d3
├── README.md
└── notes
│ ├── 01-prisma-install-the-prisma-vs-code-extension.md
│ ├── 02-prisma-initialize-prisma-in-a-typescript-node-project.md
│ ├── 03-prisma-create-a-model-for-a-table-and-run-migrations.md
│ ├── 04-prisma-use-prisma-studio-to-create-a-record.md
│ ├── 05-prisma-use-prisma-client-to-find-many-records-in-a-table.md
│ ├── 06-prisma-use-prima-client-to-select-a-subset-of-data.md
│ ├── 07-prisma-create-a-database-record-with-prisma-client.md
│ ├── 08-prisma-use-express-to-create-data-dynamically.md
│ ├── 09-prisma-create-a-relation-between-two-tables-in-the-prisma-schema.md
│ ├── 10-prisma-use-prisma-client-to-query-for-related-data.md
│ ├── 11-prisma-use-prisma-client-to-connect-related-tables-when-creating-new-data.md
│ └── 12-prisma-limit-the-amount-of-returned-data-with-prisma-client.md
├── build-a-modern-user-interface-with-chakra-ui-fac68106
├── SUMMARY.md
└── notes
│ ├── 01_react-install-and-setup-chakra-ui-in-a-react-project.md
│ ├── 02_react-build-a-layout-with-the-container-flex-and-vstack-component-in-chakra-ui.md
│ ├── 03_react-build-a-2-column-form-with-the-simplegrid-formcontrol-and-input-component-in-chakra-ui.md
│ ├── 04_react-create-a-dark-mode-switcher-in-chakra-ui.md
│ ├── 05_react-implement-responsive-design-in-chakra-ui.md
│ ├── 06_react-define-custom-colors-and-fonts-in-chakra-ui.md
│ ├── 07_react-use-theme-extensions-in-chakra-ui.md
│ ├── 08_react-override-the-built-in-component-s-styles-in-chakra-ui.md
│ └── 09_react-create-custom-variants-in-chakra-ui.md
├── build-a-react-native-application-for-ios-and-android-from-start-to-finish
├── README.md
└── notes
│ ├── 01-create-a-react-native-app-and-run-it-on-the-ios-simulator-and-android-emulator.md
│ ├── 02-reload-the-simulator-when-changes-occur-in-react-native-apps.md
│ ├── 03-display-and-format-text-in-a-react-native-application.md
│ ├── 04-layout-react-native-components-with-flexbox.md
│ ├── 05-style-components-in-a-react-native-app-with-stylesheet.md
│ ├── 06-accept-user-input-with-react-native-textinput.md
│ ├── 07-write-to-the-console-log-in-a-react-native-app.md
│ ├── 08-use-the-debugger-in-a-react-native-app.md
│ ├── 09-style-react-native-components-differently-on-ios-and-android.md
│ ├── 10-clean-up-the-folder-structure-and-imports-in-a-react-native-app-with-absolute-paths.md
│ ├── 11-scroll-elements-on-a-react-native-screen-with-scrollview.md
│ ├── 12-display-a-list-of-items-in-react-native-with-flatlist.md
│ ├── 13-make-a-touchable-button-in-react-native.md
│ ├── 14-fetch-data-from-an-http-server-in-a-react-native-application-using-fetch-or-axios.md
│ ├── 15-display-local-and-remote-images-in-react-native.md
│ ├── 16-add-icons-to-a-react-native-app-with-react-native-vector-icons.md
│ ├── 17-show-a-new-screen-with-react-navigation-and-stacknavigator.md
│ ├── 18-customize-the-stacknavigator-header-with-react-navigation-in-a-react-native-app.md
│ ├── 19-pass-data-between-screens-when-navigating-with-stacknavigator.md
│ ├── 20-add-bottom-tabs-to-a-react-native-app-with-react-navigation.md
│ ├── 21-add-a-modal-screen-that-pops-up-from-the-bottom-with-react-navigation.md
│ ├── 22-ensure-text-fields-don't-get-covered-by-the-on-screen-keyboard.md
│ ├── 23-show-a-spinner-while-submitting-a-form-in-react-native-with-activityindicator.md
│ ├── 24-save-and-retrieve-data-on-the-device-in-a-react-native-app-with-asyncstorage.md
│ ├── 25-change-the-splash-screen-for-ios-apps-built-with-react-native.md
│ ├── 26-change-the-splash-screen-for-android-apps-built-with-react-native.md
│ ├── 27-change-the-app-icon-for-react-native-apps-on-ios.md
│ ├── 28-change-the-app-icon-for-react-native-apps-on-android.md
│ ├── 29-run-a-react-native-app-on-an-ios-device.md
│ ├── 30-run-a-react-native-app-on-an-android-device.md
│ ├── 31-build-an-ios-react-native-app-for-uploading-to-the-ios-app-store-or-testflight.md
│ └── 32-build-an-android-react-native-app-for-the-google-play-store-or-for-ad-hoc-distribution.md
├── build-a-real-time-data-syncing-chat-application-with-supabase-and-next-js-84e58958
├── SUMMARY.md
└── notes
│ ├── 01_supabase-create-a-new-supabase-project.md
│ ├── 02_javascript-navigate-the-supabase-admin-interface.md
│ ├── 03_postgresql-create-postgresql-tables-using-supabase-s-interface.md
│ ├── 04_javascript-configure-supabase-auth-to-allow-users-to-login-with-github.md
│ ├── 05_javascript-use-triggers-to-automatically-update-your-supabase-tables.md
│ ├── 06_javascript-set-up-a-supabase-client-in-next-js.md
│ ├── 07_javascript-set-up-a-login-page-in-next-js-with-supabase-s-auth-session.md
│ ├── 08_javascript-set-up-github-authorization-with-supabase.md
│ ├── 09_javascript-manage-third-party-authorization-errors-in-supabase.md
│ ├── 10_postgresql-executing-raw-sql-using-supabase-s-interface.md
│ ├── 11_javascript-retrieve-data-with-a-supabase-api-request.md
│ ├── 12_javascript-subscribe-to-database-changes-using-supabase-s-realtime-client.md
│ ├── 13_javascript-enable-realtime-only-for-individual-tables-using-supabase_realtime.md
│ ├── 14_javascript-insert-submitted-data-to-superbase-tables.md
│ ├── 15_next-js-keep-track-of-the-current-user-using-next-js-with-supabase.md
│ ├── 16_javascript-logout-and-update-users-with-react-and-supebase-s-upsert-method.md
│ ├── 17_javascript-request-user-details-for-a-given-user-using-supabase-s-api.md
│ ├── 18_javascript-retrieve-and-displaying-user-details-with-user-subscriptions.md
│ ├── 19_supabase-deploy-a-supabase-application-to-production-with-cloudflare-pages.md
│ └── 20_cloudflare-building-supabase-serverless-workflows-with-cloudflare-workers.md
├── build-a-server-rendered-reactjs-application-with-nextjs
├── README.md
└── notes
│ ├── 01-introducing-build-a-server-rendered-reactjs-application-with-nextjs.md
│ ├── 02-render-text-within-a-server-side-reactjs-app-with-nextjs.md
│ ├── 03-implement-a-custom-materialui-theme-on-the-server-using-hoc.md
│ ├── 04-render-material-ui-components-with-nextjs.md
│ ├── 05-populate-a-nextjs-application-with-data-using-async-await.md
│ ├── 06-create-custom-routes-within-nextjs-using-expressjs.md
│ ├── 07-dynamically-instantiate-routes-on-id-with-nextjs-and-expressjs.md
│ ├── 08-leverage-nextjs-getInitialProps-lifecycle-hook-to-load-individual-posts.md
│ ├── 09-style-nextjs-applications-using-css-in-js-and-styled-jsx.md
│ └── 10-deploy-a-nextjs-application-to-the-web-with-the-now-cli.md
├── build-a-site-from-scratch-with-nextjs-typescript-emotion-and-netlify
├── README.md
└── notes
│ ├── 01-create-a-next.js-app-from-scratch-with-create-next-app.md
│ ├── 02-enable-typescript-support-in-a-next.js-app.md
│ ├── 03-add-global-styles-to-a-next.js-app.md
│ ├── 04-add-css-in-js-styles-with-emotion-to-a-next.js-app.md
│ ├── 05-add-static-routes-to-a-next.js-app.md
│ ├── 06-create-dynamic-routes-with-next.js.md
│ ├── 07-adding-absolute-imports-to-next.js-app.md
│ ├── 08-use-static-generation-with-getstaticprops-in-next.js-with-typescript.md
│ ├── 09-use-static-generation-for-dynamic-blog-pages-with-next.js.md
│ ├── 10-set-up-netlify-deployments-for-a-next.js-blog.md
│ ├── 11-add-client-side-transitions-to-a-next.js-app.md
│ ├── 12-serve-static-files-with-next.js.md
│ ├── 13-use-head-tag-in-next.js-to-add-metatags-to-a-site.md
│ ├── 14-add-a-netlify-form-to-a-site-to-gather-user's-feedback.md
│ └── 15-change-a-site-name-in-netlify.md
├── build-a-video-chat-app-with-twilio-and-gatsby
├── README.md
└── notes
│ ├── 01-build-a-page-layout-in-gatsby.md
│ ├── 02-create-a-react-form-in-gatsby.md
│ ├── 03-generate-dynamic-routes-in-gatsby-with-reach-router.md
│ ├── 04-manage-application-state-in-gatsby-with-react-hooks.md
│ ├── 05-generate-an-access-token-for-users-with-twilio-serverless-functions.md
│ ├── 06-consume-a-generated-twilio-token-in-gatsby-with-react-hooks.md
│ ├── 07-restrict-access-in-gatsby-with-protected-routes.md
│ ├── 08-connect-video-to-a-room-with-react-hooks-in-gatsby.md
│ ├── 09-show-video-in-gatsby-from-remote-participants-with-react-hooks.md
│ └── 10-handle-disconnected-participants-with-react-hooks-and-the-twilio-api.md
├── build-advanced-components-with-react-hooks-810906cc
├── SUMMARY.md
└── notes
│ ├── 01_react-build-a-wizard-component-using-usestate-react-hooks.md
│ ├── 02_react-create-a-wizard-component-using-compound-components-and-usecontext-react-hook.md
│ ├── 03_react-validate-use-of-context-using-a-custom-hook-and-the-usecontext-react-hook.md
│ ├── 04_react-use-useeffect-react-hook-to-define-the-total-number-of-pages-for-the-wizard-component.md
│ ├── 05_react-manage-component-state-by-using-the-usereducer-and-usecallback-react-hooks.md
│ ├── 06_react-implement-the-state-reducer-pattern-using-the-usereducer-react-hook.md
│ └── 07_react-create-a-flexible-api-by-using-custom-react-hooks.md
├── build-an-app-with-react-suspense
├── README.md
└── notes
│ ├── 01-react-build-an-app-with-react-suspense-intro-and-setup.md
│ ├── 02-react-import-components-lazily-with-suspense-react-lazy.md
│ ├── 03-react-catch-errors-with-a-react-error-boundary-component.md
│ ├── 04-react-understand-how-react-lazy-communicates-loading-status-to-suspense-and-error-boundaries.md
│ ├── 05-react-wrap-fetch-requests-to-communicate-pending-error-and-success-status-to-react-suspense.md
│ ├── 06-react-separate-api-utility-functions-from-react-components.md
│ ├── 07-react-track-async-requests-with-react-s-usestate-hook.md
│ ├── 08-react-enable-suspense-features-with-experimental-concurrent-mode-using-reactdom-createroot.md
│ ├── 09-react-de-prioritize-nonuser-blocking-updates-with-react-usetransition-s-starttransition-function.md
│ ├── 10-react-bypass-receded-views-with-react-usetransition-s-timeoutms-option.md
│ ├── 11-react-display-loading-states-conditionally-with-react-usetransition-s-ispending-boolean.md
│ ├── 12-react-delay-the-appearance-of-a-loading-spinner-with-css-in-react.md
│ ├── 13-react-get-previous-resource-values-with-react-s-usedeferredstate-hook.md
│ ├── 14-react-hoist-react-component-state.md
│ ├── 15-react-avoid-this-common-suspense-gotcha-in-by-reading-data-from-components.md
│ ├── 16-react-coordinate-fallback-rendering-with-the-react-suspenselist-component.md
│ ├── 17-react-reveal-suspense-components-in-order-with-suspenselist-s-revealorder-prop-in-react.md
│ ├── 18-react-avoid-too-many-spinners-with-react-suspenselist-s-tail-prop.md
│ ├── 19-react-pass-react-components-a-usetransition-wrapped-state-setting-callback.md
│ ├── 20-react-augment-react-resource-json-with-custom-properties.md
│ ├── 21-react-extract-reusable-react-components-with-an-as-prop-render-props-and-react-fragment.md
│ ├── 22-react-connect-a-new-endpoints-in-a-react-suspense-app.md
│ ├── 23-react-provide-suspensified-data-to-react-components-with-context-and-usecontext.md
│ └── images
│ ├── 03-review-an-aws-cloud-formation-stack-deployed-with-aws-cdk-trigger-image.png
│ ├── 07-change-the-properties-of-a-lambda-function-deployed-with-aws-cdk-lambda-config-image.png
│ ├── 08-attach-an-api-gateway-to-a-lambda-function-deployed-with-aws-cdk-api-gateway.png
│ ├── 09-pass-environment-variables-to-a-lambda-function-deployed-with-aws-cdk-env-image.png
│ ├── 11-create-and-deploy-an-s3-bucket-with-aws-cdk-s3-buckets.png
│ ├── 12-make-the-contents-of-an-s3-bucket-deployed-with-cdk-public-closed-buckets.png
│ ├── 15-create-a-custom-aws-cdk-construct-custom-construct-images.png
│ ├── 16-create-a-dynamo-db-table-with-aws-cdk-dynamodb-image.png
│ ├── 16-create-a-dynamo-db-table-with-aws-cdk-storage-illustration.png
│ └── 25-deploy-a-site-with-https-support-behind-a-cdn-with-cdk-cdn.png
├── build-an-app-with-the-AWS-cloud-development-kit
├── README.md
├── exercises
│ ├── README.md
│ └── community-solutions.md
└── notes
│ ├── 00-intro-and-welcome.md
│ ├── 01-install-aws-cloud-development-kit-cdk-and-create-a-new-project.md
│ ├── 02-build-and-deploy-a-sample-aws-cloud-development-kit-stack-to-aws.md
│ ├── 03-review-an-aws-cloud-formation-stack-deployed-with-aws-cdk.md
│ ├── 04-clear-an-initial-aws-cdk-stack-to-start-building-an-app-from-scratch.md
│ ├── 05-create-and-deploy-a-lambda-function-with-aws-cdk.md
│ ├── 06-review-and-execute-a-lambda-function-deployed-with-cdk-in-aws-console.md
│ ├── 07-change-the-properties-of-a-lambda-function-deployed-with-aws-cdk.md
│ ├── 08-attach-an-api-gateway-to-a-lambda-function-deployed-with-aws-cdk.md
│ ├── 09-pass-environment-variables-to-a-lambda-function-deployed-with-aws-cdk.md
│ ├── 10-run-lambda-functions-built-with-cdk-locally-using-aws-sam.md
│ ├── 11-create-and-deploy-an-s3-bucket-with-aws-cdk.md
│ ├── 12-make-the-contents-of-an-s3-bucket-deployed-with-cdk-public.md
│ ├── 13-create-an-s3-event-notification-to-trigger-a-lambda-function-on-file-upload.md
│ ├── 14-use-a-bucket-deployment-to-upload-a-file-to-s3-when-deploying-a-cdk-stack.md
│ ├── 15-create-a-custom-aws-cdk-construct.md
│ ├── 16-create-a-dynamo-db-table-with-aws-cdk.md
│ ├── 17-get-all-items-from-a-dynamo-db-table-deployed-with-cdk-using-document-client-api.md
│ ├── 18-debug-permission-issues-and-allow-a-lambda-function-to-access-data-from-a-dynamo-db-table.md
│ ├── 19-adding-data-to-a-dynamo-db-table-with-put-operation.md
│ ├── 20-delete-an-item-from-a-dynamo-db-table-with-delete-operation.md
│ ├── 21-add-external-dependencies-to-an-aws-lambda-function-deployed-with-cdk.md
│ ├── 22-connect-react-app-to-a-serverless-backend-deployed-with-cdk-and-fix-cors-issues.md
│ ├── 23-add-a-custom-cloud-formation-stack-output-with-cdk.md
│ ├── 24-deploy-a-static-website-to-s3-with-aws-cdk.md
│ ├── 25-deploy-a-site-with-https-support-behind-a-cdn-with-cdk.md
│ ├── 26-destroy-an-aws-cdk-stack.md
│ └── images
│ ├── 03-review-an-aws-cloud-formation-stack-deployed-with-aws-cdk-trigger-image.png
│ ├── 07-change-the-properties-of-a-lambda-function-deployed-with-aws-cdk-lambda-config-image.png
│ ├── 08-attach-an-api-gateway-to-a-lambda-function-deployed-with-aws-cdk-api-gateway.png
│ ├── 09-pass-environment-variables-to-a-lambda-function-deployed-with-aws-cdk-env-image.png
│ ├── 11-create-and-deploy-an-s3-bucket-with-aws-cdk-s3-buckets.png
│ ├── 12-make-the-contents-of-an-s3-bucket-deployed-with-cdk-public-closed-buckets.png
│ ├── 15-create-a-custom-aws-cdk-construct-custom-construct-images.png
│ ├── 16-create-a-dynamo-db-table-with-aws-cdk-dynamodb-image.png
│ ├── 16-create-a-dynamo-db-table-with-aws-cdk-storage-illustration.png
│ └── 25-deploy-a-site-with-https-support-behind-a-cdn-with-cdk-cdn.png
├── build-static-pages-dynamically-using-next-js-and-the-notion-api-34849fc4
└── notes
│ ├── 00_next-js-pre-generate-static-pages-with-next-js.md
│ ├── 01_next-js-request-page-data-for-next-js-from-the-notion-api.md
│ ├── 02_next-js-use-the-notion-api-to-request-block-data-in-next-js.md
│ ├── 03_next-js-use-slugified-titles-for-url-in-next-js-with-the-notion-api.md
│ ├── 04_next-js-request-notion-database-data-from-the-api-with-next-js.md
│ ├── 05_next-js-request-paginated-data-from-notion-api-with-next-js.md
│ ├── 06_next-js-mutate-database-fields-with-next-js-using-the-notion-api.md
│ └── 07_next-js-use-next-js-incremental-static-regeneration-to-pregenerate-notion-api-pages-on-demand.md
├── build-user-interfaces-by-composing-css-utility-classes-with-tailwind
├── README.md
└── notes
│ ├── 01-tailwind-composing-css-utility-classes-with-tailwind-course-introduction.md
│ ├── 02-tailwind-compile-tailwind-to-css-with-gulp.md
│ ├── 03-tailwind-create-custom-utility-classes-in-tailwind.md
│ ├── 04-tailwind-apply-mobile-first-responsive-classes-in-tailwind.md
│ ├── 05-tailwind-style-elements-on-hover-and-focus-with-tailwind-s-state-variants.md
│ ├── 06-tailwind-change-styles-on-multiple-elements-with-tailwinds-group-hover.md
│ ├── 07-tailwind-control-what-variations-are-generated-for-each-utility-class-module-in-tailwind.md
│ ├── 08-tailwind-keep-specificity-in-check-when-working-with-tailwind.md
│ ├── 09-tailwind-extending-tailwind-with-responsive-custom-utility-classes.md
│ ├── 10-tailwind-abstract-utility-classes-to-bem-components-in-tailwind.md
│ ├── 11-tailwind-create-a-responsive-card-component-by-composing-tailwind-s-utility-classes.md
│ ├── 12-tailwind-customize-tailwind-s-naming-convention-for-generated-utility-classes.md
│ └── 13-tailwind-removing-unused-css-in-tailwind-with-purgecss.md
├── building-a-customizable-animated-skeleton-loader-in-react-native-51f6231d
├── README.md
└── notes
│ ├── 01-react-native-create-linear-gradients-in-react-native-using-react-native-linear-gradient.md
│ ├── 02-react-native-using-react-native-linear-gradient-for-making-white-text-visible-on-light-images.md
│ ├── 03-react-native-mask-ui-elements-in-react-native-with-react-native-masked-view.md
│ ├── 04-react-native-using-animated-style-from-reanimated-2-to-animate-a-view.md
│ ├── 05-react-native-create-a-skeleton-placeholder-for-your-app-content.md
│ └── 06-react-native-animating-a-skeleton-loader-using-reanimated-2.md
├── building-an-opengraph-image-generation-api-with-cloudinary-netlify-functions-and-react-914e
├── README.md
└── notes
│ ├── 01-figma-designing-opengraph-unfurls-in-figma.md
│ ├── 02-react-building-an-opengraph-image-react-component-in-codesandbox-based-on-a-figma-design.md
│ ├── 03-netlify-setting-up-a-new-github-repo-to-deploy-functions-on-netlify-with-make-and-netlify-toml.md
│ ├── 04-netlify-scaffolding-and-deploying-a-netlify-function-in-javascript.md
│ ├── 05-netlify-using-playwright-to-screenshot-the-dom-and-return-an-image-from-a-netlify-function.md
│ ├── 06-react-compiling-a-react-to-an-iife-with-rollup-to-execute-and-render-in-a-headless-browser.md
│ ├── 07-puppeteer-setting-the-viewport-on-a-playwright-headless-browser.md
│ ├── 08-html-5-testing-an-opengraph-image-with-the-twitter-card-validator.md
│ ├── 09-http-passing-variables-to-serverless-functions-using-query-strings.md
│ ├── 10-javascript-using-cloudinary-as-a-write-through-cache-for-a-netlify-function-that-generates-images.md
│ ├── 11-netlify-using-_redirects-files-on-netlify-to-make-netlify-function-urls-more-user-friendly.md
│ └── images
│ └── Screen Shot 2020-08-11 at 9.09.39 PM.png
├── building-maps-with-react-leaflet
├── README.md
└── notes
│ ├── 01 - A Little Overview of Maps
│ ├── 01-course-introduction.md
│ ├── 02-lesson-1-a-little-overview-about-maps.md
│ └── 03-update-the-avatar-image-to-a-picture-of-yourself.md
│ ├── 02 - Add React Leaflet Map to a React App
│ ├── 04-group-1-your-first-map.md
│ ├── 05-lesson-2-adding-your-first-react-leaflet-map-to-a-new-react-application.md
│ ├── 06-install-leaflet-and-react-leaflet.md
│ ├── 07-adding-a-new-map-to-the-search-page.md
│ └── 08-style-leaflet-map-using-css.md
│ ├── 03 - Customizing Maps with Mapbox
│ ├── 09-lesson-3-customizing-your-react-leaflet-map-with-a-mapbox-basemap-style.md
│ ├── 10-create-a-mapbox-account.md
│ ├── 11-creating-a-map-style-in-mapbox.md
│ ├── 12-creating-an-api-key-in-mapbox.md
│ ├── 13-create-an-environment-variable-for-the-api-key.md
│ ├── 14-configuring-a-mapbox-endpoint-for-our-map-style.md
│ ├── 15-customizing-our-map-with-our-map-style-endpoint.md
│ ├── 16-extra-env-variables.md
│ └── 17-create-an-environment-variable-for-the-api-key.md
│ ├── 04 - Add Your First Location Marker
│ ├── 18-lesson-4-adding-a-marker-to-a-map-to-point-to-a-location-with-react-leaflet.md
│ ├── 19-find-our-favorite-location.md
│ ├── 20-add-a-marker-component-with-our-location.md
│ ├── 21-fix-a-library-conflict-so-our-marker-image-shows.md
│ ├── 22-add-a-popup-component-to-display-the-name-of-our-location.md
│ └── 23-add-a-second-marker-for-your-second-favorite-location.md
│ ├── 05 - Leaflet State in a React App with Hooks
│ ├── 24-group-2-managing-map-data.md
│ ├── 25-lesson-5-managing-leaflet-state-in-a-react-app-with-hooks.md
│ ├── 26-adding-a-ref-to-our-map-component.md
│ ├── 27-accessing-our-leaflet-map-instance-inside-a-react-use-effect-hook.md
│ ├── 28-use-our-leaflet-map-instance-to-re-add-our-marker-to-the-map.md
│ ├── 29-review-a-simple-example-of-mismanaged-state.md
│ └── 30-recreate-the-marker-from-our-second-favorite-location.md
│ ├── 06 - Your First GeoJSON Document
│ ├── 31-lesson-6-create-your-first-geo-json-document-and-add-restaurant-locations-to-the-map.md
│ ├── 32-understanding-the-basics-of-geo-json.md
│ ├── 33-using-geojson-io-to-create-your-first-geo-json-document.md
│ ├── 34-manually-add-a-new-restaurant-location-to-the-geo-json-document.md
│ ├── 35-create-a-new-geo-json-file-and-import-it-into-the-app.md
│ ├── 36-add-geo-json-location-data-to-the-map.md
│ └── 37-add-another-location-to-the-map.md
│ ├── 07 - Smarter Popups with GeoJSON
│ ├── 38-lesson-7-add-restaurant-info-to-geo-json-documents-and-display-it-in-a-tooltip-on-the-map.md
│ ├── 39-updating-our-geo-json-data-to-include-restaurant-information.md
│ ├── 40-adding-popups-to-all-of-our-markers.md
│ ├── 41-adding-restaurant-information-to-our-popups.md
│ ├── 42-update-the-styles-of-our-popups.md
│ ├── 43-change-the-background-color-of-the-popup.md
│ └── 44-add-another-restaurant-attribute.md
│ ├── 08 - Markers and Shaded Regions
│ ├── 45-group-3-customizing-your-map.md
│ ├── 46-lesson-8-add-restaurant-delivery-zones-to-map-with-shaded-regions.md
│ ├── 47-adding-a-delivery-radius-to-our-restaurant-data.md
│ ├── 48-using-the-delivery-radius-to-add-a-shaded-circle-to-the-map.md
│ ├── 49-only-showing-the-delivery-radius-on-marker-hover.md
│ └── 50-change-the-color-of-the-delivery-zone.md
│ ├── 09 - Location Markers with Custom Images
│ ├── 51-lesson-9-customize-restaurant-location-markers-with-custom-images.md
│ ├── 52-recreate-restaurant-markers-with-geo-json-configuration-option.md
│ ├── 53-replace-the-default-location-markers-with-a-custom-image.md
│ ├── 54-add-the-default-shadows-back-to-our-markers.md
│ └── 55-replace-the-marker-with-custom-html-and-style-with-css.md
│ └── 10 - Leaflet's Geolocation API
│ ├── 56-lesson-10-use-leaflet-s-geolocation-api-to-find-locations-near-you.md
│ ├── 57-add-a-marker-to-a-location-when-clicking-a-button.md
│ ├── 58-create-a-button-that-finds-your-location-and-navigates-the-map-to-that-location.md
│ ├── 59-use-the-browser-s-location-to-add-a-marker-to-the-map.md
│ ├── 60-add-a-circle-to-the-map-designing-the-accuracy-of-the-browser-s-location.md
│ └── 61-clean-up-location-event-handler-resources-when-page-unmounts.md
├── building-serverless-web-applications-with-react-aws-amplify
├── README.md
└── notes
│ ├── 01-react-install-configure-the-aws-amplify-cli.md
│ ├── 02-react-native-create-configure-an-aws-amplify-project-with-a-react-application.md
│ ├── 03-react-native-use-the-aws-amplify-withauthenticator-hoc-to-implement-a-react-user-authorization-flow.md
│ ├── 04-react-native-manually-sign-up-new-users-in-react-with-aws-amplify-auth-class.md
│ ├── 05-react-native-create-interact-with-an-aws-appsync-graphql-api-with-aws-amplify.md
│ ├── 06-react-native-create-interact-with-a-serverless-rest-api-with-aws-lambda-from-react.md
│ ├── 07-react-native-store-data-in-amazon-s3-with-react.md
│ ├── 08-react-deploy-your-react-application-to-aws-using-the-amplify-cli.md
│ └── images
│ ├── 05_aws-console-search.png
│ └── 05_aws-console.png
├── composable-gatsby-themes
├── README.md
└── notes
│ ├── 01-set_up_shopify_account.md
│ ├── 02-set_up_a_wordpress_account.md
│ ├── 03-set_up_and_run_gatsby.md
│ ├── 04-convert_gatsby_site_to_yarn_workspace_project.md
│ ├── 05-overview_of_gatsby_site.md
│ ├── 06-create_gatsby_theme_marketing.md
│ ├── 07-build_an_advanced_gatsby_theme_shopify.md
│ ├── 08-creating_a_blog_theme.md
│ ├── 09-use_schema_customization_to_support_mdx_and_wordpress.md
│ └── 10-powering_blogpost_with_wordpress_and_mdx.md
├── composing-closures-and-callbacks-in-javascript
├── README.md
├── images
│ ├── 19-operators.png
│ ├── egghead-exploring-the-patterns-in-the-operators-closures_callbacks.png
│ ├── javascript-compose-closures-and-callbacks-to-create-new-functions-compose-pipe.png
│ ├── javascript-create-an-ifelse-operator-to-fork-on-a-condition-ifElseOperator.png
│ ├── javascript-walkthrough-the-data-flow-of-the-word-game-combine.png
│ ├── javascript-walkthrough-the-data-flow-of-the-word-game-fetching_word.png
│ ├── javascript-walkthrough-the-data-flow-of-the-word-game-initial_steps.png
│ ├── javascript-walkthrough-the-data-flow-of-the-word-game-repeatif_logic.png
│ ├── javascript-what-is-a-callback-in-javascript-callback.png
│ └── map.png
└── notes
│ ├── 01-intro-to-callbacks-broadcasters-and-listeners
│ ├── 01-what-is-a-closure-in-javascript.md
│ ├── 02-what-is-a-callback-in-javascript.md
│ ├── 03-can-a-function-be-a-closure-and-a-callback.md
│ ├── 04-compose-closures-and-callbacks-to-create-new-functions.md
│ ├── 05-defining-the-broadcaster-and-listener-relationship.md
│ ├── 06-time-is-a-hidden-variable-in-javascript.md
│ ├── 07-solve-callback-hell-with-composition.md
│ └── 08-passing-values-through-callback-hell.md
│ ├── 02-establish-callback-and-closure-patterns-async
│ ├── 09-create-a-function-to-configure-settimeout.md
│ ├── 10-return-a-function-to-cancel-an-async-behavior.md
│ ├── 11-wrap-addeventlistener-in-a-function-for-more-control.md
│ ├── 12-create-a-utility-function-to-control-setinterval.md
│ ├── 13-combine-multiple-async-behaviors-with-a-merge-function.md
│ ├── 14-use-lodash-curry-when-functions-return-functions.md
│ ├── 15-match-function-requirements-with-lodash-partial-and-flip.md
│ ├── 16-create-a-buffer-to-pair-values-together-with-zip.md
│ ├── 17-pass-an-array-to-a-callback-with-a-forof-function.md
│ └── 18-pass-a-done-symbol-when-an-async-function-is-done.md
│ ├── 03-build-advanced-async-behaviors-with-pattern
│ ├── 19-create-an-operator-function-to-modify-behaviors.md
│ ├── 20-transform-values-with-a-map-operator.md
│ ├── 21-prevent-certain-values-with-a-filter-operator.md
│ ├── 22-use-pipe-to-clean-up-functions-wrapping-functions.md
│ ├── 23-start-with-the-api-you-want-then-implement.md
│ ├── 24-define-a-function-to-set-common-behaviors-in-operators.md
│ └── 25-use-buffers-to-store-values-until-a-condition-is-met.md
│ ├── 04-implement-pattern-common-async-scenarios
│ ├── 26-building-a-counter-ui-by-composing-callbacks.md
│ ├── 27-building-a-timer-ui-by-composing-callbacks.md
│ ├── 28-building-a-word-matching-game-by-composing-callbacks.md
│ └── 29-create-a-win-condition-with-a-mapdone-operator.md
│ ├── 05-use-completion-pattern-to-enable-repitition-and-sequencing
│ ├── 30-repeat-a-broadcaster-that-is-done.md
│ ├── 31-repeat-when-done-with-a-repeat-operator.md
│ ├── 32-comparing-repat-to-start.md
│ ├── 33-marking-done-based-o-a-condition.md
│ ├── 34-create-a-sequence-of-broadcasters.md
│ └── 35-map-a-sequence-based-on-values.md
│ ├── 06-bring-pattern-to-react
│ ├── 36-adding-react-to-a-vanilla-parcel-project.md
│ ├── 37-create-a-broadcaster-in-react-with-usestate-and-useeffect-hooks.md
│ ├── 38-create-a-custom-usebroadcaster-hook.md
│ ├── 39-pass-a-listener-to-a-usecallback-hook.md
│ ├── 40-create-a-custom-uselistener-hook-around-usecallback.md
│ ├── 41-explaining-the-uselistener-code.md
│ ├── 42-map-a-sequence-of-values-in-react-with-usebroadcaster.md
│ ├── 43-handling-an-enter-keypress-with-uselistener-and-react.md
│ ├── 44-map-a-sequence-based-on-input-text-in-react.md
│ ├── 45-creating-a-debounce-operator-to-limit-listener-calls.md
│ ├── 46-wrap-fetch-in-a-broadcaster-in-react.md
│ ├── 47-cancel-a-fetch-request-with-a-broadcaster-and-react.md
│ └── 48-map-an-error-to-a-broadcaster-value-in-react.md
│ ├── 07-build-light-search-box-react
│ ├── 49-build-a-live-search-box-with-useBroadcaster-and-useListener-in-React.md
│ ├── 50-fixing-bugs-in-our-live-search-box.md
│ ├── 51-create-an-ifelse-operator-to-fork-on-a-condition.md
│ ├── 52-merge-multiple-uselistener-hooks-in-react.md
│ ├── 53-compare-usebroadcaster-and-uselistener-to-the-standard-react-hooks.md
│ ├── 54-remember-to-check-for-done.md
│ ├── 55-save-network-requests-by-using-a-cache.md
│ └── 56-fix-race-conditions-due-to-caching-and-canceling.md
│ ├── 08-implement-word-game-with-patterns-react
│ ├── 57-share-the-same-broadcaster-values-across-multiple-listeners.md
│ ├── 58-limit-to-a-single-shared-broadcaster-each-new-event.md
│ ├── 59-combine-two-broadcasters-to-compare-values.md
│ ├── 60-compose-operators-to-implement-game-logic.md
│ ├── 61-fetch-a-new-data-based-on-conditions.md
│ ├── 62-create-an-initialize-operator-to-clear-an-input-field.md
│ ├── 63-combine-broadcasters-in-logical-order.md
│ ├── 64-refactor-game-state-to-a-single-repeating-broadcaster.md
│ ├── 65-check-broadcasters-are-properly-cancelled-in-operators.md
│ ├── 66-organizing-operators-and-cleaning-up.md
│ └── 67-walkthrough-the-data-flow-of-the-word-game.md
│ └── 09-conclusion
│ ├── 68-exploring-the-patterns-in-the-operators.md
│ └── 69-comparing-similarities-with-popular-async-libraries.md
├── construct-sturdy-uis-with-xstate
├── README.md
└── notes
│ ├── 01-introducing-construct-sturdy-uis-with-xstate.md
│ ├── 02-handle-http-request-state-with-xstate.md
│ ├── 03-invoke-an-xstate-service-when-entering-a-state.md
│ ├── 04-block-a-state-transition-with-a-guard.md
│ ├── 05-control-transition-order-with-parallel-states.md
│ ├── 06-communicate-between-state-machines-in-different-components.md
│ ├── 07-save-previous-state-with-history-state.md
│ └── 08-execute-code-when-entering-and-exiting-states-using-activities.md
├── courses
├── animate-react-apps-with-framer-motion-aa83f52c
│ ├── README.md
│ └── notes
│ │ ├── 01-react-control-animations-with-framer-motion-s-animate-prop?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 02-egghead-use-initial-prop-to-define-the-beginning-state-of-animations?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 03-egghead-customize-animations-with-the-transition-prop?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 04-egghead-animate-through-multiple-states-with-keyframes?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 05-egghead-clean-up-your-components-with-variants?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 06-egghead-animate-elements-removed-from-the-dom-with-animate-presence?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 07-egghead-animate-elements-when-their-layout-changes?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 08-egghead-create-dynamic-animation-values-for-different-elements-with-custom?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 09-react-install-framer-motion-and-create-a-motion-component?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ ├── 10-react-create-micro-interactions-with-gesture-props?pl=animate-react-apps-with-framer-motion-aa83f52c.md
│ │ └── 11-react-animate-svg-paths?pl=animate-react-apps-with-framer-motion-aa83f52c.md
├── architect-an-extensible-digital-garden-with-next-js-tailwind-and-nx-53f7628f
│ ├── README.md
│ └── notes
│ │ ├── 01-next-js-create-a-next-js-web-application-with-nx.md
│ │ ├── 02-next-js-create-a-new-next-js-page-component-with-nx-generators.md
│ │ ├── 03-next-js-understanding-next-js-getstaticprops.md
│ │ ├── 04-next-js-understanding-next-js-getstaticpaths.md
│ │ ├── 05-tailwind-setup-next-js-with-tailwind-in-a-nx-workspace.md
│ │ ├── 06-tailwind-configure-tailwind-purging-in-a-nx-workspace.md
│ │ ├── 07-tailwind-configure-tailwind-in-a-nx-monorepo-with-potentially-multiple-apps-and-libs.md
│ │ ├── 08-tailwind-configure-and-use-tailwindcss-jit-mode-with-nx.md
│ │ ├── 09-tailwind-use-getstaticpaths-to-retrieve-a-list-of-markdown-files-to-render-with-next-js.md
│ │ ├── 10-next-js-generate-an-nx-library-to-implement-our-markdown-rendering-for-our-next-js-app.md
│ │ ├── 11-next-js-parse-a-markdown-document-with-gray-matter.md
│ │ ├── 12-mdx-render-markdown-with-next-mdx-remote-in-our-next-js-page-component.md
│ │ ├── 13-next-js-embed-react-components-in-our-markdown-with-mdx-in-a-next-js-app.md
│ │ ├── 14-next-js-use-react-components-for-native-html-tags-with-mdx-and-next-js.md
│ │ ├── 15-next-js-dynamically-loading-react-components-with-next-mdx-remote-and-next-js-dynamic-imports.md
│ │ ├── 16-next-js-using-environment-variables-with-next-js-and-nx.md
│ │ ├── 17-next-js-add-fast-refresh-support-to-our-mdx-files-with-nx-support-for-custom-next-js-servers.md
│ │ ├── 18-next-js-scaffold-a-new-blog-post-article-automatically-with-nx-workspace-generators.md
│ │ ├── 19-next-js-run-an-nx-generator-with-the-nx-console-vscode-extension.md
│ │ ├── 20-next-js-add-prompts-to-an-nx-workspace-generator.md
│ │ ├── 21-next-js-configure-storybook-for-your-react-based-nx-workspace-library.md
│ │ ├── 22-tailwind-configure-tailwind-for-your-storybook-setup-in-an-nx-workspace.md
│ │ ├── 23-react-develop-react-components-in-isolation-with-storybook-and-nx.md
│ │ ├── 24-react-share-react-components-in-next-js-applications-with-nx-workspace-libraries.md
│ │ ├── 25-cypress-write-e2e-tests-for-our-next-js-application-with-nx-and-cypress.md
│ │ ├── 26-cypress-write-cypress-tests-for-our-react-storybook-components-with-nx.md
│ │ ├── 27-next-js-export-a-next-js-application-with-nx.md
│ │ ├── 28-next-js-setup-vercel-to-deploy-an-nx-based-next-js-application.md
│ │ ├── 29-nx-only-build-what-changed-with-nx-affected-commands.md
│ │ ├── 30-mdx-register-our-markdown-articles-with-the-nx-dependency-graph.md
│ │ └── 31-nx-only-deploy-to-vercel-what-has-been-affected-using-nx.md
├── auditing-react-apps-for-accessibility-08733265
│ └── notes
│ │ ├── 02-react-render-components-with-reactdom-to-write-tests-with-jest-and-jest-axe.md
│ │ ├── 03-react-write-unit-tests-for-accessibility-using-jest-axe-and-enzyme.md
│ │ ├── 04-react-write-better-unit-tests-with-react-testing-library-and-jest-axe.md
│ │ ├── 05-javascript-test-accessibility-at-runtime-with-selenium-webdriver-and-axe-core.md
│ │ ├── 06-cypress-write-e2e-tests-for-accessibility-using-axe-core-and-cypress.md
│ │ ├── 07-eslint-automate-accessibility-audits-with-github-actions.md
│ │ ├── 08-javascript-audit-an-app-s-rendered-pages-locally-with-lighthouse-ci-cli.md
│ │ └── 09-aria-automate-lighthouse-audits-with-github-actions.md
├── build-a-digital-garden-with-nuxt-and-nuxt-content-module-9b67f0de
│ ├── SUMMARY.md
│ └── notes
│ │ ├── nuxt-js-create-a-new-nuxt-project.md
│ │ ├── nuxt-js-create-dynamic-pages-to-render-content-pages.md
│ │ ├── nuxt-js-deploy-your-digital-garden-on-netlify.md
│ │ ├── nuxt-js-explore-writing-content-in-markdown-files-using-nuxt-content.md
│ │ ├── nuxt-js-fetch-content-using-the-created-lifecycle-hook.md
│ │ ├── nuxt-js-setup-and-configure-nuxt-content.md
│ │ ├── nuxt-js-statically-generate-notes-using-asyncdata.md
│ │ ├── nuxt-js-use-frontmatter-to-add-metadata-to-notes.md
│ │ ├── nuxt-js-use-sortby-to-sort-notes-by-frontmatter-keys.md
│ │ └── nuxt-js-use-the-computed-property-to-filter-notes-by-tag.md
├── build-a-react-app-with-authorization-and-authentication-8bbacfe9
│ ├── SUMMARY.md
│ └── notes
│ │ ├── aws-check-for-user-specific-roles-using-aws-amplify.md
│ │ ├── aws-configure-authorization-on-aws-amplify.md
│ │ ├── aws-create-data-models-using-aws-amplify-and-populate-data.md
│ │ ├── aws-create-new-posts-using-aws-amplify-s-datastore.md
│ │ ├── aws-create-sample-data-using-aws-amplify-s-auto-generate-seed-data.md
│ │ ├── aws-deploy-data-models-on-aws-amplify.md
│ │ ├── aws-deploy-your-app-to-aws-amplify.md
│ │ ├── aws-fetch-data-server-side-using-withssrcontext.md
│ │ ├── aws-link-your-aws-amplify-backend-to-your-frontend.md
│ │ ├── aws-sign-in-and-out-users-using-aws-amplify-s-auth.md
│ │ └── aws-use-withauthenticator-to-create-a-sign-in-ui.md
├── build-a-saas-product-with-next-js-supabase-and-stripe-61f2bc20
│ ├── SUMMARY.md
│ └── notes
│ │ ├── 01_supabase-create-a-supabase-project.md
│ │ ├── 02_supabase-create-a-table-in-supabase.md
│ │ ├── 03_next-js-create-a-next-js-app-with-tailwind-css.md
│ │ ├── 04_supabase-query-data-from-supabase-using-next-js.md
│ │ ├── 05_supabase-use-next-js-to-query-a-single-record-from-supabase.md
│ │ ├── 06_supabase-implement-third-party-authentication-with-github-in-next-js-using-supabase.md
│ │ ├── 07_supabase-add-relationships-between-tables-in-supabase-using-foreign-keys.md
│ │ ├── 08_supabase-use-postgres-functions-to-implement-database-logic-with-supabase.md
│ │ ├── 09_supabase-use-supabase-to-subscribe-to-database-events-with-postgres-triggers.md
│ │ ├── 10_supabase-create-a-stripe-customer-with-next-js-api-routes.md
│ │ ├── 11_next-js-generate-a-custom-api-key-to-secure-an-api-route-in-next-js.md
│ │ ├── 12_supabase-automatically-create-a-stripe-customer-for-each-user-with-supabase-function-hooks.md
│ │ ├── 13_next-js-make-user-state-globally-accessible-in-next-js-with-react-context-and-providers.md
│ │ ├── 14_supabase-implement-authorization-using-row-level-security-and-policies.md
│ │ ├── 15_supabase-implement-gated-content-using-row-level-security-with-supabase.md
│ │ ├── 16_next-js-use-stripe-js-to-query-product-data-and-pre-render-with-next-js.md
│ │ ├── 17_next-js-create-shared-nav-bar-in-next-js-with-_app-js.md
│ │ ├── 18_supabase-query-dynamic-supabase-data-in-static-pages-using-next-js.md
│ │ ├── 19_supabase-pass-supabase-session-cookie-to-api-route-to-identify-user.md
│ │ ├── 20_next-js-charge-customer-for-stripe-subscription-in-next-js.md
│ │ ├── 21_next-js-subscribe-to-stripe-webhooks-using-next-js-api-routes.md
│ │ ├── 22_supabase-use-the-supabase-service-key-to-bypass-row-level-security.md
│ │ ├── 23_supabase-create-a-client-page-that-requires-authentication-in-next-js-using-getserversideprops.md
│ │ ├── 24_next-js-allow-customer-to-manage-their-subscription-with-stripe-customer-portal.md
│ │ ├── 25_supabase-subscribe-the-ui-to-database-changes-with-supabase-real-time.md
│ │ └── 26_supabase-configure-stripe-for-production-and-deploy-next-js-application-with-vercel.md
├── build-data-driven-applications-on-the-edge-with-workers-and-workers-kv-4932f3ea
│ ├── SUMMARY.md
│ └── notes
│ │ ├── cloudflare-create-a-cloudflare-workers-kv-namespace.md
│ │ ├── cloudflare-create-a-new-cloudflare-workers-project-with-wrangler.md
│ │ ├── cloudflare-edit-stored-data-using-the-cloudflare-kv-key.md
│ │ ├── cloudflare-filter-data-with-cloudflare-workers-kv-keys.md
│ │ ├── cloudflare-identify-users-in-a-cloudflare-worker-by-ip-to-serve-user-specific-data.md
│ │ ├── cloudflare-read-data-from-cloudflare-workers-kv-with-binding-get.md
│ │ ├── cloudflare-set-complex-key-values-in-a-cloudflare-workers-kv-namespace.md
│ │ ├── cloudflare-update-cloudflare-workers-kvs-data-from-an-api-route.md
│ │ └── cloudflare-write-data-to-cloudflare-workers-kv-store-with-binding-put.md
├── cloud-infrastructure-fundamentals-with-aws-ee4bb845
│ ├── SUMMARY.md
│ └── notes
│ │ ├── aws-add-an-api-gateway-http-endpoint-trigger-to-a-lambda-function-in-aws.md
│ │ ├── aws-compare-aws-documentdb-dynamodb-and-rds.md
│ │ ├── aws-configure-an-aws-s3-user-in-the-aws-cli.md
│ │ ├── aws-connect-to-an-aws-ec2-instance-via-ssh.md
│ │ ├── aws-course-outro-where-to-go-after-learning-the-cloud-infrastructure-fundamentals.md
│ │ ├── aws-create-a-new-aws-rds-instance.md
│ │ ├── aws-create-a-user-with-programmatic-s3-access-with-aws-iam.md
│ │ ├── aws-create-an-aws-s3-bucket-for-hosting-a-static-react-app.md
│ │ ├── aws-create-and-configure-an-aws-ec2-instance.md
│ │ ├── aws-delete-an-aws-rds-instance.md
│ │ ├── aws-introduction-to-cloud-infrastructure-fundamentals-with-aws.md
│ │ ├── aws-overview-of-aws-elastic-compute-cloud-ec2-purpose-and-pricing.md
│ │ ├── aws-overview-of-aws-lambda-and-api-gateway.md
│ │ ├── aws-overview-of-aws-relational-database-service-rds-features-and-pricing.md
│ │ ├── aws-overview-of-s3-simple-storage-service.md
│ │ ├── aws-streamline-deployments-to-aws-s3-with-a-deploy-script-in-package-json.md
│ │ ├── aws-understand-the-advantages-of-aws-and-cloud-services.md
│ │ └── aws-write-and-test-your-first-aws-lambda-function.md
├── cloudflare-pages-6aaa00a1
│ └── notes
│ │ ├── 00_egghead-deploy-a-nextjs-and-contentful-project-to-cloudflare-pages.md
│ │ ├── 01_egghead-set-up-cloudflare-workers-locally.md
│ │ ├── 02_egghead-create-a-secret-with-cloudflare-wrangler-and-add-airtable-credentials.md
│ │ ├── 03_egghead-create-an-airtable-data-handler.md
│ │ ├── 04_egghead-create-an-airtable-form-submission-function.md
│ │ ├── 05_egghead-publish-a-cloudflare-worker-and-submit-data-with-an-html-form.md
│ │ ├── 06_egghead-redirects.md
│ │ ├── 07_egghead-rollbacks.md
│ │ ├── 08_egghead-setting-up-airtable.md
│ │ └── 09_egghead-setup-deploy-hooks.md
├── confidently-testing-redux-applications-with-jest-typescript-16e17d9b
│ ├── SUMMARY.md
│ └── notes
│ │ ├── 01_jest-intro-to-confidently-testing-redux-applications-with-jest-typescript.md
│ │ ├── 02_redux-exploring-the-sample-app-for-the-redux-testing-course.md
│ │ ├── 03_jest-adding-jest-with-typescript-support-to-a-vite-application.md
│ │ ├── 04_egghead-configuring-code-coverage-for-typescript-files-in-jest.md
│ │ ├── 05_egghead-adding-tests-for-a-redux-reducer.md
│ │ ├── 06_egghead-adding-more-test-cases-for-a-redux-reducer.md
│ │ ├── 07_egghead-using-jest-in-watch-mode-with-test-todo-to-test-a-redux-reducer.md
│ │ ├── 08_egghead-unit-testing-a-basic-redux-selector.md
│ │ ├── 09_egghead-unit-testing-a-memoized-redux-selector-built-with-reselect-rtk.md
│ │ ├── 10_egghead-unit-testing-a-memoized-selector-that-derives-data-from-multiple-reducers.md
│ │ ├── 11_egghead-mocking-out-our-api-helper-with-jest-mock.md
│ │ ├── 12_egghead-unit-testing-redux-thunks-with-a-mock-dispatch-function.md
│ │ ├── 13_egghead-unit-testing-redux-thunks-using-redux-mock-store.md
│ │ ├── 14_egghead-unit-testing-redux-thunks-and-associated-reducer-methods-using-your-app-s-redux-store.md
│ │ ├── 15_egghead-additional-redux-thunk-unit-tests-for-increased-code-coverage.md
│ │ ├── 16_jest-intermission-pep-talk-testing-redux-applications.md
│ │ ├── 17_redux-testing-redux-connected-react-components-with-react-testing-library-basic.md
│ │ ├── 18_redux-dispatching-actions-to-a-redux-store-to-test-a-redux-connected-react-component.md
│ │ ├── 19_redux-creating-a-utility-file-for-rendering-redux-connected-react-components-in-tests.md
│ │ ├── 20_redux-applying-our-redux-test-helpers-to-an-existing-component-test.md
│ │ ├── 21_redux-troubleshooting-tests-with-react-testing-library-s-debug-helper.md
│ │ ├── 22_redux-using-react-testing-library-s-waitfor-method-to-test-asynchronous-behavior.md
│ │ ├── 23_redux-using-react-testing-library-s-findby-methods-to-test-asynchronous-behavior.md
│ │ ├── 24_redux-simulate-clicks-in-a-test-with-the-user-event-library.md
│ │ ├── 25_redux-testing-accessible-form-elements-with-react-testing-library-s-findbylabeltext-query.md
│ │ ├── 26_redux-testing-visible-text-with-react-testing-library-s-getbytext-query.md
│ │ ├── 27_redux-using-preloaded-state-from-multiple-reducers-for-testing-a-react-component.md
│ │ ├── 28_redux-simulate-typing-into-form-fields-in-tests-with-the-user-event-library.md
│ │ ├── 29_redux-testing-accessible-form-elements-with-react-testing-library-s-getbytitle-query.md
│ │ ├── 30_redux-testing-components-with-jest-dom-s-tohaveclass-matcher.md
│ │ ├── 31_redux-a-comprehensive-example-of-testing-redux-connected-react-components.md
│ │ └── 32_redux-concluding-thoughts-on-confidently-testing-redux-applications-with-jest-typescript.md
├── craft-scalable-highly-customizable-interfaces-with-tailwind-css-8dfee898
│ ├── README.md
│ └── notes
│ │ ├── 01-tailwind-intro-to-styling-custom-uis-with-tailwind-utility-classes.md
│ │ ├── 02-tailwind-scaffolding-a-multi-panel-app-layout-with-flexbox.md
│ │ ├── 03-tailwind-making-panels-scrollable-with-flexbox.md
│ │ ├── 04-tailwind-customizing-tailwind-s-color-palette-with-your-brand.md
│ │ ├── 05-tailwind-adding-custom-fonts-to-tailwind.md
│ │ ├── 06-tailwind-building-a-hoverable-server-selector-with-svg.md
│ │ ├── 07-tailwind-conditionally-applying-classes-based-on-the-active-url.md
│ │ ├── 08-tailwind-conditionally-applying-classes-based-on-the-active-url.md
│ │ ├── 09-tailwind-building-the-active-server-indicator-using-group-and-transform-utilities.md
│ │ ├── 10-tailwind-solving-the-duplication-problem-with-components.md
│ │ ├── 11-tailwind-building-the-server-header-using-arbitrary-values-from-the-jit-compiler.md
│ │ ├── 12-tailwind-styling-the-channel-list-and-controlling-layout.md
│ │ ├── 13-tailwind-identifying-repeated-patterns-while-dynamically-generating-the-channel-list.md
│ │ ├── 14-tailwind-styling-the-active-channel-link-with-a-new-dynamic-url-segment.md
│ │ ├── 15-tailwind-using-a-state-variable-to-add-unread-states-to-the-channel-nav.md
│ │ ├── 16-tailwind-building-collapsible-categories-with-rotating-arrow-icons.md
│ │ ├── 17-tailwind-building-the-channel-header-with-flexbox-shrink-and-truncating-text.md
│ │ ├── 18-tailwind-styling-the-search-box-using-the-forms-plugin.md
│ │ ├── 19-tailwind-using-components-to-dynamically-generate-the-channel-s-messages.md
│ │ ├── 20-tailwind-dynamically-generating-the-server-and-channel-navs.md
│ │ └── 21-tailwind-using-responsive-design-to-hide-the-desktop-navigation.md
├── effectively-build-restful-apis-using-next-js-api-routes-41c2b1ea
│ ├── README.md
│ └── notes
│ │ ├── 01-next-js-create-a-static-rest-endpoint.md
│ │ ├── 02-next-js-create-a-dynamic-api-route.md
│ │ ├── 03-next-js-create-a-catch-all-api-route.md
│ │ ├── 04-next-js-create-an-optional-catch-all-api-route.md
│ │ ├── 05-next-js-handle-different-http-verbs-in-an-api-route.md
│ │ ├── 06-next-js-add-a-middleware-to-a-next-js-api-route.MD
│ │ ├── 07-next-js-create-an-api-route-using-the-next-connect-package.md
│ │ ├── 08-next-js-add-middleware-to-an-api-route-created-with-next-connect.md
│ │ └── 09-next-js-hide-sensitive-information-from-the-consumers-of-the-api.md
├── graphql-and-vue-3-8152749d
│ └── notes
│ │ ├── vue-js-add-routing-to-your-vue-3-application-with-vue-router.md
│ │ ├── vue-js-compare-vue-3-setup-script-with-the-options-api.md
│ │ ├── vue-js-create-a-conditionally-rendered-modal-in-vue-3.md
│ │ ├── vue-js-create-a-data-driven-child-component-in-vue-3.md
│ │ ├── vue-js-create-a-data-driven-vue-3-component-with-apollo.md
│ │ ├── vue-js-create-a-dynamic-route-with-vue-router.md
│ │ ├── vue-js-create-a-graphql-mutation-in-graphiql.md
│ │ ├── vue-js-create-a-vue-3-form-with-v-model.md
│ │ ├── vue-js-create-a-vue-3-project-with-vite.md
│ │ ├── vue-js-encapsulate-logic-with-vue-3-composable.md
│ │ ├── vue-js-generate-a-mongodb-database-for-a-graphql-backend.md
│ │ ├── vue-js-handle-graphql-request-errors-in-vue-3.md
│ │ ├── vue-js-handle-optimistic-updates-with-the-vue-3-usemutation-composable.md
│ │ ├── vue-js-implement-an-infinite-scroll-using-graphql-with-the-vue-3-usequery-composable.md
│ │ ├── vue-js-listen-for-custom-emitted-events-in-vue-3-parent-components.md
│ │ ├── vue-js-pass-an-id-in-a-vue-3-app-through-query-parameters-to-a-graphql-query.md
│ │ ├── vue-js-provide-defaultapolloclient-from-apollo-composable-to-your-vue-3-app.md
│ │ ├── vue-js-set-up-the-apollo-client-in-a-vue-3-project.md
│ │ ├── vue-js-use-graphql-mutations-in-vue-3-with-the-usemutation-composable.md
│ │ ├── vue-js-use-refetch-from-vue-3-usequery-composable-to-ensure-fresh-data.md
│ │ └── vue-js-use-template-literals-with-router-link-to-create-dynamic-routes-in-vue-3.md
├── local-app-development-with-the-firebase-emulator-ebd4a2a8
│ └── notes
│ │ ├── firebase-create-and-use-callable-functions-with-the-firebase-function-emulator.md
│ │ ├── firebase-disable-firebase-emulators-when-in-production.md
│ │ ├── firebase-get-started-with-firebase-http-cloud-functions.md
│ │ ├── firebase-import-seed-data-for-your-firebase-emulators.md
│ │ ├── firebase-initialize-firebase-emulators-in-your-app.md
│ │ ├── firebase-initialize-the-firestore-emulator.md
│ │ ├── firebase-intro-to-use-the-firebase-emulator-to-create-safe-test-environments-for-angular.md
│ │ ├── firebase-overview-of-the-demo-application-and-tools-we-ll-use.md
│ │ ├── firebase-overview-of-the-different-firebase-cloud-functions.md
│ │ ├── firebase-setup-the-firebase-authentication-emulator.md
│ │ ├── firebase-watch-for-changes-and-trigger-functions-with-the-firestore-emulator.md
│ │ └── firebase-when-to-use-the-oncall-or-onrequest-firebase-cloud-functions.md
├── migrate-a-client-side-application-to-react-18-beta-9379f0d1
│ ├── README.md
│ └── notes
│ │ ├── 01-react-gradual-adoption-strategy-of-react-18.md
│ │ ├── 02-react-update-react-dependencies-with-the-next-version-tag.md
│ │ ├── 03-react-replace-legacy-root-api-with-new-root-api.md
│ │ ├── 04-react-use-react-18-s-new-root-api-alongside-the-legacy-root-api.md
│ │ ├── 05-react-replace-legacy-root-api-s-callback-argument.md
│ │ ├── 06-react-conditionally-render-with-legacy-root-api-or-new-root-api.md
│ │ ├── 07-react-opt-in-to-automatic-batching-with-createroot.md
│ │ ├── 08-react-remove-unstable_batchedupdates-calls.md
│ │ ├── 09-react-opt-out-of-automatic-batching-with-reactdom-flushsync.md
│ │ ├── 10-react-handle-class-component-setstate-edge-case-with-reactdom-flushsync.md
│ │ └── 11-react-stay-up-to-date-on-react-18-progress-with-the-react-working-group.md
├── react-optimization-cookbook-d67d54ba
│ ├── SUMMARY.md
│ └── notes
│ │ ├── react-add-the-why-did-you-render-package-to-catch-unnecessary-updates-in-react.md
│ │ ├── react-code-split-components-with-react-lazy-loadable-components.md
│ │ ├── react-containerization-of-state-within-child-react-components.md
│ │ ├── react-course-introduction-react-optimization-cookbook.md
│ │ ├── react-debounce-callbacks-on-dom-events-in-react-apps.md
│ │ ├── react-memoize-a-function-with-usecallback-in-react.md
│ │ ├── react-memoized-values-with-react-usememo.md
│ │ ├── react-optimize-function-components-with-react-memo.md
│ │ ├── react-profile-react-components-with-the-devtools-profiler.md
│ │ ├── react-tree-shake-your-react-application-modules.md
│ │ ├── react-use-the-react-production-build.md
│ │ ├── react-view-package-sizes-in-a-react-app-with-webpack-analyzer.md
│ │ └── react-virtualize-long-lists-of-data-in-react.md
└── refactor-a-react-application-to-typescript-c70bffa0
│ ├── SUMMARY.md
│ └── notes
│ ├── eslint-configure-emmet-eslint-and-prettier-extensions.md
│ ├── react-configure-build-tools-to-work-with-typescript.md
│ ├── react-install-and-configure-typescript-and-dependencies.md
│ ├── react-refactor-a-react-application-to-typescript.md
│ ├── react-refactor-a-react-component-using-typescript.md
│ ├── react-type-a-radio-button-component-in-react-using-typescript.md
│ ├── react-type-react-hooks-using-typescript.md
│ ├── react-use-typescript-to-type-a-react-class-component.md
│ ├── react-use-typescript-to-type-react-usereducer.md
│ ├── react-walkthrough-of-the-refactoring-project.md
│ └── typescript-download-typescript-importer-and-javascript-and-typescript-nightly-for-vscode.md
├── create-amazing-animations-with-greensock-notes
├── README.md
└── notes
│ ├── 01-setup-greensock-as-a-module-with-parcel.md
│ ├── 02-animate-and-center-an-element-to-a-click-event-with-greensock.md
│ ├── 03-rotate-an-element-based-on-previous-values-with-greensock.md
│ ├── 04-create-animation-steps-with-greensocks-timeline.md
│ ├── 05-pause-or-resume-an-animation-by-checkout-isactive-with-greensock.md
│ ├── 06-manually-control-the-animation-with-progress-in-greensock.md
│ ├── 07-animate-From-a-variable-point-with-from-and-fromto-in-greensock.md
│ ├── 08-control-an-array-of-elements-with-the-same-animation-in-greensock.md
│ ├── 09-stop-animations-with-killtweensof-and-killall-in-greensock.md
│ ├── 10-animate-between-css-classes-with-greensock.md
│ ├── 11-spin-elements-in-3d-with-greensock.md
│ ├── 12-control-the-shared-3d-perspective-of-multiple-elements-with-greensock.md
│ └── 13-loop-a-tween-forever-using-yoyo-and-repeat-with-greensock.md
├── data-structures-and-algorithms-in-javascript
├── README.md
├── assets
│ ├── 02-javascript-queue-data-structure-in-javascript-Dequeue.gif
│ ├── 02-javascript-queue-data-structure-in-javascript-Enqueue.gif
│ ├── 02-javascript-queue-data-structure-in-javascript-Length.gif
│ ├── 02-javascript-queue-data-structure-in-javascript-Peek.png
│ ├── 02-javascript-queue-data-structure-in-javascript-Queue.png
│ ├── 02-javascript-queue-data-structure-in-javascript-isEmpty.gif
│ ├── 03-javascript-priority-queue-javascript-data-structure-Priority-Queue.gif
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack-Length.gif
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack-Peek.png
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack-Pop.gif
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack-Push.gif
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack-isEmpty.gif
│ ├── 04-javascript-stack-data-structure-in-javascript-Stack.png
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Delete.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Get.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Head.png
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Length.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Pop.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Push.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-Tail.png
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List-isEmpty.gif
│ ├── 05-javascript-linked-list-data-structure-in-javascript-Linked-List.png
│ ├── 06-javascript-javascript-graph-data-structure-Graph-Add-Edge.gif
│ ├── 06-javascript-javascript-graph-data-structure-Graph-Add.gif
│ ├── 06-javascript-javascript-graph-data-structure-Graph-Find.png
│ ├── 06-javascript-javascript-graph-data-structure-Graph-Symmetry.png
│ ├── 06-javascript-javascript-graph-data-structure-Graph.png
│ ├── 07-javascript-breadth-first-javascript-search-algorithm-for-graphs-Breadth-First-Search.gif
│ ├── 08-javascript-write-a-depth-first-search-algorithm-for-graphs-in-javascript-Depth-First-Search.gif
│ ├── 09-javascript-tree-data-structure-in-javascript-Tree-Traversal.gif
│ ├── 09-javascript-tree-data-structure-in-javascript-Tree.png
│ ├── 10-javascript-build-a-binary-tree-in-javascript-and-several-traversal-algorithms-Binary-Tree.png
│ ├── 10-javascript-build-a-binary-tree-in-javascript-and-several-traversal-algorithms-Tree-In-Order.gif
│ ├── 10-javascript-build-a-binary-tree-in-javascript-and-several-traversal-algorithms-Tree-Post-Order.gif
│ └── 10-javascript-build-a-binary-tree-in-javascript-and-several-traversal-algorithms-Tree-Pre-Order.gif
└── notes
│ ├── 01-javascript-course-introduction-data-structures-and-algorithms-in-javascript.md
│ ├── 02-javascript-queue-data-structure-in-javascript.md
│ ├── 03-javascript-priority-queue-javascript-data-structure.md
│ ├── 04-javascript-stack-data-structure-in-javascript.md
│ ├── 05-javascript-linked-list-data-structure-in-javascript.md
│ ├── 06-javascript-javascript-graph-data-structure.md
│ ├── 07-javascript-breadth-first-javascript-search-algorithm-for-graphs.md
│ ├── 08-javascript-write-a-depth-first-search-algorithm-for-graphs-in-javascript.md
│ ├── 09-javascript-tree-data-structure-in-javascript.md
│ ├── 10-javascript-build-a-binary-tree-in-javascript-and-several-traversal-algorithms.md
│ ├── 11-javascript-sort-an-array-with-a-javascript-do-while-loop-using-bubble-sort.md
│ ├── 12-javascript-sort-an-array-with-a-nested-for-loop-using-insertion-sort-in-javascript.md
│ ├── 13-javascript-divide-and-recurse-over-an-array-with-merge-sort-in-javascript.md
│ └── 14-javascript-recursively-sort-an-array-in-javascript-with-quick-sort.md
├── designing-graphql-schemas
├── README.md
└── notes
│ ├── 01-course-intro-for-designing-graphql-schemas.md
│ ├── 02-setup-an-apollo-graphql-server-with-automatic-mocking.md
│ ├── 03-kicking-off-a-graphql-schema-design-process.md
│ ├── 04-naming-conventions-for-query-fields-in-graphql.md
│ ├── 05-when-and-why-to-use-nullable-vs-non-nullable-fields-in-graphql.md
│ ├── 06-evolving-a-graphql-schema-incl-breaking-changes-without-affecting-a-single-user.md
│ ├── 07-naming-conventions-for-fields-with-graphql-aliases-in-mind.md
│ ├── 08-paginate-entries-using-the-connection-specification.md
│ ├── 09-extending-graphql-connections-with-additional-fields-and-arguments.md
│ ├── 10-naming-top-level-query-fields-in-graphql.md
│ ├── 11-mutation-input-payload-structure-in-graphql.md
│ ├── 12-design-graphql-mutations-by-focusin-on-the-domain-rather-than-the-data-model.md
│ ├── 13-optimising-graphql-mutations-for-static-usage.md
│ ├── 14-graphql-mutations-to-update-connections.md
│ └── 15-tradeoffs-when-designing-graphql-mutations-to-update-multiple-properties-on-one-entity.md
├── develop-accessible-web-apps-with-react
├── README.md
└── notes
│ ├── 00-intro.md
│ ├── 01-eslint-plugin.md
│ ├── 02-react-axe.md
│ ├── 03-axe-browser-extension.md
│ ├── 04-tota11y-plugin.md
│ ├── 05-high-contrast-plugin.md
│ ├── 06-color-contrast-macOS.md
│ ├── 07-color-contrast-windows.md
│ ├── 08-voiceover-macOS.md
│ ├── 09-navigate-safari-voiceover.md
│ ├── 10-test-landmark-regions.md
│ ├── 11-define-landmarks.md
│ ├── 12-semantic-HTML.md
│ ├── 13-headings.md
│ ├── 14-heading-levels.md
│ ├── 15-form-controls.md
│ ├── 16-input-labels.md
│ ├── 17-accessible-labels.md
│ ├── 18-accessible-labels-2.md
│ ├── 19-add-extra-labels.md
│ ├── 20-accessible-descriptions.md
│ ├── 21-test-alt-text-.md
│ ├── 22-alt-attributes.md
│ ├── 23-test-color-contrast.md
│ ├── 24-fix-color-contrast.md
│ ├── 25-not-just-color.md
│ ├── 26-live-regions.md
│ ├── 27-manage-focus.md
│ └── 28-accessible-design-patterns.md
├── efficient-javascript-array-manipulation-da4e
└── notes
│ ├── 01-javascript-3-ways-to-update-the-content-of-an-array-of-objects-with-javascript.md
│ └── 02-javascript-4-ways-to-populate-an-array-in-javacript.md
├── egghead-talks-full-stack-development-in-the-era-of-serverless-computing
└── README.md
├── egghead-talks-sleeping-better-at-night
├── .all-contributorsrc
├── README.md
└── assets
│ ├── egghead-talks-sleeping-better-at-night-aplitools-after.png
│ ├── egghead-talks-sleeping-better-at-night-applitools-testing.png
│ ├── egghead-talks-sleeping-better-at-night-applitools-visualization.png
│ ├── egghead-talks-sleeping-better-at-night-applitools.png
│ ├── egghead-talks-sleeping-better-at-night-kent-testing-tweet.png
│ ├── egghead-talks-sleeping-better-at-night-meme.jpg
│ ├── egghead-talks-sleeping-better-at-night-probability-diagram.png
│ ├── egghead-talks-sleeping-better-at-night-sizzy.gif
│ └── egghead-talks-sleeping-better-at-night-testing-spectrum.png
├── egghead-talks-things-every-software-engineer-should-know-about-neurodiversity
└── README.md
├── eject-create-react-app-and-use-gatsby-for-advanced-react-app-development
├── README.md
├── excercises
│ ├── 01-extract-pages-from-CRA-to-gatsby.md
│ ├── 02-install-a-plugin.md
│ ├── 03-query-data.md
│ ├── README.md
│ ├── graphiql.png
│ └── solutions
│ │ ├── 01-extract-pages-from-CRA-to-gatsby
│ │ ├── gatsby-node.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── pages
│ │ │ │ ├── about.js
│ │ │ │ ├── app.js
│ │ │ │ └── index.js
│ │ │ └── templates
│ │ │ │ └── pokemon-page.js
│ │ └── yarn.lock
│ │ ├── 02-install-a-plugin
│ │ ├── .gitkeep
│ │ ├── README.md
│ │ ├── gatsby-config.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── components
│ │ │ │ ├── header.js
│ │ │ │ ├── image.js
│ │ │ │ ├── layout.css
│ │ │ │ ├── layout.js
│ │ │ │ └── seo.js
│ │ │ ├── images
│ │ │ │ ├── gatsby-astronaut.png
│ │ │ │ └── gatsby-icon.png
│ │ │ └── pages
│ │ │ │ ├── 404.js
│ │ │ │ ├── index.js
│ │ │ │ └── page-2.js
│ │ └── yarn.lock
│ │ └── 03-query-data
│ │ ├── data
│ │ └── pokemons.json
│ │ ├── gatsby-config.js
│ │ ├── gatsby-node.js
│ │ ├── package.json
│ │ ├── src
│ │ ├── pages
│ │ │ ├── about.js
│ │ │ ├── app.js
│ │ │ └── index.js
│ │ └── templates
│ │ │ └── pokemon-page.js
│ │ └── yarn.lock
├── notes
│ ├── 01-gatsby-setup-the-simplest-gatsby-project.md
│ ├── 02-gatsby-create-gatsby-static-pages-manually.md
│ ├── 03-gatsby-create-static-pages-programmatically.md
│ ├── 04-gatsby-create-client-only-routes-dynamic-pages.md
│ ├── 05-gatsby-breaking-down-a-plain-react-app.md
│ ├── 06-gatsby-extract-gatsby-static-pages-from-a-plain-react-app.md
│ ├── 07-gatsby-convert-react-routes-with-a-dynamic-param-to-programmatic-static-pages.md
│ ├── 08-gatsby-create-dynamic-pages-in-gatsby.md
│ ├── 09-gatsby-share-common-markup-between-pages-in-gatsby-using-layouts.md
│ ├── 10-gatsby-migrate-authentication-from-a-plain-react-app-to-a-gatsby-app.md
│ ├── 11-gatsby-using-a-gatsby-plugin-bcf8a626.md
│ ├── 12-gatsby-fetch-and-query-data-at-build-time-in-gatsby.md
│ └── 13-egghead-combine-build-time-and-client-runtime-data-in-a-gatsby-app.md
└── sketch-notes
│ ├── 01-sketch-note-gatsby-system.png
│ ├── 02-sketch-note-pages.png
│ └── 03-sketch-note-progressive-enhancement-animation.gif
├── fix-common-git-mistakes
├── README.md
└── notes
│ ├── 01-change-a-commit-message-that-hasnt-been-pushed-yet.md
│ ├── 02-add-more-files-and-changes-to-a-commit-before-pushing.md
│ ├── 03-remove-files-from-staging-before-committing.md
│ ├── 04-remove-changes-from-a-commit-before-pushing.md
│ ├── 05-use-and-compare-the-different-git-reset-options-hard-soft-and-mixed.md
│ ├── 06-recover-local-changes-from-git-reset-hard-with-git-reflog.md
│ ├── 07-undo-a-commit-that-has-already-been-pushed.md
│ ├── 08-push-a-new-branch-to-github-that-doesnt-exist-remotely-yet.md
│ ├── 09-copy-a-commit-from-one-branch-to-another.md
│ ├── 10-move-a-commit-that-was-committed-on-the-wrong-branch.md
│ ├── 11-use-git-stash-to-save-local-changes-while-pulling.md
│ ├── 12-explore-old-commits-with-a-detached-head-and-then-recover.md
│ ├── 13-fix-a-pull-request-that-has-a-merge-conflict.md
│ ├── 14-cleanup-and-delete-branches-after-a-pull-request.md
│ ├── 15-change-the-commit-message-of-a-previous-commit-with-interactive-rebase.md
│ ├── 16-git-ignore-a-file-that-has-already-been-committed-and-pushed.md
│ ├── 17-add-a-file-to-a-previous-commit-with-interactive-rebase.md
│ ├── 18-fix-merge-conflicts-while-changing-commits-during-an-interactive-rebase.md
│ ├── 19-squash-commits-before-they-are-pushed-with-interactive-rebase.md
│ └── 20-completely-remove-a-file-from-pushed-git-history.md
├── flexbox-fundamentals
├── README.md
└── notes
│ ├── 01-flexbox-using-flex-direction-to-layout-content-horizontally-and-vertically.md
│ ├── 02-flexbox-using-order-to-rearrange-flexbox-children.md
│ ├── 03-flexbox-demystifying-alignment-in-flexbox-children.md
│ ├── 04-defining-dimensions-on-flexbox-children-flex-basis.md
│ ├── 05-flexbox-using-flex-shrink-and-flex-grow-to-make-flexbox-children-resize-correctly.md
│ ├── 06-flexbox-combining-the-flexbox-sizing-properties-using-the-flex-shorthand.md
│ ├── 07-flexbox-turning-a-flexbox-into-a-grid-using-flex-wrap-and-align-content.md
│ └── 08-flexbox-using-flexbox-in-websites-and-applications.md
├── gatsby-theme-authoring
├── .all-contributorsrc
├── README.md
└── notes
│ ├── 01-set-up-yarn-workspaces-for-gatsby-theme-development.md
│ ├── 02-add-static-data-to-a-gatsby-theme.md
│ ├── 03-create-a-data-directory-in-gatsby-using-the-on-pre-bootstrap-lifecycle.md
│ ├── 04-set-up-to-create-data-driven-pages-in-gatsby.md
│ ├── 05-create-data-driven-pages-in-gatsby-with-graph-ql-and-create-pages.md
│ ├── 06-display-sorted-data-with-use-static-query-in-gatsby.md
│ ├── 07-display-and-query-data-by-id-with-gatsby-context-and-use-static-query.md
│ ├── 08-style-and-format-dates-in-react.md
│ ├── 09-configure-a-gatsby-theme-to-take-options.md
│ ├── 10-make-gatsby-themes-extendable-with-gatsby-theme-ui.md
│ ├── 11-use-and-override-a-theme-in-gatsby-with-component-shadowing.md
│ ├── 12-publish-a-gatsby-theme-to-npm.md
│ ├── 13-consume-a-theme-in-a-gatsby-application.md
│ ├── 14-use-component-shadowing-to-override-gatsby-theme-components.md
│ └── images
│ ├── 02-add-static-data-to-a-gatsby-theme-graphql-playground.png
│ ├── 05-create-data-driven-pages-in-gatsby-with-graph-ql-and-create-pages-individual-pages.png
│ ├── 05-create-data-driven-pages-in-gatsby-with-graph-ql-and-create-pages.png
│ ├── 06-display-sorted-data-with-use-static-query-in-gatsby-formatted.png.png
│ ├── 07-display-and-query-data-by-id-with-gatsby-context-and-use-static-query-event-page.png.png
│ ├── 07-display-and-query-data-by-id-with-gatsby-context-and-use-static-query.png.png
│ ├── 08-style-and-format-dates-in-react-multiple-day-before.png
│ ├── 08-style-and-format-dates-in-react-multiple-one-day.png
│ └── 11-use-and-override-a-theme-in-gatsby-with-component-shadowing-styled.png
├── get-started-with-angular
├── README.md
└── notes
│ ├── 01-say-hello-world-to-angular-2.md
│ ├── 02-create-a-simple-angular-2-component.md
│ ├── 03-manage-angular-2-elements-with-events-and-refs.md
│ ├── 04-control-angular-2-events-with-event-and-event-handlers.md
│ ├── 05-share-services-and-data-with-angular-2-dependency-injection.md
│ ├── 06-provide-and-share-values-with-angular-2-dependency-injection.md
│ ├── 07-loop-through-angular-2-components-with-ng-for.md
│ ├── 08-pass-values-into-angular-2-components-with-input.md
│ ├── 09-sync-values-from-inputs-with-angular-2-s-ng-model-two-way-binding.md
│ ├── 10-pass-events-from-angular-2-components-with-output.md
│ ├── 11-write-css-inside-of-angular-2-components.md
│ ├── 12-apply-css-classes-conditionally-with-angular-2-s-ng-class.md
│ ├── 13-use-global-css-inside-angular-2-components.md
│ └── images
│ ├── angular-apply-css-classes-conditionally-with-angular-2-s-ngclass-green-border-on-mousedown.gif
│ ├── angular-create-a-simple-angular-2-component-component-hierarchy.png
│ ├── angular-create-a-simple-angular-2-component-our-first-component.png
│ ├── angular-loop-through-angular-2-components-with-ngfor-list-of-messages-displayed.png
│ ├── angular-manage-angular-2-elements-with-events-and-refs-reference-equals-element-itself.png
│ ├── angular-pass-events-from-angular-2-components-with-output-update-event-console.png
│ ├── angular-pass-values-into-angular-2-components-with-input-message-display.png
│ ├── angular-pass-values-into-angular-2-components-with-input-simple-form-loop.png
│ ├── angular-provide-and-share-values-with-angular-2-dependency-injection-api-injection-display.png
│ ├── angular-say-hello-world-to-angular-2-cli-default-page.png
│ ├── angular-say-hello-world-to-angular-2-lets-get-started-webpage.png
│ ├── angular-share-services-and-data-with-angular-2-dependency-injection-mailservice-message-display.png
│ ├── angular-sync-values-from-inputs-with-angular-2-s-ngmodel-two-way-binding-externally-change-message-within-input-box.gif
│ ├── angular-sync-values-from-inputs-with-angular-2-s-ngmodel-two-way-binding-input-changes-message.png
│ ├── angular-use-global-css-inside-angular-2-components-grab-classes-from-global-stylesheet.png
│ ├── angular-use-global-css-inside-angular-2-components-ignoring-global-styles.png
│ ├── angular-use-global-css-inside-angular-2-components-universally-applied-css.png
│ ├── angular-write-css-inside-of-angular-2-components-input-text-bold-on-focus-and-button-border.png
│ ├── angular-write-css-inside-of-angular-2-components-margin-bottom-simple-form-component.png
│ └── angular-write-css-inside-of-angular-2-components-styles-isolated-within-component.png
├── getting-started-with-recoil-in-react-1fca
├── notes
│ ├── 00_react-set-up-recoil-in-a-new-react-app.md
│ ├── 01_react-create-shared-state-with-recoil-in-a-react-app.md
│ ├── 02_react-read-a-value-from-recoil-with-userecoilvalue.md
│ ├── 03_react-compute-a-value-in-recoil-using-a-selector.md
│ ├── 04_react-write-a-custom-recoil-hook-to-reset-a-value-in-the-recoil-state.md
│ └── 05_react-use-async-functions-in-a-recoil-selector.md
└── rubric.md
├── graphql-query-language
├── README.md
└── notes
│ ├── 01-send-a-query-with-graphql-playground.md
│ ├── 02-query-a-list-of-objects-with-graphql.md
│ ├── 03-query-an-enumeration-type-with-graphql.md
│ ├── 04-send-a-nested-graphql-query.md
│ ├── 05-filter-a-qraphql-query-result-using-qrguments.md
│ ├── 06-renaming-fields-with-graphql-aliases.md
│ ├── 07-use-variables-to-filter-a-query-result-with-graphql.md
│ ├── 08-query-connected-data-with-the-graphql-query-language.md
│ ├── 09-create-operation-names-for-graphql-queries.md
│ ├── 10-use-an-input-type-to-create-an-account-with-graphql-mutation.md
│ ├── 11-authenticate-a-user-with-a-graphql-mutation.md
│ ├── 12-send-check-out-mutation-with-graphql-as-an-authorized-user.md
│ ├── 13-change-check-in-status-with-a-graphql-mutation.md
│ ├── 14-reuse-graphql-selection-sets-with-fragments.md
│ ├── 15-explore-refactored-graphql-queries.md
│ ├── 16-query-graphql-interface-types-in-graphql-playground.md
│ ├── 17-query-lists-of-multiple-types-using-a-union-in-graphql.md
│ ├── 18-listen-for-data-changes-in-realtime-with-graphql-subscription.md
│ └── 19-query-a-graphql-apis-types-with-introspection-queries.md
├── introduction-to-state-machines-using-xstate
├── README.md
└── notes
│ ├── 01_xstate-course-intro-and-overview.md
│ ├── 02_javascript-eliminate-boolean-explosion-by-enumerating-states.md
│ ├── 03_xstate-replace-enumerated-states-with-a-state-machine.md
│ ├── 04_xstate-use-an-interpreter-to-instantiate-a-machine.md
│ ├── 05_xstate-use-xstate-viz-to-visually-develop-and-test-your-machine.md
│ ├── 06_xstate-add-actions-to-transitions-to-fire-side-effects.md
│ ├── 07_xstate-trigger-actions-when-entering-and-exiting-a-xstate-state.md
│ ├── 08_xstate-replace-inline-functions-with-string-shorthands.md
│ ├── 09_xstate-use-internal-transitions-in-xstate-to-avoid-state-exit-and-re-entry.md
│ ├── 10_xstate-send-events-to-the-machine-with-the-xstate-send-action-creator.md
│ ├── 11_xstate-track-infinite-states-with-with-xstate-context.md
│ ├── 12_xstate-how-action-order-affects-assigns-to-context-in-a-xstate-machine.md
│ ├── 13_xstate-use-activities-in-xstate-to-run-ongoing-side-effects.md
│ ├── 14_xstate-conditionally-transition-to-states-with-guards-in-xstate.md
│ ├── 15_xstate-simplify-state-explosion-in-xstate-through-hierarchical-states.md
│ ├── 16_xstate-multiple-simultaneous-states-with-parallel-states.md
│ ├── 17_xstate-recall-previous-states-with-xstate-history-states-nodes.md
│ ├── 18_xstate-use-xstate-null-events-and-transient-transitions-to-immediately-transition-states.md
│ ├── 19_xstate-delay-xstate-events-and-transitions.md
│ ├── 20_xstate-invoking-a-promise-for-asynchronous-state-transitions-in-xstate.md
│ ├── 21_xstate-invoke-callbacks-to-send-and-receive-events-from-a-parent-xstate-machine.md
│ └── 22_xstate-invoke-child-xstate-machines-from-a-parent-machine.md
├── learn-the-fundamentals-of-css-and-sass-to-create-modern-and-responsive-layouts-f341
└── notes
│ ├── 01-css-create-a-basic-responsive-grid-system-with-css-grid.md
│ ├── 02-css-apply-aspect-ratio-sizing-to-images-with-css-object-fit.md
│ ├── 03-css-create-basic-effects-with-css-box-shadow.md
│ ├── 04-flexbox-create-an-automatically-responsive-flexbox-gallery.md
│ ├── 05-egghead-create-viewport-responsive-layout-spacing-using-css-clamp.md
│ ├── 06-scss-access-theme-color-values-with-sass.md
│ ├── 07-css-apply-image-filter-effects-with-css.md
│ ├── 08-css-define-and-use-css-custom-properties.md
│ └── 09-html-5-create-an-accessible-group-of-form-fields.md
├── learn-to-use-vim
├── README.md
├── cheatsheet
│ ├── Learn to use vim cheatsheet.xd
│ └── learn-to-use-vim-cheatsheet.pdf
└── notes
│ ├── 01-intro-to-vim.md
│ ├── 02-moving-around-in-vim.md
│ ├── 03-vim-s-different-modes.md
│ ├── 04-saving-files-in-vim.md
│ ├── 05-vim-s-built-in-commands.md
│ ├── 06-combining-vim-commands.md
│ ├── 07-copy-and-paste-inside-of-vim.md
│ ├── 08-configure-vim.md
│ ├── 09-the-vim-config-file.md
│ └── 10-introduction-to-vim-plugins.md
├── manage-application-state-with-jotai-atoms
└── notes
│ ├── 01-react-share-state-between-react-components-with-jotai-useatom.md
│ ├── 02-egghead-derive-state-from-a-jotai-atom-in-react.md
│ ├── 03-egghead-prevent-rerenders-and-add-functionality-with-jotai-write-only-at.md
│ ├── 04-react-structure-jotai-atoms-and-add-functionality-to-a-react-app.md
│ ├── 05-react-preserve-state-by-combining-multiple-jotai-atoms-into-one-atom.md
│ ├── 06-react-add-additional-functionality-by-creating-jotai-atoms-that-hold-atoms.md
│ ├── 07-react-compose-jotai-atoms-to-update-atom-values-from-different-react-components.md
│ ├── 08-react-delete-data-in-a-jotai-atom-by-composing-and-filtering-atoms.md
│ ├── 09-react-undo-actions-on-state-by-implementing-an-undohistory-feature-with-jotai-atoms.md
│ └── 10-react-isolate-state-in-an-application-with-jotai-provider.md
├── manage-complex-tic-tac-toe-game-state-in-react-dddda3f8
├── course-rubric-rquality-results.md
└── notes
│ ├── 01-javascript-create-a-2-dimensional-grid-for-our-tic-tac-toe-game.md
│ ├── 02-css-map-over-a-2-dimensional-array-to-create-a-game-grid-in-react-with-css-grid.md
│ ├── 03-react-convert-a-3x3-tic-tac-toe-grid-interactive-by-adding-buttons-in-react.md
│ ├── 04-react-handle-user-input-by-adding-state-to-the-tic-tac-toe-grid-with-react-usereducer.md
│ ├── 05-react-reset-react-state-with-a-button-and-function-in-our-tic-tac-toe-game.md
│ ├── 06-javascript-check-for-winning-conditions-in-react-usereducer-for-tic-tac-toe.md
│ └── 07-javascript-prevent-impossible-states-and-check-for-draw-conditions-with-guard-statements-in-react.md
├── manage-react-state-with-recoil-fe987643
├── README.md
└── notes
│ ├── 01-react-update-recoil-state-in-react-using-userecoilstate.md
│ ├── 02-react-display-computed-data-using-recoil-selectors-in-react.md
│ ├── 03-react-use-selectorfamily-to-take-arguments-in-your-recoil-selectors.md
│ ├── 04-react-use-recoil-selectors-to-make-api-calls-in-react.md
│ ├── 05-react-handle-recoil-asynchronous-selectors-using-loadables-in-react.md
│ └── 06-react-choose-the-right-hook-for-your-recoil-state.md
├── manipulacion-eficiente-de-arreglos-con-javascript-1e17fc6f
└── notes
│ ├── 01-javascript-4-formas-de-llenar-un-arreglo-en-javascript.md
│ ├── 02-javascript-3-formas-de-actualizar-un-arreglo-de-objetos-en-javascript.md
│ ├── 03-javascript-como-eliminar-elementos-dentro-de-un-arreglo.md
│ └── 04-javascript-4-formas-de-remover-elementos-duplicados-de-un-arreglo-con-javascript.md
├── merge-objects-in-javascript-34b172d4
├── SUMMARY.md
└── notes
│ ├── 01_javascript-shallow-merge-two-objects-in-javascript.md
│ └── 02_javascript-deep-merge-objects-in-javascript-with-spread-lodash-and-deepmerge.md
├── modern-redux-with-redux-toolkit-rtk-and-typescript-64f243c8
├── SUMMARY.md
└── notes
│ ├── 01_react-intro-to-modern-redux-with-rtk-and-typescript.md
│ ├── 02_react-setup-and-explore-our-shopping-cart-application-to-learn-redux-with-typescript.md
│ ├── 03_react-add-redux-and-the-redux-toolkit-rtk-to-an-existing-application.md
│ ├── 04_react-splitting-our-redux-store-into-multiple-slices-using-the-createslice-method.md
│ ├── 05_react-creating-a-rootstate-type-and-typed-hooks-for-type-aware-redux-interactions.md
│ ├── 06_react-access-redux-data-in-a-component-with-the-typescript-enabled-useappselector-hook.md
│ ├── 07_react-create-a-reducer-with-redux-toolkit-and-dispatch-its-action-with-the-useappdispatch-hook.md
│ ├── 08_react-building-a-reducer-method-to-add-an-item-to-the-shopping-cart.md
│ ├── 09_react-create-a-selector-to-aggregate-data-from-our-redux-store.md
│ ├── 10_react-use-createselector-from-redux-toolkit-to-build-a-memoized-selector.md
│ ├── 11_react-combining-data-from-two-redux-slices-to-build-our-shopping-cart.md
│ ├── 12_react-aggregate-price-information-from-two-different-slices-with-createselector.md
│ ├── 13_react-how-to-apply-types-to-redux-selectors.md
│ ├── 14_react-adding-a-button-that-dispatches-an-action-to-redux-to-remove-an-item-from-the-shoppingcart.md
│ ├── 15_react-dispatching-actions-to-redux-when-an-input-field-fires-its-blur-event-with-typescript.md
│ ├── 16_react-using-typescript-and-redux-to-model-the-different-states-of-our-checkout-form.md
│ ├── 17_react-handling-custom-actions-in-our-slice-with-extrareducers-and-the-builder-api.md
│ ├── 18_react-using-thunks-to-dispatch-actions-over-time.md
│ ├── 19_react-using-createasyncthunk-and-the-builder-api-to-generate-redux-actions-for-an-api-call.md
│ ├── 20_react-handling-errors-in-async-thunks-with-builder-addcase.md
│ ├── 21_react-using-the-response-from-an-async-thunk-to-update-the-redux-state.md
│ ├── 22_react-accessing-global-state-inside-of-async-thunks-with-typescript.md
│ └── 23_react-using-the-redux-devtool-support-built-in-to-redux-toolkit.md
├── nuevas-caracteristicas-de-es2020-en-javascript-dd47b252
├── SUMMARY.md
└── notes
│ ├── 01-javascript-encadenamiento-opcional-en-javascript.md
│ ├── 02-javascript-operador-fusion-nula-nullish-coalescing-en-javascript.md
│ └── 03-javascript-importar-modulos-de-javascript-de-forma-dinamica-en-el-navegador.md
├── package.json
├── react-crash-course-with-hooks-ca06
└── notes
│ ├── 00_egghead-write-your-first-react-component-with-codesandbox-io.md
│ ├── 01_egghead-how-react-works.md
│ ├── 02_javascript-think-in-react-by-breaking-your-ui-into-components.md
│ ├── 03_javascript-write-a-custom-function-component-in-react-with-jsx.md
│ ├── 04_javascript-building-a-tree-of-ui-components-in-react-with-children-or-with-self-closing-tags.md
│ ├── 05_javascript-reusing-custom-react-components-by-passing-data-down-as-props.md
│ ├── 06_javascript-create-state-data-that-can-change-in-a-react-component-with-usestate.md
│ ├── 07_javascript-create-a-button-in-react-that-changes-local-state-and-automatically-updates-the-ui.md
│ ├── 08_javascript-display-a-list-in-react-by-looping-over-an-array-of-items.md
│ ├── 09_javascript-adding-styles-to-react-components-with-css-or-inline-styles.md
│ └── 10_javascript-perform-asynchronous-actions-like-fetching-http-data-in-react-with-useeffect.md
├── react-real-time-messaging-with-graph-ql-using-urql-and-one-graph
├── README.md
├── assets
│ ├── egghead-write-a-graphql-subscription-query-in-a-graphiql-editor-request-response.gif
│ ├── egghead-write-a-graphql-subscription-query-in-a-graphiql-editor-websockets.gif
│ ├── graphql-query-multiple-services-with-onegraph-graphiql-editor-onegraph-communication.png
│ ├── graphql-query-multiple-services-with-onegraph-graphiql-editor-onegraph-payload.png
│ ├── graphql-query-multiple-services-with-onegraph-graphiql-editor-traditional-communication.png
│ └── graphql-query-multiple-services-with-onegraph-graphiql-editor-traditional-payloads.png
├── exercises
│ ├── README.md
│ └── community-solutions.md
└── notes
│ ├── 01-graphql-query-multiple-services-with-onegraph-graphiql-editor.md
│ ├── 02-graphql-query-multiple-services-with-urqls-graphql-client-in-react.md
│ ├── 03-graphql-refactor-commonly-used-variables-into-a-utils-file-to-be-shared-across-our-react-app.md
│ ├── 04-graphql-write-an-authenticated-graphql-query-in-onegraph.md
│ ├── 05-graphql-install-and-create-an-onegraph-authentication-object-within-a-react-application.md
│ ├── 06-graphql-create-an-authprovider-component-for-our-react-application-to-use-through-react-context.md
│ ├── 07-08-egghead-authprovider-component-and-pass-auth-headers-to-urql-fetchOptions.md
│ ├── 09-graphql-query-github-comments-with-onegraph-through-urql-s-client-in-react.md
│ ├── 10-graphql-display-graphql-data-with-a-react-component.md
│ ├── 11-graphql-style-a-list-component.md
│ ├── 12-graphql-use-a-graphql-mutation-to-create-a-github-issue-comment.md
│ ├── 13-graphql-use-urqls-usemutation-to-create-github-issues-in-a-react-app.md
│ ├── 14-css-style-a-react-input-component-with-css-in-js.md
│ ├── 15-graphql-write-a-graphql-subscription-query-in-the-graphiql-editor.md
│ ├── 16-react-extract-a-react-view-component-from-a-commentquery-component.md
│ ├── 17-react-write-a-subscription-graphql-query-in-react-with-urql.md
│ ├── 18-react-reduce-a-graphql-subscription-stream-into-a-collection-with-urql.md
│ ├── 19-react-display-graphql-subscription-results-in-a-react-ui.md
│ └── 20-react-use-a-graphql-query-and-subscription-together-to-fetch-the-history-and-current-comments.md
├── scale-react-development-with-nx
├── README.md
└── notes
│ ├── 01-create-a-new-empty-nx-workspace.md
│ ├── 02-generate-a-new-react-app-with-nx.md
│ ├── 03-generate-new-projects-for-nx-with-nx-console.md
│ ├── 04-running-a-react-app-in-the-browser-with-nx.md
│ ├── 05-install-and-use-external-npm-packages-in-an-nx-workspace.md
│ ├── 06-add-styling-to-a-react-app-inside-an-nx-workspace.md
│ ├── 07-configure-assets-for-my-react-app-in-an-nx-workspace.md
│ ├── 08-create-a-shared-react-library-in-an-nx-workspace.md
│ ├── 09-generate-a-typescript-library-in-an-nx-workspace.md
│ ├── 10-use-the-nx-dependency-graph-to-visualize-your-monorepo-structure.md
│ ├── 11-create-react-feature-libraries-in-an-nx-workspace.md
│ ├── 12-create-an-express-backend-api-in-an-nx-workspace.md
│ ├── 13-use-run-commands-to-launch-the-api-and-app-of-an-nx-workspace.md
│ ├── 14-connect-to-an-express-js-api-from-a-react-app-in-an-nx-workspace.md
│ ├── 15-share-and-reuse-functionality-with-libraries-in-nx.md
│ ├── 16-share-code-between-a-react-frontend-and-node-js-backend-application-in-nx.md
│ ├── 17-use-storybook-to-develop-react-components-in-nx.md
│ ├── 18-use-cypress-and-storybook-to-test-your-react-components-in-isolation.md
│ ├── 19-run-jest-tests-for-a-react-app-with-nx.md
│ ├── 20-building-your-react-app-with-nx.md
│ ├── 21-linting-a-react-app-with-nx.md
│ ├── 22-scale-ci-runs-with-nx-affected-commands.md
│ └── 23-speed-up-with-nx-computation-caching.md
├── serverless-cf0acfbf
└── notes
│ ├── 00_egghead-serverless-set-up-project.md
│ ├── 01_egghead-serverless-set-up-local-dev.md
│ ├── 02_egghead-serverless-netlify-dev-typescript.md
│ ├── 03_egghead-serverless-add-form.md
│ ├── 04_egghead-serverless-submit-function.md
│ ├── 05_egghead-serverless-submit-form-to-function.md
│ └── 06_egghead-serverless-deploy.md
├── simplify-react-apps-with-react-hooks
├── notes
│ ├── 02-react-class-component-to-function-component.md
│ ├── 03-deep-comparison-with-useref.md
│ ├── 04-safe-setstate-on-mounted-component.md
│ ├── 05-06-generic-code-to-custom-hook.md
│ ├── 07-refactor-class-component-using-useContext.md
│ ├── 08-refactor-renderprop-using-custom-hook.md
│ ├── 09-componentdidmount-componentwillunmount-refactor.md
│ ├── 10-dynamic-import-using-lazy-suspense.md
│ └── 11-preload-components-using-useeffect.md
└── readme.md
├── src
├── index.js
└── public
│ ├── error.html
│ ├── index.html
│ └── success.html
├── sync-state-across-components-with-recoil-in-react
├── 01-use-recoil-atom-to-share-state-between-two-react-components.md
├── 02-use-userecoilvalue-hook-to-read-a-value-from-a-recoil-atom.md
└── 03-use-selectors-to-calculate-derived-data-based-on-state-stored-within-a-recoil-atom.md
├── synchronize-client-and-server-state-in-react-using-apollo-client-a45b3b89
├── SUMMARY.md
└── notes
│ ├── 01_egghead-perform-graphql-queries-using-apollo-s-usequery-hook.md
│ ├── 02_egghead-why-have-a-client-side-graphql-cache.md
│ ├── 03_egghead-use-fetch-policies-in-apollo-to-keep-your-queries-fast-and-fresh-with-the-latest-data.md
│ ├── 04_egghead-handle-loading-states-for-your-graphql-queries.md
│ ├── 05_egghead-handle-graphql-query-error-states-using-apollo.md
│ ├── 06_egghead-use-the-retrylink-in-apollo-to-retry-queries-after-an-error.md
│ ├── 07_egghead-make-graphql-mutations-with-the-usemutation-apollo-hook.md
│ ├── 08_egghead-understand-how-apollo-stores-data-in-its-cache.md
│ ├── 09_egghead-update-the-local-cache-automatically-when-making-mutations.md
│ ├── 10_egghead-optimise-queries-to-ensure-all-entities-are-normalised-in-the-apollo-cache.md
│ ├── 11_egghead-handle-item-deletions-in-apollo-using-refetchqueries.md
│ ├── 12_egghead-manually-modify-the-cache-to-remove-deleted-items.md
│ ├── 13_egghead-use-optimistic-updates-to-build-uis-that-react-immediately-to-user-actions.md
│ ├── 14_egghead-evict-deleted-items-from-the-apollo-cache.md
│ ├── 15_egghead-use-fetchmore-and-merge-field-policies-to-dynamically-load-more-items-into-a-list.md
│ ├── 16_egghead-use-read-field-policies-to-query-local-client-state.md
│ ├── 17_egghead-use-the-readfield-helper-to-get-the-id-of-items-in-read-field-policies.md
│ ├── 18_egghead-use-reactive-variables-to-hold-local-client-state-in-apollo-s-cache.md
│ ├── 19_egghead-implement-cache-redirect-policies-to-avoid-slow-network-requests-for-new-queries.md
│ ├── 20_egghead-incrementally-migrate-from-rest-to-graphql-using-the-restlink.md
│ ├── 21_egghead-keep-queries-in-sync-with-the-backend-by-polling-for-new-data.md
│ ├── 22_egghead-subscribe-to-immediate-live-updates-from-your-server.md
│ ├── 23_egghead-append-graphql-subscription-updates-to-existing-queries.md
│ └── 24_egghead-provide-quick-app-start-up-times-by-syncing-the-apollo-cache-with-local-storage.md
├── test-react-components-with-enzyme-and-jest
├── README.md
└── notes
│ ├── 01-course-overview-testing-react-components-with-enzyme-and-jest.md
│ ├── 02-install-enzyme-and-configure-jest.md
│ ├── 03-test-against-different-react-releases-with-enzyme.md
│ ├── 04-shallow-render-a-react-component-with-enzyme.md
│ ├── 05-find-nodes-from-a-shallow-rendered-component.md
│ ├── 06-understand-the-different-accepted-selectors-in-enzyme.md
│ ├── 07-test-enzyme-rendered-components-with-jest-snapshots.md
│ ├── 08-test-react-component-props-with-enzyme-and-jest.md
│ ├── 09-fully-render-react-components-with-enzyme.md
│ ├── 10-test-simulated-event-handlers-with-enzyme.md
│ ├── 11-test-new-component-state-with-set-state-in-enzyme.md
│ ├── 12-test-react-component-lifecycle-methods-with-enzyme.md
│ ├── 13-test-react-component-methods-with-enzyme.md
│ ├── 14-test-redux-connect-components-with-enzyme.md
│ └── 15-testing-react-forms-with-enzyme.md
├── testing
├── README.MD
└── notes
│ └── test.md
├── testing2
├── README.MD
└── lessons
│ └── test.md
├── the-beginner-s-guide-to-react
├── README.md
└── notes
│ ├── 00-react-a-beginners-guide-to-react-introduction.md
│ ├── 01-react-create-a-user-interface-with-vanilla-javascript-and-dom.md
│ ├── 02-react-create-a-user-interface-with-react-s-createelement-api.md
│ ├── 03-react-create-a-user-interface-with-react-s-jsx-syntax.md
│ ├── 04-react-use-jsx-effectively-with-react.md
│ ├── 05-react-render-two-elements-side-by-side-with-react-fragments.md
│ ├── 06-react-create-a-simple-reusable-react-component-50d59130.md
│ ├── 07-react-validate-custom-react-component-props-with-proptypes-9e1b5b13.md
│ ├── 08-react-understand-and-use-interpolation-in-jsx.md
│ ├── 09-react-rerender-a-react-application-bea3a0e6.md
│ ├── 10-react-style-react-components-with-classname-and-inline-styles.md
│ ├── 11-react-use-event-handlers-with-react-bd53256d.md
│ ├── 12-react-manage-state-in-a-react-component-with-the-usestate-hook.md
│ ├── 13-react-manage-side-effects-in-a-react-component-with-the-useeffect-hook.md
│ ├── 14-react-use-a-lazy-initializer-with-usestate.md
│ ├── 15-react-manage-the-useeffect-dependency-array.md
│ ├── 16-react-create-reusable-custom-hooks.md
│ ├── 17-react-manipulate-the-dom-with-react-refs-cad5c6be.md
│ ├── 18-react-understand-the-react-hook-flow.md
│ ├── 19-react-make-basic-forms-with-react-cfc2ec08.md
│ ├── 20-react-make-dynamic-forms-with-react-d69753ec.md
│ ├── 21-react-controlling-form-values-with-react-4627dd2d.md
│ ├── 22-react-using-react-error-boundaries-to-handle-errors-in-react-components.md
│ ├── 23-react-use-the-key-prop-when-rendering-a-list-with-react-12564a86.md
│ ├── 24-react-lifting-and-colocating-react-state.md
│ ├── 25-react-make-http-requests-with-react-2fc53967.md
│ ├── 26-react-handle-http-errors-with-react.md
│ ├── 27-react-install-and-use-react-devtools.md
│ ├── 28-react-build-and-deploy-a-react-application-with-codesandbox-github-and-netlify.md
│ ├── 29-react-a-beginners-guide-to-react-outro.md
│ └── images
│ ├── logo.png
│ ├── react-a-beginners-guide-to-react-introduction-setupsetup.png
│ ├── react-build-and-deploy-a-react-application-with-codesandbox-github-and-netlify-codesandbox.png
│ ├── react-build-and-deploy-a-react-application-with-codesandbox-github-and-netlify-deploy.png
│ ├── react-build-and-deploy-a-react-application-with-codesandbox-github-and-netlify-website.png
│ ├── react-create-a-user-interface-with-react-s-jsx-syntax-babel.png
│ ├── react-install-and-use-react-devtools-devtools.png
│ ├── react-install-and-use-react-devtools-devtools2.png
│ ├── react-install-and-use-react-devtools-filter.png
│ ├── react-install-and-use-react-devtools-profiler.png
│ ├── react-install-and-use-react-devtools-twitter.png
│ └── react-understand-the-react-hook-flow-hook-flow.png
├── thinking-reactively-with-rxjs
├── README.md
└── notes
│ ├── 01-rxjs-course-intro.md
│ ├── 02-rxjs-use-reactive-rxjs-based-solutions-for-complex-problems.md
│ ├── 03-rxjs-break-down-a-requirement-into-small-problems.md
│ ├── 04-rxjs-pipe-events-to-numbers-and-maintain-a-running-count-using-the-scan-operator.md
│ ├── 05-rxjs-create-safe-and-predictable-observable-abstractions.md
│ ├── 06-rxjs-maintain-shared-observable-state-using-the-scan-and-sharereplay-operators.md
│ ├── 07-rxjs-use-the-filter-and-pairwise-operators-to-determine-when-to-show-and-hide-the-spinner.md
│ ├── 08-rxjs-build-an-observable-from-a-simple-english-requirement.md
│ ├── 09-rxjs-expose-complex-reactive-code-as-simple-function-based-apis.md
│ ├── 10-rxjs-encapsulate-complex-imperative-logic-in-a-simple-observable.md
│ ├── 11-rxjs-extend-your-reactive-logic-using-observable-like-proxies-that-delay-or-drop-events.md
│ ├── 12-rxjs-use-combinelatest-to-only-emit-notifications-when-certain-events-have-happened.md
│ ├── 13-rxjs-maintain-self-resetting-state-in-your-observable-streams-using-the-scan-operator.md
│ ├── 14-rxjs-build-an-event-combo-observable.md
│ ├── 15-rxjs-extend-promises-by-adding-custom-behaviour.md
│ ├── 16-rxjs-simplify-usage-of-your-reactive-service-by-building-an-rxjs-operator-to-manage-it-for-you.md
│ └── 17-rxjs-use-exhaustmap-to-wait-for-open-combos-to-finish-before-starting-new-ones.md
├── up-and-running-with-redux-observable
└── notes
│ ├── 01-react-add-redux-to-a-react-application.md
│ ├── 02-redux-use-actions-to-modify-the-state-of-the-redux-store.md
│ ├── 03-redux-observable-add-redux-observable-to-an-existing-redux-project.md
│ ├── 04-redux-debug-redux-observable-with-redux-dev-tools.md
│ ├── 05-redux-use-redux-observable-for-simple-ajax-requests.md
│ ├── 06-redux-create-a-queue-of-ajax-requests-with-redux-observable-and-group-the-results.md
│ ├── 07-redux-debounce-user-input-to-avoid-repeated-ajax-requests.md
│ ├── 08-redux-handle-network-errors-gracefully.md
│ ├── 09-redux-filter-a-stream-to-exclude-empty-values.md
│ ├── 10-react-use-an-action-to-cancel-an-ajax-request.md
│ ├── 11-react-testing-the-output-of-epics.md
│ ├── 12-redux-mocking-an-ajax-request-when-testing-epics.md
│ ├── 13-redux-use-tests-to-verify-updates-to-the-redux-store.md
│ └── course-quality-rubric.md
├── up-and-running-with-svelte-3
├── README.md
└── notes
│ ├── 01-wtf-is-svelte.md
│ ├── 02-create-a-new-project-with-svelte-3.md
│ ├── 03-add-data-to-html-markup-using-svelte-3.md
│ ├── 04-up-and-running-with-svelte-3.md
│ ├── 05-create-a-new-svelte-3-component-to-render-it-inside-of-another-component.md
│ ├── 06-declare-and-pass-in-properties-to-a-svelte-3-component.md
│ ├── 07-compose-components-with-slots-in-svelte-3.md
│ ├── 08-use-named-slots-to-compose-multiple-components-in-svelte-3.md
│ ├── 09-render-html-directly-into-a-component-in-svelte-3.md
│ ├── 10-use-svelte-3-to-gracefully-show-and-hide-DOM-elements.md
│ ├── 11-use-reactive-declarations-to-compute-component-state-in-svelte-3.md
│ ├── 12-loop-over-and-render-a-list-of-data-using-an-each-block-in-Svelte-3.md
│ ├── 13-use-await-block-to-wait-for-a-promise-and-handle-loading-state-in-svelte-3.md
│ ├── 14-use-dom-events-and-event-modifiers-in-svelte-3.md
│ ├── 15-use-an-onmount-lifecycle-method-to-fetch-and-render-data-in-svelte-3.md
│ ├── 16-use-svelte-3-stores-to-share-data-between-multiple-unrelated-components.md
│ ├── 17-set-a-value-to-a-svelte-3-store.md
│ ├── 18-use-auto-subscriptions-in-svelte-3-to-avoid-memory-leaks-when-using-stores.md
│ ├── 19-tween-a-value-and-dynamically-update-the-dom-with-svelte-3.md
│ └── 20-create-a-new-svelte-project-with-typescript-support.md
├── web-components-f902
└── notes
│ ├── 00_javascript-render-hello-world-text-with-custom-elements.md.md
│ ├── 01_html-5-build-flexible-html-with-htmltemplates-using-slots-and-web-components.md.md
│ ├── 02_html-5-avoiding-css-conflicts-via-shadow-dom-css-encapsulation.md.md
│ ├── 03_html-5-allow-external-styling-of-a-web-component-s-shadow-dom.md.md
│ ├── 04_javascript-web-components-explicit-api-s-using-class-methods.md.md
│ ├── 05_javascript-using-custom-events-as-a-web-component-api.md.md
│ └── 06_javascript-enabling-css-manipulation-inside-the-shadow-dom-using-the-part-pseudo-class.md.md
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .env
3 | .vscode
4 | node_modules
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-book-information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-book-information.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-english-translation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-english-translation.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-french-translation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-french-translation.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-homepage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-homepage.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-spanish-translation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-spanish-translation.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-toggle-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/02-convert-a-hard-coded-string-using-react-intl-formatted-message-toggle-button.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-author-translate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-author-translate.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-average-rating-translate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-average-rating-translate.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-review-translate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/03-render-content-with-placeholders-using-react-intl-formatted-message-review-translate.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/04-render-content-with-markup-using-react-intl-formatted-html-message-markdown-render.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/04-render-content-with-markup-using-react-intl-formatted-html-message-markdown-render.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-2-digit-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-2-digit-date.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-formatted-time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-formatted-time.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-long-month-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-long-month-date.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-numeric-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/05-format-date-and-time-using-react-intl-formatted-date-and-formatted-time-numeric-date.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-relative-date-days.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-relative-date-days.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-short.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-short.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-update-interval.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/06-format-a-date-relative-to-the-current-date-using-react-intl-formatted-relative-update-interval.gif
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/07-format-numbers-with-separators-and-currency-symbols-using-react-intl-formatted-number-currency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/07-format-numbers-with-separators-and-currency-symbols-using-react-intl-formatted-number-currency.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-conditional-reviews-many.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-conditional-reviews-many.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-reviews-before.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-reviews-before.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-zero-reviews.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/08-render-content-based-on-a-number-using-react-intl-formatted-message-zero-reviews.png
--------------------------------------------------------------------------------
/add-internationalization-to-react-app-using-react-intl/notes/images/09-use-a-react-intl-higher-order-component-to-format-messages-and-get-current-locale-object-placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/add-internationalization-to-react-app-using-react-intl/notes/images/09-use-a-react-intl-higher-order-component-to-format-messages-and-get-current-locale-object-placeholder.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/01-import-data.md:
--------------------------------------------------------------------------------
1 | # Import Data
2 |
3 | ## 01.
4 |
5 | Your goal is to bulk import CSV data into the users, purchases, and products tables. You will have to use the method shown in https://egghead.io/lessons/postgresql-bulk-insert-and-export-data-with-csv-files to complete this exercise.
6 |
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/02-cast-int-to-string.md:
--------------------------------------------------------------------------------
1 | # Cast Int to String
2 |
3 | ## 01.
4 |
5 | Your goal is to cast an integer into a string. Use both the long and shorthand methods of casting types. You will have to research the correct syntax yourself in order to complete this exercise.
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/03-enum.md:
--------------------------------------------------------------------------------
1 | # Create a Custom ENUM Type
2 |
3 | ## 01.
4 |
5 | Your goal is to add role column to the users table. You've been asked to add the "buyer", "seller", and "admin" roles to the user. You will have to create an ENUM type and then alter the user's table.
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/04-profile.md:
--------------------------------------------------------------------------------
1 | # Profile Queries
2 |
3 | ## 01.
4 |
5 | The goal is to profile two queries. You've been asked to profile a query where the users are younger than 40 and another query where the users are older than 40. You will need to use analyze to see a difference.
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/06-filter-data.md:
--------------------------------------------------------------------------------
1 | # Filter Data
2 |
3 | ## 01.
4 | Your goal is to return all female users in their 20's that have purchased more than 100 products. You will need to filter aggregate and row data.
5 |
6 | ## 02.
7 | What other ways can you filter this data?
8 | How could find demographic purchases the most of a single product?
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/README.md:
--------------------------------------------------------------------------------
1 | # adv-sql
2 |
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/solutions/02-cast-int-to-string.md:
--------------------------------------------------------------------------------
1 | # Solutions
2 |
3 | ## 01.
4 |
5 | ### Longhand
6 | `select cast (10 as text);`
7 |
8 | ### Shorthand
9 | `select 10::text;`
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/solutions/03-enum.md:
--------------------------------------------------------------------------------
1 | # Solutions
2 |
3 | ## 01.
4 | First create the ENUM
5 | ```sql
6 | create type user_role as enum ('buyer', 'seller', 'admin');
7 | ```
8 |
9 | Then add the column to the users table
10 | ```sql
11 | alter table users add column role user_role;
12 | ```
13 |
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/solutions/04-profile.md:
--------------------------------------------------------------------------------
1 | # Solutions
2 |
3 | ## 01.
4 | Profile users younger than 40
5 | ```sql
6 | explain analyse select * from users where age < 40;
7 | ```
8 |
9 | Profile users older than 40
10 | ```sql
11 | explain analyse select * from users where age > 40;
12 | ```
13 |
14 | What's the difference in performance time?
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/exercises/solutions/06-filter-data.md:
--------------------------------------------------------------------------------
1 | ```sql
2 | SELECT
3 | u.user_handle,
4 | sum(p.quantity)
5 | FROM
6 | users u
7 | LEFT JOIN
8 | purchases p
9 | ON
10 | u.user_handle = p.user_handle
11 | WHERE
12 | u.age > 19
13 | AND
14 | u.age < 30
15 | AND
16 | u.gender = 'Female'
17 | GROUP BY
18 | u.user_handle
19 | HAVING
20 | sum(p.quantity) > 100
21 | ORDER BY
22 | user_handle;
23 | ```
24 | Answer:
25 | ```
26 | user_handle | sum
27 | -------------+-----
28 | 2 | 146
29 | 36 | 126
30 | 93 | 110
31 | ```
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/bulk-insert-reverse-to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/bulk-insert-reverse-to.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/bulk-insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/bulk-insert.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/case-statement-anatomy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/case-statement-anatomy.jpg
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/casting-types-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/casting-types-1.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/casting-types-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/casting-types-2.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/explain-sql-output.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/explain-sql-output.jpg
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/json-data.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/json-data.png
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/like-illustration.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/like-illustration.jpeg
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/sql-bulkimport.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/sql-bulkimport.gif
--------------------------------------------------------------------------------
/advanced-sql-for-professional-developers/notes/images/withwithoutfilter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/advanced-sql-for-professional-developers/notes/images/withwithoutfilter.jpg
--------------------------------------------------------------------------------
/auditing-react-apps-for-accessibility-08733265/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eggheadio/eggheadio-course-notes/257932cf8e2bdc6d8a08adb30a2542873ac7e73d/auditing-react-apps-for-accessibility-08733265/README.md
--------------------------------------------------------------------------------
/auditing-react-apps-for-accessibility-08733265/notes/01-react-audit-component-accessibility-using-storybook.md:
--------------------------------------------------------------------------------
1 | # [Audit Component Accessibility Using Storybook]()
2 |
3 |
4 |