diff --git a/exercises/01.elements/01.problem.reuse/README.mdx b/exercises/01.elements/01.problem.reuse/README.mdx
index b4544c5a..2dd50988 100644
--- a/exercises/01.elements/01.problem.reuse/README.mdx
+++ b/exercises/01.elements/01.problem.reuse/README.mdx
@@ -1,5 +1,7 @@
# Reusing Elements
+
+
👨💼 We're going to be building a simple user interface and in the process we want
to limit unnecessary renders as much as possible (not because it's necessary
for this specific application, but because it's a useful exercise for you to
diff --git a/exercises/01.elements/01.solution.reuse/README.mdx b/exercises/01.elements/01.solution.reuse/README.mdx
index 242a4dd7..5e1f9bd5 100644
--- a/exercises/01.elements/01.solution.reuse/README.mdx
+++ b/exercises/01.elements/01.solution.reuse/README.mdx
@@ -1,4 +1,6 @@
# Reusing Elements
+
+
👨💼 Great! Now we're not unnecessarily rendering the `Footer` component. But
let's complicate things a little bit more...
diff --git a/exercises/01.elements/02.problem.props/README.mdx b/exercises/01.elements/02.problem.props/README.mdx
index ef215e49..317422f7 100644
--- a/exercises/01.elements/02.problem.props/README.mdx
+++ b/exercises/01.elements/02.problem.props/README.mdx
@@ -1,5 +1,7 @@
# Element Props
+
+
🧝♂️ I've enhanced our app a bit to add some buttons that will control the color
of our footer. This means we can't just render the component outside the `App`
component since we need to pass the `color` as a prop. Feel free
diff --git a/exercises/01.elements/02.solution.props/README.mdx b/exercises/01.elements/02.solution.props/README.mdx
index b53adc1d..7c5e535d 100644
--- a/exercises/01.elements/02.solution.props/README.mdx
+++ b/exercises/01.elements/02.solution.props/README.mdx
@@ -1,5 +1,7 @@
# Element Props
+
+
👨💼 Great! So we can still make dynamic elements that are positioned where we
want them to be without allowing them to be rerendered with every state change
by passing them as props! This is the composition pattern from the Advanced
diff --git a/exercises/01.elements/03.problem.context/README.mdx b/exercises/01.elements/03.problem.context/README.mdx
index a7ef584a..5541a0cb 100644
--- a/exercises/01.elements/03.problem.context/README.mdx
+++ b/exercises/01.elements/03.problem.context/README.mdx
@@ -1,5 +1,7 @@
# Context
+
+
👨💼 We now have a counter inside the `App` component and every time that count is
incremented, we trigger a rerender of the `Footer` component! Have we lost the
ability to take advantage of React's element optimization? No!
diff --git a/exercises/01.elements/03.solution.context/README.mdx b/exercises/01.elements/03.solution.context/README.mdx
index b2a1725d..d43dc7b0 100644
--- a/exercises/01.elements/03.solution.context/README.mdx
+++ b/exercises/01.elements/03.solution.context/README.mdx
@@ -1,4 +1,6 @@
# Context
+
+
👨💼 Interesting that we can manage to really take this optimization with React
elements so far huh? Well, let's try another one...
diff --git a/exercises/01.elements/04.problem.use-memo/README.mdx b/exercises/01.elements/04.problem.use-memo/README.mdx
index f0f69ae7..c5502848 100644
--- a/exercises/01.elements/04.problem.use-memo/README.mdx
+++ b/exercises/01.elements/04.problem.use-memo/README.mdx
@@ -1,5 +1,7 @@
# Memoize Elements
+
+
👨💼 Now we want our users to be able to type their name and have that show up in
the footer. But we don't want to use context for the name like we do with the
color just yet. We just want to be able to pass the `name` as a regular prop.
diff --git a/exercises/01.elements/04.solution.use-memo/README.mdx b/exercises/01.elements/04.solution.use-memo/README.mdx
index ed0c44c2..f8fe79ff 100644
--- a/exercises/01.elements/04.solution.use-memo/README.mdx
+++ b/exercises/01.elements/04.solution.use-memo/README.mdx
@@ -1,5 +1,7 @@
# Memoize Elements
+
+
👨💼 This is a bit of an unconventional approach to optimizing things, but it's
cool to understand how all this works and see how far we can take this
optimization that's built-into React! Let's take this a bit further with
diff --git a/exercises/01.elements/05.problem.memo/README.mdx b/exercises/01.elements/05.problem.memo/README.mdx
index ef82fdd1..342dab4a 100644
--- a/exercises/01.elements/05.problem.memo/README.mdx
+++ b/exercises/01.elements/05.problem.memo/README.mdx
@@ -1,5 +1,7 @@
# Memoize Components
+
+
🦉 Memoizing elements is such a common idea that React has a built-in optimizer
called `memo` which allows you to memoize an entire component based on its
props:
diff --git a/exercises/01.elements/05.solution.memo/README.mdx b/exercises/01.elements/05.solution.memo/README.mdx
index d2e9a431..fb3064a8 100644
--- a/exercises/01.elements/05.solution.memo/README.mdx
+++ b/exercises/01.elements/05.solution.memo/README.mdx
@@ -1,5 +1,7 @@
# Memoize Components
+
+
👨💼 Great work!
🦉 What's interesting is we could actually move the `Footer` to be rendered
diff --git a/exercises/01.elements/FINISHED.mdx b/exercises/01.elements/FINISHED.mdx
index de61630a..777aa0b7 100644
--- a/exercises/01.elements/FINISHED.mdx
+++ b/exercises/01.elements/FINISHED.mdx
@@ -1,5 +1,7 @@
# Element Optimization
+
+
👨💼 Great work! You've really explored React's element optimization a lot in this
exercise and hopefully it informs how you structure your components going
forward.
diff --git a/exercises/01.elements/README.mdx b/exercises/01.elements/README.mdx
index 8d573bbd..b5abbeed 100644
--- a/exercises/01.elements/README.mdx
+++ b/exercises/01.elements/README.mdx
@@ -1,5 +1,7 @@
# Element Optimization
+
+
Elements are the fundamentals building blocks of React UI. It was the first
we started with when you started learning React in this workshop series. And
React has some smarts under the hood we can take advantage of when we're
diff --git a/exercises/02.context/01.problem.memo-context/README.mdx b/exercises/02.context/01.problem.memo-context/README.mdx
index 3495ada2..ffac291b 100644
--- a/exercises/02.context/01.problem.memo-context/README.mdx
+++ b/exercises/02.context/01.problem.memo-context/README.mdx
@@ -1,5 +1,7 @@
# Memoize Context
+
+
🧝♂️ I've taken the `name` and `color` state and combined them into a single
`FooterContext` as well as extracted some of the UI into a `FooterSetters`
component (for all the stuff that allows you to control the `Footer`). Feel free
diff --git a/exercises/02.context/01.solution.memo-context/README.mdx b/exercises/02.context/01.solution.memo-context/README.mdx
index ad08fc6d..a744e8c6 100644
--- a/exercises/02.context/01.solution.memo-context/README.mdx
+++ b/exercises/02.context/01.solution.memo-context/README.mdx
@@ -1,4 +1,6 @@
# Memoize Context
+
+
👨💼 Super duper! You've been able to keep our components rerendering only when
necessary again. Well done.
diff --git a/exercises/02.context/02.problem.provider-component/README.mdx b/exercises/02.context/02.problem.provider-component/README.mdx
index aec4b6fd..ed22cf31 100644
--- a/exercises/02.context/02.problem.provider-component/README.mdx
+++ b/exercises/02.context/02.problem.provider-component/README.mdx
@@ -1,5 +1,7 @@
# Provider Component
+
+
👨💼 We've noticed that when we change some of the Footer context stuff, we're
actually rerendering the `App` and `Main` components even though those don't
have anything to do with the Footer context.
diff --git a/exercises/02.context/02.solution.provider-component/README.mdx b/exercises/02.context/02.solution.provider-component/README.mdx
index 1460f130..15b9136e 100644
--- a/exercises/02.context/02.solution.provider-component/README.mdx
+++ b/exercises/02.context/02.solution.provider-component/README.mdx
@@ -1,5 +1,7 @@
# Provider Component
+
+
👨💼 Great work! You've eliminated more unnecessary rerenders!
🦉 This is a really common pattern in the React community. It's kind of natural.
diff --git a/exercises/02.context/03.problem.split-context/README.mdx b/exercises/02.context/03.problem.split-context/README.mdx
index 17b5228d..e7c3984d 100644
--- a/exercises/02.context/03.problem.split-context/README.mdx
+++ b/exercises/02.context/03.problem.split-context/README.mdx
@@ -1,5 +1,7 @@
# Split Context
+
+
👨💼 Something you may have noticed is that the `FooterSetters` component is
rerendering whenever the footer state changes, but that component doesn't
actually depend on the footer state at all. All it cares about is the setter
diff --git a/exercises/02.context/03.solution.split-context/README.mdx b/exercises/02.context/03.solution.split-context/README.mdx
index e9f16a44..6f801d8f 100644
--- a/exercises/02.context/03.solution.split-context/README.mdx
+++ b/exercises/02.context/03.solution.split-context/README.mdx
@@ -1,4 +1,6 @@
# Split Context
+
+
👨💼 You've done good work! When you've got a lot of components that only consume
the setters, this can be a good way to optimize those components.
diff --git a/exercises/02.context/FINISHED.mdx b/exercises/02.context/FINISHED.mdx
index 7e2d83d7..11345c16 100644
--- a/exercises/02.context/FINISHED.mdx
+++ b/exercises/02.context/FINISHED.mdx
@@ -1,4 +1,6 @@
# Optimize Context
+
+
👨💼 Great work! You now have some great context optimizations in your back
pocket to use whenever you run into performance problems (and not before!!).
diff --git a/exercises/02.context/README.mdx b/exercises/02.context/README.mdx
index 879d709b..629e9d51 100644
--- a/exercises/02.context/README.mdx
+++ b/exercises/02.context/README.mdx
@@ -1,5 +1,7 @@
# Optimize Context
+
+
The way that context works is that whenever the provided value changes from one
render to another, it triggers a re-render of all the consuming components
(which will re-render whether or not they're memoized).
diff --git a/exercises/03.concurrent-rendering/01.problem.deferred/README.mdx b/exercises/03.concurrent-rendering/01.problem.deferred/README.mdx
index 34222749..85fab25b 100644
--- a/exercises/03.concurrent-rendering/01.problem.deferred/README.mdx
+++ b/exercises/03.concurrent-rendering/01.problem.deferred/README.mdx
@@ -1,5 +1,7 @@
# useDeferredValue + memo
+
+
👨💼 We've got a performance problem with our `Card` component in this UI. (🧝♂️
actually, I just added an arbitrary slowdown to simulate a problem to keep this
exercise simple while still teaching the lesson). As a result, every time we
diff --git a/exercises/03.concurrent-rendering/01.solution.deferred/README.mdx b/exercises/03.concurrent-rendering/01.solution.deferred/README.mdx
index 5a8ee9f6..41b84b23 100644
--- a/exercises/03.concurrent-rendering/01.solution.deferred/README.mdx
+++ b/exercises/03.concurrent-rendering/01.solution.deferred/README.mdx
@@ -1,5 +1,7 @@
# useDeferredValue + memo
+
+
👨💼 Great work! You've managed to drastically improve this user experience by
making the UI responsive even when rerendering the cards is slow. All with a
simple `memo` and a `useDeferredValue`. Great job!
diff --git a/exercises/03.concurrent-rendering/FINISHED.mdx b/exercises/03.concurrent-rendering/FINISHED.mdx
index e77b0e53..403f0617 100644
--- a/exercises/03.concurrent-rendering/FINISHED.mdx
+++ b/exercises/03.concurrent-rendering/FINISHED.mdx
@@ -1,5 +1,7 @@
# Concurrent Rendering
+
+
👨💼 React managed to provide this feature to developers by re-writing the
internals of React while avoiding huge breaking changes to developer's apps.
Really impressive! And now you know how to take advantage of `useDeferredValue`
diff --git a/exercises/03.concurrent-rendering/README.mdx b/exercises/03.concurrent-rendering/README.mdx
index 88e659fb..e18dde77 100644
--- a/exercises/03.concurrent-rendering/README.mdx
+++ b/exercises/03.concurrent-rendering/README.mdx
@@ -1,5 +1,7 @@
# Concurrent Rendering
+
+
Sometimes, you're rendering so many components or those components are doing
such complex things that you can't afford to render them all quickly enough.
diff --git a/exercises/04.code-splitting/01.problem.lazy/README.mdx b/exercises/04.code-splitting/01.problem.lazy/README.mdx
index 5d64ad49..7e8c588a 100644
--- a/exercises/04.code-splitting/01.problem.lazy/README.mdx
+++ b/exercises/04.code-splitting/01.problem.lazy/README.mdx
@@ -1,5 +1,7 @@
# lazy
+
+
👨💼 Our app has a neat Globe component that shows the user where they are on the
globe. Cool right? It's super duper fun.
diff --git a/exercises/04.code-splitting/01.solution.lazy/README.mdx b/exercises/04.code-splitting/01.solution.lazy/README.mdx
index 32be0fd7..dc206572 100644
--- a/exercises/04.code-splitting/01.solution.lazy/README.mdx
+++ b/exercises/04.code-splitting/01.solution.lazy/README.mdx
@@ -1,5 +1,7 @@
# lazy
+
+
👨💼 Great! That makes our initial page load **much** lighter than before. Based
on my count in the development environment, we've gone from 2.0 MB JavaScript
downloaded to 1.4 MB. That's a 30% reduction in the amount of JavaScript we're
diff --git a/exercises/04.code-splitting/02.problem.eager/README.mdx b/exercises/04.code-splitting/02.problem.eager/README.mdx
index aafcb5da..a5feeadb 100644
--- a/exercises/04.code-splitting/02.problem.eager/README.mdx
+++ b/exercises/04.code-splitting/02.problem.eager/README.mdx
@@ -1,5 +1,7 @@
# Eager Loading
+
+
👨💼 So it's great that the users can get the app loaded faster, but it's annoying
when 99% of the time the reason the users are using the app is so they can
interact with our globe. We don't want to have to make them wait first to load
diff --git a/exercises/04.code-splitting/02.solution.eager/README.mdx b/exercises/04.code-splitting/02.solution.eager/README.mdx
index 24ff06b2..8ba40f2c 100644
--- a/exercises/04.code-splitting/02.solution.eager/README.mdx
+++ b/exercises/04.code-splitting/02.solution.eager/README.mdx
@@ -1,5 +1,7 @@
# Eager Loading
+
+
👨💼 Great. Now we're loading it a bit sooner. In general, this is a helpful
practice to reduce the amount of time between when the user indicates they want
to see something and when they actually see it.
diff --git a/exercises/04.code-splitting/03.problem.transition/README.mdx b/exercises/04.code-splitting/03.problem.transition/README.mdx
index 2bbfd6cc..08eec897 100644
--- a/exercises/04.code-splitting/03.problem.transition/README.mdx
+++ b/exercises/04.code-splitting/03.problem.transition/README.mdx
@@ -1,5 +1,7 @@
# Transitions
+
+
👨💼 By default, when a component suspends (like our `lazy` component is while
we're lazy-loading some code), React will render the fallback of our suspense
boundary immediately. Go ahead and try it now. Hover over the checkbox for long
diff --git a/exercises/04.code-splitting/03.solution.transition/README.mdx b/exercises/04.code-splitting/03.solution.transition/README.mdx
index bfaaaa14..e3035977 100644
--- a/exercises/04.code-splitting/03.solution.transition/README.mdx
+++ b/exercises/04.code-splitting/03.solution.transition/README.mdx
@@ -1,4 +1,6 @@
# Transitions
+
+
👨💼 React gives us lots of options to control the user experience we're after
while also optimizing things for performance. Great work on this one!
diff --git a/exercises/04.code-splitting/FINISHED.mdx b/exercises/04.code-splitting/FINISHED.mdx
index 0fb84270..da41cedd 100644
--- a/exercises/04.code-splitting/FINISHED.mdx
+++ b/exercises/04.code-splitting/FINISHED.mdx
@@ -1,5 +1,7 @@
# Code Splitting
+
+
👨💼 Great job! You've successfully added code splitting for a part of the app
that is particularly "heavy." This will help reduce the initial load time of
your app and improve the user experience.
diff --git a/exercises/04.code-splitting/README.mdx b/exercises/04.code-splitting/README.mdx
index c7598b95..cb5e3944 100644
--- a/exercises/04.code-splitting/README.mdx
+++ b/exercises/04.code-splitting/README.mdx
@@ -1,5 +1,7 @@
# Code Splitting
+
+
Code splitting acts on the principle that loading less code will speed up your
app. Say for example that we're building a complex dashboard application that
includes the venerable d3 library for graphing data. Your users start
diff --git a/exercises/05.calculations/01.problem.use-memo/README.mdx b/exercises/05.calculations/01.problem.use-memo/README.mdx
index c97f19bd..e93df1dd 100644
--- a/exercises/05.calculations/01.problem.use-memo/README.mdx
+++ b/exercises/05.calculations/01.problem.use-memo/README.mdx
@@ -1,5 +1,7 @@
# useMemo
+
+
👨💼 We have a combobox that's calling `searchCities` every render. This function
is really slow because it's attempting to intelligently sort thousands of items
based on the user's filter input.
diff --git a/exercises/05.calculations/01.solution.use-memo/README.mdx b/exercises/05.calculations/01.solution.use-memo/README.mdx
index a78d9ac3..bfc9e572 100644
--- a/exercises/05.calculations/01.solution.use-memo/README.mdx
+++ b/exercises/05.calculations/01.solution.use-memo/README.mdx
@@ -1,5 +1,7 @@
# useMemo
+
+
👨💼 Wow! That's a significant improvement!
🦉 Even with this improvement, it seems like React is doing a lot of extra work
diff --git a/exercises/05.calculations/02.problem.worker/README.mdx b/exercises/05.calculations/02.problem.worker/README.mdx
index 8c85a954..76531752 100644
--- a/exercises/05.calculations/02.problem.worker/README.mdx
+++ b/exercises/05.calculations/02.problem.worker/README.mdx
@@ -1,5 +1,7 @@
# Web Worker
+
+
Warning, this one's _really_ cool, but kinda tricky... Also, the intent isn't
necessarily for you to learn about [web
diff --git a/exercises/05.calculations/02.solution.worker/README.mdx b/exercises/05.calculations/02.solution.worker/README.mdx
index 8279436e..d0af468d 100644
--- a/exercises/05.calculations/02.solution.worker/README.mdx
+++ b/exercises/05.calculations/02.solution.worker/README.mdx
@@ -1,3 +1,5 @@
# Web Worker
+
+
👨💼 Great! Now we're ready for the next step.
diff --git a/exercises/05.calculations/03.problem.async/README.mdx b/exercises/05.calculations/03.problem.async/README.mdx
index f69d699d..36957d5a 100644
--- a/exercises/05.calculations/03.problem.async/README.mdx
+++ b/exercises/05.calculations/03.problem.async/README.mdx
@@ -1,5 +1,7 @@
# Async Results
+
+
👨💼 Now that we have a web worker we can work with, let's refactor our `App` to
use this new async data source. We'll be using React's `use` hook and passing
a promise to that. This means we'll want to have state for the promises of data
diff --git a/exercises/05.calculations/03.solution.async/README.mdx b/exercises/05.calculations/03.solution.async/README.mdx
index 4a229067..d1bdf14e 100644
--- a/exercises/05.calculations/03.solution.async/README.mdx
+++ b/exercises/05.calculations/03.solution.async/README.mdx
@@ -1,5 +1,7 @@
# Async Results
+
+
👨💼 Great job! Now if you take some measurements with the dev tools, you'll
notice that doing searches is much faster than before. Offloading this work is
a nice improvement!
diff --git a/exercises/05.calculations/FINISHED.mdx b/exercises/05.calculations/FINISHED.mdx
index 007f69b3..c74d37bd 100644
--- a/exercises/05.calculations/FINISHED.mdx
+++ b/exercises/05.calculations/FINISHED.mdx
@@ -1,4 +1,6 @@
# Expensive Calculations
+
+
👨💼 Great work! Sometimes you're just doing expensive stuff. It's cool that React
and the web platform give us great tools for managing those... expenses 🤑
diff --git a/exercises/05.calculations/README.mdx b/exercises/05.calculations/README.mdx
index 410bc5f3..608a0b10 100644
--- a/exercises/05.calculations/README.mdx
+++ b/exercises/05.calculations/README.mdx
@@ -1,5 +1,7 @@
# Expensive Calculations
+
+
React hooks are amazing. Being able to put all the logic and state management
within a function component allows for mind blowing composability.
diff --git a/exercises/06.rerenders/01.problem.memo/README.mdx b/exercises/06.rerenders/01.problem.memo/README.mdx
index 6c72156a..67a92191 100644
--- a/exercises/06.rerenders/01.problem.memo/README.mdx
+++ b/exercises/06.rerenders/01.problem.memo/README.mdx
@@ -1,5 +1,7 @@
# Component Memoization
+
+
👨💼 We've got a problem. Here's how you reproduce it in our component.
In this exercise, pull up the React DevTools Profiler and start a recording.
diff --git a/exercises/06.rerenders/01.solution.memo/README.mdx b/exercises/06.rerenders/01.solution.memo/README.mdx
index 07f3fde3..1a89ec24 100644
--- a/exercises/06.rerenders/01.solution.memo/README.mdx
+++ b/exercises/06.rerenders/01.solution.memo/README.mdx
@@ -1,5 +1,7 @@
# Component Memoization
+
+
👨💼 Great job! You've managed to really improve the performance of our list when
unrelated updates occur. But what if there are updates to the list itself?
Hmm...
diff --git a/exercises/06.rerenders/02.problem.comparator/README.mdx b/exercises/06.rerenders/02.problem.comparator/README.mdx
index df4c4d3e..0628b28c 100644
--- a/exercises/06.rerenders/02.problem.comparator/README.mdx
+++ b/exercises/06.rerenders/02.problem.comparator/README.mdx
@@ -1,5 +1,7 @@
# Custom Comparator
+
+
👨💼 We've improved things so the `ListItem` components don't rerender when there
are unrelated changes, but what if there are changes to the list item state?
diff --git a/exercises/06.rerenders/02.solution.comparator/README.mdx b/exercises/06.rerenders/02.solution.comparator/README.mdx
index 037ed71e..cdee7afd 100644
--- a/exercises/06.rerenders/02.solution.comparator/README.mdx
+++ b/exercises/06.rerenders/02.solution.comparator/README.mdx
@@ -1,4 +1,6 @@
# Custom Comparator
+
+
👨💼 Great! The performance is better! Unfortunately, that custom comparator is
kinda complex. I wonder if we could simplify it a bit...
diff --git a/exercises/06.rerenders/03.problem.primitives/README.mdx b/exercises/06.rerenders/03.problem.primitives/README.mdx
index 810b2dc5..232a10d7 100644
--- a/exercises/06.rerenders/03.problem.primitives/README.mdx
+++ b/exercises/06.rerenders/03.problem.primitives/README.mdx
@@ -1,5 +1,7 @@
# Primitives
+
+
👨💼 I would love to have the performance improvement without all the complexity
of the custom comparator function.
diff --git a/exercises/06.rerenders/03.solution.primitives/README.mdx b/exercises/06.rerenders/03.solution.primitives/README.mdx
index 77f84c0e..0bdff19d 100644
--- a/exercises/06.rerenders/03.solution.primitives/README.mdx
+++ b/exercises/06.rerenders/03.solution.primitives/README.mdx
@@ -1,4 +1,6 @@
# Primitive Values
+
+
👨💼 Great job! That's much better! We still get the perf benefits with `memo`
without all the complexity of a custom comparator function.
diff --git a/exercises/06.rerenders/FINISHED.mdx b/exercises/06.rerenders/FINISHED.mdx
index 8107a42c..130c1c08 100644
--- a/exercises/06.rerenders/FINISHED.mdx
+++ b/exercises/06.rerenders/FINISHED.mdx
@@ -1,4 +1,6 @@
# Optimize Rendering
+
+
👨💼 When you find yourself rendering a ton of the same component, optimizing that
one component can have an outsized impact on performance. Good job!
diff --git a/exercises/06.rerenders/README.mdx b/exercises/06.rerenders/README.mdx
index 572c694f..336b3d66 100644
--- a/exercises/06.rerenders/README.mdx
+++ b/exercises/06.rerenders/README.mdx
@@ -1,5 +1,7 @@
# Optimize Rendering
+
+
Here's the lifecycle of a React app:
![→ render → reconciliation → commit → state change → rerender](/img/react-render-cycle.png)
diff --git a/exercises/07.windowing/01.problem.virtualizer/README.mdx b/exercises/07.windowing/01.problem.virtualizer/README.mdx
index a461cd3e..b06dbaf2 100644
--- a/exercises/07.windowing/01.problem.virtualizer/README.mdx
+++ b/exercises/07.windowing/01.problem.virtualizer/README.mdx
@@ -1,5 +1,7 @@
# Virtualizer
+
+
Hover over one of the items with CPU 6x throttle and it's crazy slow despite
only re-rendering the ListItem
diff --git a/exercises/07.windowing/01.solution.virtualizer/README.mdx b/exercises/07.windowing/01.solution.virtualizer/README.mdx
index e5ca6854..f7b9a5b9 100644
--- a/exercises/07.windowing/01.solution.virtualizer/README.mdx
+++ b/exercises/07.windowing/01.solution.virtualizer/README.mdx
@@ -1,4 +1,6 @@
# Virtualizer
+
+
👨💼 Great job! Even with returning all of the results and slowing down the CPU to
6x, we're still getting great performance on this list. Well done 👏👏
diff --git a/exercises/07.windowing/FINISHED.mdx b/exercises/07.windowing/FINISHED.mdx
index 0f13e4f4..f20eac83 100644
--- a/exercises/07.windowing/FINISHED.mdx
+++ b/exercises/07.windowing/FINISHED.mdx
@@ -1,5 +1,7 @@
# Windowing
+
+
👨💼 You did it! Great work on improving the performance of this component!
🦉 One thing you should know about virtualization is that ⌘+F (or on
diff --git a/exercises/07.windowing/README.mdx b/exercises/07.windowing/README.mdx
index aaa2809a..bc146361 100644
--- a/exercises/07.windowing/README.mdx
+++ b/exercises/07.windowing/README.mdx
@@ -1,5 +1,7 @@
# Windowing
+
+
NOTE: We're going to be using a library called
[`@tanstack/react-virtual`](https://npm.im/@tanstack/react-virtual). Some of
diff --git a/exercises/FINISHED.mdx b/exercises/FINISHED.mdx
index 818c429d..68f61a00 100644
--- a/exercises/FINISHED.mdx
+++ b/exercises/FINISHED.mdx
@@ -1,5 +1,7 @@
# React Performance ⚡
+
+
👨💼 Congratulations! You've finished this workshop and you did an awesome job.
There's still so much more we can do to improve performance of our applications,
but you've now been given the tools to analyze and improve your own
diff --git a/exercises/README.mdx b/exercises/README.mdx
index 9b015c23..ec62aa8b 100644
--- a/exercises/README.mdx
+++ b/exercises/README.mdx
@@ -1,5 +1,7 @@
# React Performance ⚡
+
+
👨💼 Hello, my name is Peter the Product Manager. I'm here to help you get
oriented and to give you your assignments for the workshop!