Bird
Raised Fist0
Astroframework~5 mins

Enabling SSR in Astro - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does SSR stand for in Astro?
SSR stands for Server-Side Rendering. It means generating HTML on the server before sending it to the browser.
Click to reveal answer
beginner
How do you enable SSR in an Astro project?
You enable SSR by setting output: 'server' in astro.config.mjs and choosing a server adapter.
Click to reveal answer
intermediate
What is the role of an adapter in Astro SSR?
An adapter connects Astro to a server environment like Node.js or Deno, allowing SSR to run on that platform.
Click to reveal answer
beginner
True or False: Enabling SSR in Astro disables static site generation.
False. Astro can do both SSR and static generation, but enabling SSR changes how pages are rendered at runtime.
Click to reveal answer
beginner
What file do you modify to configure SSR in Astro?
You modify astro.config.mjs to set SSR options and specify the adapter.
Click to reveal answer
Which config option enables SSR in Astro?
Aoutput: 'server'
Brender: 'static'
Cmode: 'client'
Dbuild: 'ssr'
What does an Astro adapter do?
AConnects Astro to a server environment
BCompiles JavaScript
CAdds CSS styles
DManages client-side routing
Where do you specify the adapter for SSR in Astro?
Apackage.json
Bmain.js
Cindex.html
Dastro.config.mjs
What happens when SSR is enabled in Astro?
APages load only after JavaScript runs on the client
BAll pages become static HTML files
CPages are rendered on the server before sending to the browser
DCSS is loaded from a CDN
Can Astro do SSR and static generation together?
ANo, only one at a time
BYes, Astro supports both
COnly with special plugins
DOnly in development mode
Explain how to enable SSR in an Astro project and why you might want to do it.
Think about server rendering and configuration files.
You got /4 concepts.
    Describe the role of an adapter in Astro's SSR setup.
    Adapters are like bridges between Astro and servers.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does adding export const ssr = true; in an Astro component do?
      easy
      A. Turns off all rendering for the component
      B. Disables client-side JavaScript for the component
      C. Makes the component load only on the client
      D. Enables server-side rendering for that component

      Solution

      1. Step 1: Understand the purpose of ssr in Astro

        Setting export const ssr = true; tells Astro to render the component on the server before sending it to the browser.
      2. Step 2: Compare with other options

        The other options describe disabling or client-only behavior, which is not what ssr = true does.
      3. Final Answer:

        Enables server-side rendering for that component -> Option D
      4. Quick Check:

        SSR enabled = export const ssr = true [OK]
      Hint: Remember: ssr=true means server renders HTML first [OK]
      Common Mistakes:
      • Thinking ssr disables JavaScript
      • Confusing SSR with client-only rendering
      • Assuming ssr=true stops rendering
      2. Which of the following is the correct way to enable SSR in an Astro component?
      easy
      A. export const ssr = true;
      B. export const ssr = false;
      C. const ssr = true;
      D. enableSSR(true);

      Solution

      1. Step 1: Identify correct syntax for SSR in Astro

        The correct syntax is to export a constant named ssr with value true to enable SSR.
      2. Step 2: Check each option

        export const ssr = false; disables SSR. const ssr = true; misses export. enableSSR(true); is not valid Astro syntax.
      3. Final Answer:

        export const ssr = true; -> Option A
      4. Quick Check:

        Correct SSR syntax = export const ssr = true [OK]
      Hint: Look for 'export const ssr = true;' exactly [OK]
      Common Mistakes:
      • Forgetting to export the ssr constant
      • Using a function call instead of export
      • Setting ssr to false by mistake
      3. Given this Astro component code:
      ---
      export const ssr = true;
      const time = new Date().toISOString();
      ---
      

      Current time: {time}


      What will the user see when they load this page?
      medium
      A. The current time when the page was requested (fresh time)
      B. The current time when the page was built (static time)
      C. An error because ssr cannot be true
      D. No time displayed because SSR disables variables

      Solution

      1. Step 1: Understand SSR effect on data

        With ssr = true, the page is rendered on the server at request time, so new Date() runs fresh each request.
      2. Step 2: Compare options

        The current time when the page was built (static time) is static build time (no SSR). An error because ssr cannot be true is false; SSR=true is valid. No time displayed because SSR disables variables is incorrect; SSR does not disable variables.
      3. Final Answer:

        The current time when the page was requested (fresh time) -> Option A
      4. Quick Check:

        SSR renders fresh data on each request [OK]
      Hint: SSR runs code fresh on server per request [OK]
      Common Mistakes:
      • Thinking SSR uses build time data
      • Assuming SSR disables JavaScript variables
      • Confusing SSR with static site generation
      4. You wrote this Astro component:
      ---
      ssr = true;
      ---
      

      Hello world


      Why does this cause an error?
      medium
      A. Because ssr must be a function, not a variable
      B. Because ssr cannot be set to true
      C. Because ssr must be exported with export const
      D. Because ssr must be set inside the HTML, not script

      Solution

      1. Step 1: Check correct SSR syntax

        SSR must be enabled by exporting a constant: export const ssr = true;. Just assigning ssr = true; is invalid.
      2. Step 2: Analyze error cause

        Without export const, Astro does not recognize the SSR flag, causing an error.
      3. Final Answer:

        Because ssr must be exported with export const -> Option C
      4. Quick Check:

        SSR requires export const ssr = true [OK]
      Hint: Always use 'export const ssr = true;' to enable SSR [OK]
      Common Mistakes:
      • Forgetting to export ssr
      • Setting ssr without const
      • Trying to set ssr inside HTML
      5. You want to create an Astro page that shows a user's profile with fresh data on every request. Which approach correctly enables SSR and fetches fresh data?
      ---
      // Fill in the missing code
      ---
      

      User Profile

      Name: {user.name}

      Age: {user.age}

      hard
      A. const ssr = true; const user = fetchUserFromAPI();
      B. export const ssr = true; const user = await fetchUserFromAPI();
      C. export const ssr = false; const user = await fetchUserFromAPI();
      D. export const ssr = true; const user = fetchUserFromAPI();

      Solution

      1. Step 1: Enable SSR correctly

        Use export const ssr = true; to enable server-side rendering so data is fresh on each request.
      2. Step 2: Fetch data asynchronously

        Use await to fetch user data asynchronously before rendering the page.
      3. Step 3: Analyze options

        export const ssr = false; const user = await fetchUserFromAPI(); disables SSR, so data won't be fresh. const ssr = true; const user = fetchUserFromAPI(); misses export and await. export const ssr = true; const user = fetchUserFromAPI(); misses await, so user is a Promise, causing error.
      4. Final Answer:

        export const ssr = true; const user = await fetchUserFromAPI(); -> Option B
      5. Quick Check:

        SSR + await fetch = fresh data per request [OK]
      Hint: Use 'export const ssr = true;' and await data fetch [OK]
      Common Mistakes:
      • Not exporting ssr constant
      • Forgetting to await async data fetch
      • Disabling SSR by setting ssr to false
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard