<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CloudCannon</title>
    <description>The latest articles on DEV Community by CloudCannon (@cloudcannon).</description>
    <link>https://dev.to/cloudcannon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4304%2F90b926b1-bdbf-436d-b8ef-15b850f0c6a0.jpg</url>
      <title>DEV Community: CloudCannon</title>
      <link>https://dev.to/cloudcannon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cloudcannon"/>
    <language>en</language>
    <item>
      <title>HugoConf 2023</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Wed, 12 Jul 2023 01:02:42 +0000</pubDate>
      <link>https://dev.to/cloudcannon/hugoconf-2023-5dgo</link>
      <guid>https://dev.to/cloudcannon/hugoconf-2023-5dgo</guid>
      <description>&lt;p&gt;After &lt;a href="https://hugoconf.io/hugoconf-2022/"&gt;last year’s successful HugoConf&lt;/a&gt;, with 32 speakers and more than 500 registered attendees from 49 countries, we had so much fun producing and taking part that we decided to do it again!&lt;/p&gt;

&lt;p&gt;Since its first public version, released back in 2013, Hugo has become an incredibly popular static site generator, most well known for its build speeds. Hugo is also the go-to tool of many of CloudCannon’s &lt;a href="https://cloudcannon.com/partner-program/"&gt;Partners&lt;/a&gt; and &lt;a href="https://cloudcannon.com/experts/"&gt;Experts&lt;/a&gt;, who bring live visual editing to their non-technical clients with the help of our CMS.&lt;/p&gt;

&lt;p&gt;When we first added &lt;a href="https://cloudcannon.com/hugo-cms/"&gt;Hugo support to our CMS&lt;/a&gt; we knew that there was a dedicated community of developers who felt strongly about Hugo, its lightning build speeds, and its ability to create lean and performant static websites. We followed up by releasing &lt;a href="https://cloudcannon.com/blog/live-editing-in-hugo-with-bookshop/"&gt;Bookshop support for live visual editing within Hugo&lt;/a&gt;, which we debuted at last year’s HugoConf:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/BSFDSXU3E-w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Save the date: Thursday 21 September&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Are you planning on attending HugoConf this year? I hope so! We’ll be kicking off on Thursday September 21 (PDT) over at &lt;a href="https://hugoconf.io"&gt;hugoconf.io&lt;/a&gt;. If you’ve already registered you’ll be all set to receive our conference updates, as well as regular helpings of Hugo-specific links, showcases, tutorials, tips and tricks.&lt;/p&gt;

&lt;p&gt;If you haven’t yet signed up, now’s the time! Simply fill out the form at the &lt;a href="https://hugoconf.io"&gt;HugoConf homepage&lt;/a&gt;, and you’ll be first in line for updates, Hugo news, and (if you’d like), in the draw for &lt;em&gt;secret swag&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speaking at HugoConf: call for proposals
&lt;/h2&gt;

&lt;p&gt;Want to speak at HugoConf? We’ll offer the same three types of presentation as last year:&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech talk
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Pre-recorded, 20 minutes&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Great for workflow, product, and feature demonstrations or tutorials that require additional context or explanations.&lt;/p&gt;

&lt;p&gt;Past tech talks have included &lt;a href="https://youtu.be/z4n2qu7ZlSo"&gt;Custom Shortcodes for the Win&lt;/a&gt;, &lt;a href="https://youtu.be/jvgtbgQBjlM"&gt;Beyond the Static: adding interactivity to your Hugo sites&lt;/a&gt;, and &lt;a href="https://youtu.be/K4lL3NMRmbY"&gt;Going wild with Hugo modules&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lightning talk
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Pre-recorded, 10 minutes&lt;/em&gt;&lt;br&gt;&lt;br&gt;
A fast walkthrough of a workflow, showcase of a new feature or module, or that ‘one weird trick’ you’ve discovered for Hugo. Ideal for topics that are reasonably self-explanatory, or rely more on a single dependency.&lt;/p&gt;

&lt;p&gt;Past lightning talks have included &lt;a href="https://youtu.be/qg1MkT1o_PI"&gt;Using Purge CSS with Hugo&lt;/a&gt;, &lt;a href="https://youtu.be/y6_v7Jc6R2I"&gt;Resize all images&lt;/a&gt;, and &lt;a href="https://youtu.be/PC9NZOcCdTI"&gt;Word to Web with Hugo in 5 Minutes&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workshop
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Live, 45 minutes&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Suitable for long-form examples or workflows that may require full explanation, live code commentary, or may depend on chaining multiple (3+) software tools.&lt;/p&gt;

&lt;p&gt;Past workshops have included &lt;a href="https://youtu.be/qUniGSAZ_8k"&gt;Building an open-source blogging platform with Appwrite and Hugo&lt;/a&gt;, &lt;a href="https://youtu.be/Z_7RIuf_Z-Q"&gt;Using GitHub Pages with Actions to deploy Hugo sites in seconds&lt;/a&gt;, and &lt;a href="https://youtu.be/Z_7RIuf_Z-Q"&gt;How to achieve perfect Google Lighthouse Scores using Hugo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get in touch
&lt;/h2&gt;

&lt;p&gt;Even if you’re new to Hugo, do get in touch — fill out the form at &lt;a href="http://hugoconf.io"&gt;hugoconf.io&lt;/a&gt;, and send us your ideas for a talk before 1 August.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A large part of celebrating the Hugo community is being consciously welcoming to newcomers, so we’d love to showcase a range of Hugo topics, workshops, and tutorials, from beginner to expert level.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Perhaps you’d like to show off a new theme you’ve made, or launch a new module. Maybe you’ve found a publishing workflow you want to share with the world. Whatever the case, I’m happy to discuss your ideas for talks, however rough they may be.&lt;/p&gt;

&lt;p&gt;You can get in touch with me at &lt;a href="//mailto:hello@hugoconf.io"&gt;hello@hugoconf.io&lt;/a&gt;, or on Twitter &lt;a href="https://twitter.com/hugoconf"&gt;@hugoconf&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>hugo</category>
      <category>jamstack</category>
      <category>webdev</category>
      <category>conference</category>
    </item>
    <item>
      <title>Eleventy (11ty) vs. Gatsby in 2023 – which SSG is best for you?</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Sat, 24 Jun 2023 12:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/eleventy-11ty-vs-gatsby-in-2023-which-ssg-is-best-for-you-41f6</link>
      <guid>https://dev.to/cloudcannon/eleventy-11ty-vs-gatsby-in-2023-which-ssg-is-best-for-you-41f6</guid>
      <description>&lt;p&gt;&lt;em&gt;By Jaimie McMahon&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With Netlify’s recent &lt;a href="https://www.gatsbyjs.com/blog/gatsby-is-joining-netlify/"&gt;acquisition of Gatsby Inc&lt;/a&gt;, and their sponsorship last year of &lt;a href="https://www.11ty.dev/blog/eleventy-oss/"&gt;full-time open-source development on Eleventy (11ty)&lt;/a&gt;, it’s an exciting time to be choosing a new static site generator (SSG) — particularly if and when Netlify makes Gatsby’s composable architecture primitives available across the web. While GatsbyJS has certainly carved out a name for itself in the Jamstack community, for certain use cases its single-page application (SPA) approach is being challenged by lighter-weight static site generators such as Eleventy.&lt;/p&gt;

&lt;p&gt;Eleventy’s &lt;a href="https://www.11ty.dev/docs/plugins/partial-hydration/"&gt;recent adoption of interactive island architecture&lt;/a&gt; means that this previously purely static site generator can more effectively compete with heavyweight frameworks like Gatsby. 11ty’s use of progressive enhancement and multi-page application (MPA) approach to web development makes it easier than ever to achieve top Lighthouse scores, which is often a challenging feat using Gatsby. What’s more, Eleventy is well known for easy site migrations owing to its framework-agnostic approach and its focus on flexibility. So let’s compare 11ty vs. Gatsby to find out whether its worth making the switch from one to the other or, if you’re just starting out, which technology you should choose.&lt;/p&gt;

&lt;p&gt;Whichever SSG you choose, with CloudCannon’s &lt;strong&gt;&lt;a href="https://cloudcannon.com/eleventy-cms/"&gt;Eleventy&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://cloudcannon.com/gatsby-cms/"&gt;Gatsby&lt;/a&gt;&lt;/strong&gt; support, you and your team can benefit from flexible development tooling, accessible content management, and visual page building and content editing. Now that CloudCannon’s &lt;strong&gt;&lt;a href="https://cloudcannon.com/blog/new-eleventy-features-a-new-theme-and-full-eleventy-support/"&gt;Eleventy support&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://cloudcannon.com/blog/full-cloudcannon-support-for-gatsby/"&gt;Gatsby support&lt;/a&gt;&lt;/strong&gt; have both been released out of beta, there’s no better time to get started on a new project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Eleventy?
&lt;/h2&gt;

&lt;p&gt;Eleventy (11ty) is the “simpler static site generator” that focuses on speed and flexibility. Let’s focus on speed first. Eleventy uses a MPA approach, leveraging progressive enhancement to reduce your site’s time to interactive (TTI) by selectively hydrating interactive components, while keeping the rest of the page static and stripping away unnecessary JavaScript. As such, 11ty helps developers build faster sites than what is possible using Gatsby, which requires more JavaScript to hydrate the web application, costing in longer TTI and input latency.&lt;/p&gt;

&lt;p&gt;Now for the flexibility. Eleventy exploits the flexibility of 11 different template languages, without tying you up to any client-side frameworks (although you can still choose to use a framework in 11ty if you like). Eleventy lets you mix and match HTML, Markdown, WebC, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, and Pug for templating. Eleventy also offers flexible configuration options and incremental adoption, making it easy to work with your project’s existing directory structure.&lt;/p&gt;

&lt;p&gt;Eleventy’s simplicity and customizability flattens the learning curve for getting started; this static site generator effectively adapts to you and your preferences. With Eleventy you can build static sites your way, with full control over the performance of your website and the option to extend complexity as needed. Learning to use 11ty is made easier with helpful &lt;strong&gt;&lt;a href="https://www.11ty.dev/docs/"&gt;documentation&lt;/a&gt;&lt;/strong&gt; and an active community of passionate developers answering questions, and sharing starters (11ty’s term for structured themes) and plugins. Eleventy is ideal for use cases such as marketing websites with progressive enhancement, blogs, portfolios, documentation sites, and mostly static ecommerce websites.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites made with 11ty
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://12daysofweb.dev/"&gt;12daysofweb.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://css-irl.info/"&gt;css-irl.info&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://chromatichq.com/"&gt;chromatichq.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.zachleat.com/"&gt;zachleat.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Gatsby.js?
&lt;/h2&gt;

&lt;p&gt;Gatsby is a React-based open source framework for building ‘blazing fast’ websites with a SPA approach. It uses React (JSX) for templating and GraphQL for queries. This static site generator was a trail-blazer in the Jamstack world, being the first to incorporate dynamic React components into static sites.&lt;/p&gt;

&lt;p&gt;Gatsby has since focused on expanding the composable architecture ecosystem by building Gatsby Cloud as a deploy and hosting platform, and incorporating automatic dependency tracking, scalable data layers, and superior image processing. In early 2023, Gatsby officially joined Netlify, meaning that while Gatsby will continue to evolve, its composable architecture primitives will be integrated into Netlify and made available across other frameworks.&lt;/p&gt;

&lt;p&gt;Gatsby is a highly opinionated static site generator with many built-in features including code splitting, prefetching, routing and caching. Although, Gatsby’s approach to data-fetching is arguably the most opinionated; Gatsby creates an internal GraphQL API as a middleware between the frontend template and content sources. This means that you can mesh sources into one big graph in a single GraphQL query, making it easier to use many data sources.&lt;/p&gt;

&lt;p&gt;Gatsby’s well-established position in the world of web development makes for a large user base and plugin ecosystem. This active community along with Gatsby’s breadth of built-in features create an excellent developer experience. Gatsby is ideal for use cases such as ecommerce and marketing websites that use React-based interactive components and multiple data sources with APIs, or for building pre-rendered static sites as single page applications (SPAs).&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites made with Gatsby
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://ahrefs.com/"&gt;ahrefs.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://calendly.com/"&gt;calendly.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://bitwarden.com/"&gt;bitwarden.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://ably.com/"&gt;ably.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Which should I choose?
&lt;/h2&gt;

&lt;p&gt;The choice between Eleventy and Gatsby will depend on your web development experience to date, as well as the type of static sites you want to build. These two static site generators have significantly different learning curves and are generally intended for different use cases. When choosing between 11ty and Gatsby you must consider what you already know, what you are willing to learn, and what type of site you need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Eleventy&lt;/strong&gt; if you are relatively new to web development and want to build mostly (or even purely) static sites like blogs, portfolios, documentation, or simple business websites. Eleventy’s simplicity makes it much easier to learn compared to Gatsby. With 11ty you can get a site up and running only using HTML and CSS; there is no need to learn how to use any frameworks. Eleventy is also the clear choice for more experienced web developers wanting to mix and match multiple templating languages and frameworks in one project, or wanting to prioritize performance. The flexibility 11ty affords will allow you to build your way and add in as much complexity as you need with progressive enhancement and partial hydration for interactive components. This means you can keep JavaScript to a minimum and easily achieve top Lighthouse scores. Eleventy lets you do this while giving you full control over your sites HTML, since the focus is on customizability rather than built-in features. It also doesn’t lock you into any one framework and offers incremental adoption, meaning it is easy to migrate an existing site to or from Eleventy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Gatsby&lt;/strong&gt; if you are already familiar with React and GraphQL (or are highly motivated to learn) and want to build static sites with more interactivity, like complex ecommerce or marketing websites. While choosing Gatsby will come at the cost of your websites speed due to needing to run more JavaScript, Gatsby’s client-side routing does helps optimize performance a bit. Although it still cannot come close to the speed of sites built with lighter static site generators like 11ty, though this may not matter if speed is not a top priority for your project. Gatsby is also a great choice for developers who want to use a single internal API to manage multiple data sources, or those who prefer more opinionated static site generators with many built-in features. You may also be swayed to choose Gatsby for access to a bigger community with more plugins available compared to Eleventy.&lt;/p&gt;

&lt;p&gt;It is also worth nothing that while Gatsby’s composable architecture primitives such as image processing, scalable Valhalla data layers, and automatic dependency tracking for real-time preview and deployment services, may have previously been unique to Gatsby, these features will soon be available across all static site generators (where it makes sense) thanks to Netlify. This means you will be able to take advantage of these features for building more complex website in lighter-weight static site generators that can better optimize your site for speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose either – or both – with CloudCannon
&lt;/h2&gt;

&lt;p&gt;Whether you choose Eleventy or Gatsby for your next static site, CloudCannon is here to help make static site generation even easier, with instant (and free) testing domains and a robust Visual Editor. Our focus is, and always has been, making content editing and production more accessible to everyone, no matter the use case. With CloudCannon’s Git-based CMS, your content team can build and edit site pages in our intuitive Visual Editor, while developers enjoy our flexible approach to configuration and content management.&lt;/p&gt;

&lt;p&gt;We have published both an &lt;strong&gt;&lt;a href="https://cloudcannon.com/documentation/guides/eleventy-cms-get-started-with-cloudcannon/"&gt;Eleventy starter guide&lt;/a&gt;&lt;/strong&gt; and a &lt;strong&gt;&lt;a href="https://cloudcannon.com/documentation/guides/gatsby-starter-guide/"&gt;Gatsby starter guide&lt;/a&gt;&lt;/strong&gt; to help you get your project set up in CloudCannon with ease. Or if you’re just getting started with 11ty for the first time, we have a comprehensive &lt;strong&gt;&lt;a href="https://cloudcannon.com/tutorials/eleventy-beginner-tutorial/"&gt;Eleventy beginner tutorial&lt;/a&gt;&lt;/strong&gt; series to lend you a helping hand while you learn.&lt;/p&gt;

</description>
      <category>eleventy</category>
      <category>11ty</category>
      <category>gatsby</category>
      <category>jamstack</category>
    </item>
    <item>
      <title>How CloudCannon’s live editing works with Astro and Bookshop</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Fri, 23 Jun 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/how-cloudcannons-live-editing-works-with-astro-and-bookshop-5fh6</link>
      <guid>https://dev.to/cloudcannon/how-cloudcannons-live-editing-works-with-astro-and-bookshop-5fh6</guid>
      <description>&lt;p&gt;CloudCannon supports live visual editing on a wide range of static site generators, bringing intuitive composition, editing, and publishing workflows to everyone. But how do we do it? The short answer: &lt;a href="https://github.com/CloudCannon/bookshop" rel="noopener noreferrer"&gt;Bookshop&lt;/a&gt;, our component development workflow for static websites, which we’ve just expanded to support live visual editing and page-building with &lt;a href="https://cloudcannon.com/astro-cms/" rel="noopener noreferrer"&gt;Astro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To help you integrate your existing Astro sites with Bookshop, we’ve created a new &lt;a href="https://cloudcannon.com/documentation/guides/bookshop-astro-guide/" rel="noopener noreferrer"&gt;Bookshop Astro Guide&lt;/a&gt; as part of our documentation. Our &lt;a href="https://cloudcannon.com/templates/sendit/" rel="noopener noreferrer"&gt;Astro Sendit template&lt;/a&gt; is also a very helpful reference, as it contains an example site that’s fully integrated with Bookshop’s live visual editing.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/QGFmuoGFZmw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;While many Astro developers will be accustomed to creating, updating, and removing pages, components, and posts in their IDE, you (and other site users) can also complete all of these tasks within the CMS’s intuitive interface, as pictured above. With the Sendit template, we’ve also allowed users to easily edit our data files with CloudCannon’s Data Editor — meaning information like company details, navigation, footers, and theme colours, stored in .json files in &lt;code&gt;data/&lt;/code&gt;, can be accessible and editable for all site users. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fsendit-cloudcannon-screenshot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fsendit-cloudcannon-screenshot.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started with Astro and CloudCannon
&lt;/h2&gt;

&lt;p&gt;Let’s first spin up a new Sendit site on CloudCannon, explore its features, and then poke around the files together. (If you’d rather, you can do this directly &lt;a href="https://github.com/CloudCannon/sendit-astro-template" rel="noopener noreferrer"&gt;via GitHub&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;If you don’t already have a CloudCannon account, take a moment to &lt;a href="https://app.cloudcannon.com/register?trial=cc_standard" rel="noopener noreferrer"&gt;create one&lt;/a&gt;, link your GitHub, GitLab, or Bitbucket account, and create a new Astro Sendit site from a template. Your site files will stay in your Git repo, and upon triggering any save in CloudCannon, your site will build.&lt;/p&gt;

&lt;p&gt;Looking at our &lt;code&gt;astro.config.mjs&lt;/code&gt; file, there’s not much to it, as you’ll see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import { defineConfig } from 'astro/config';
import react from '@astrojs/react';
import bookshop from '@bookshop/astro-bookshop';

// https://astro.build/config
export default defineConfig({
  site: 'https://top-quail.cloudvent.net/',
  integrations: [bookshop(), react()]
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We’re importing our configuration, as well as Bookshop and React, and declaring our site’s domain. This &lt;code&gt;site:&lt;/code&gt; field is temporarily set for you, as above, but you can change this URL to the final, deployed URL of your site.&lt;/p&gt;

&lt;p&gt;(Note that all sites built on CloudCannon receive a free preview domain with the format &lt;code&gt;adjective-noun.cloudvent.net&lt;/code&gt; — if you don’t already have a final URL for your new Astro site you can set this to your free cloudvent.net domain.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Separating content and layout
&lt;/h2&gt;

&lt;p&gt;The next thing you might notice about the files in this site is that we’ve separated our page and post content from the layout and routing information — our files in &lt;code&gt;src/content/pages&lt;/code&gt; and &lt;code&gt;src/content/blog&lt;/code&gt; are in Markdown format, and we’re using &lt;code&gt;[…slug].astro&lt;/code&gt; files in &lt;code&gt;src/pages&lt;/code&gt; for routing. We also use .astro files like &lt;code&gt;Layout.astro&lt;/code&gt;, &lt;code&gt;PageLayout.astro&lt;/code&gt;, and &lt;code&gt;PostLayout.astro&lt;/code&gt; in &lt;code&gt;src/layouts&lt;/code&gt; for our layout information and SEO props, but having our content in .md files means CloudCannon can access it in our Content Editor (for WYSIWYG editing) and Visual Editor (for page building and live visual editing).&lt;/p&gt;

&lt;p&gt;This way we can get the best of both worlds — Astro’s speed and flexibility for developers, and CloudCannon’s intuitive editing for writers, marketers, and content teams. Building our Astro site is one thing. Astro’s got that under control! But a good site — even one that builds &lt;em&gt;astronomically&lt;/em&gt; quickly, with &lt;em&gt;stellar&lt;/em&gt; opportunity for future additions — is only as strong as its ease of editing. Editing the pages and posts on our site — and allowing non-technical content writers and marketing teams to do so, as well as to create new content — is something else entirely.&lt;/p&gt;

&lt;p&gt;And that’s where CloudCannon’s visual editing comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Visual Editing works on CloudCannon
&lt;/h2&gt;

&lt;p&gt;As I mentioned above, Sendit is preconfigured for live visual editing on all of its pages, so let’s dig into the feature and see how we’ve set it up for Sendit. In the above video, we saw visual editing in the Sendit homepage’s hero component. The component’s information is stored in two places. Its layout and styling is stored in &lt;code&gt;/src/components/home/hero/hero.jsx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;MarkdownIt&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;markdown-it&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;md&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MarkdownIt&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;html&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;HomeHero&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero-two"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero-two-shape"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"container-fluid"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"row align-items-center"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-6"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero-two-content"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mb-4"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;
                &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mb-7 w-xxl-80"&lt;/span&gt;
&lt;span class="err"&gt;...&lt;/span&gt;
              &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
                    &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary btn-lg"&lt;/span&gt;
                  &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="si"&gt;}{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"col-lg-6"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero-two-banner"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;image_alt&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero-two-banner-shape"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During the build process (specifically, in our &lt;a href="https://cloudcannon.com/documentation/articles/extending-your-build-process-with-hooks/" rel="noopener noreferrer"&gt;postbuild&lt;/a&gt; file), we use our open-source component development tool &lt;a href="https://github.com/CloudCannon/bookshop" rel="noopener noreferrer"&gt;Bookshop&lt;/a&gt; to read the data and default values of our components from .yml files and turn them into inputs config for the editor. For example, here’s &lt;code&gt;src/components/home/hero/hero.bookshop.yml&lt;/code&gt;, showing the data and default values (pre-filled text) for this hero component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="c1"&gt;# Metadata about this component, to be used in the CMS&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;structures&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;content_blocks&lt;/span&gt;
  &lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Home Hero&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Home Hero section&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cottage"&lt;/span&gt;
  &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hero"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Defines the structure of this component, as well as the default values&lt;/span&gt;
&lt;span class="na"&gt;blueprint&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Email Marketing is the Future for Growing Your Business Revenues&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;We believe that a good email marketing strategy is the key to growth. So we’re helping you grow your business with tools and resources that make email marketing easy.&lt;/span&gt;
  &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/images/hero/hero-image-2.png&lt;/span&gt;
  &lt;span class="na"&gt;image_alt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Dashboard with reports&lt;/span&gt;
  &lt;span class="na"&gt;button&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Try This Free&lt;/span&gt;
    &lt;span class="na"&gt;link&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/signup&lt;/span&gt;

&lt;span class="c1"&gt;# Overrides any fields in the blueprint when viewing this component in the component browser&lt;/span&gt;
&lt;span class="na"&gt;preview&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="c1"&gt;# Any extra CloudCannon inputs configuration to apply to the blueprint&lt;/span&gt;
&lt;span class="na"&gt;_inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;markdown&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see that each component has a defined blueprint, label, icon, and tags, and can include default values. The last few lines of this file add extra definitions to CloudCannon’s inputs configuration; in this case we’re setting our description block as a Markdown text area, unlike title or image_alt, which are plain single-line text inputs by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting the dots
&lt;/h2&gt;

&lt;p&gt;Looking at &lt;code&gt;src/layouts/PageLayout.astro&lt;/code&gt; below, we can see a component using the &lt;code&gt;bookshop:live&lt;/code&gt; directive with props sourced from a &lt;code&gt;frontmatter&lt;/code&gt; variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---
import Page from "@shared/page";
import Layout, { SEOProps } from "./Layout.astro";

type Props = {
  frontmatter: {
    title: "string;"
    content_blocks: Array&amp;lt;Record&amp;lt;string, any&amp;gt;&amp;gt;;
    seo?: SEOProps;
  };
};

if (!Astro.props.frontmatter) {
  throw new Error("Page frontmatter must be defined");
}
const props = Astro.props.frontmatter;
---

&amp;lt;Layout {...props}&amp;gt;
  &amp;lt;Page bookshop:live contentBlocks={props.content_blocks} /&amp;gt;
&amp;lt;/Layout&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And in the front matter of our homepage, we can see that &lt;code&gt;content_blocks&lt;/code&gt; contains the Bookshop component &lt;code&gt;home/hero&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;_schema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Home&lt;/span&gt;
&lt;span class="na"&gt;seo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;page_description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;canonical_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;featured_image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;featured_image_alt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;author_twitter_handle&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;open_graph_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;no_index&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="na"&gt;content_blocks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;_bookshop_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;home/hero&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Beautiful email campaigns&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;-&lt;/span&gt;
      &lt;span class="s"&gt;With Sendit, you can quickly create beautiful rich emails that capture a&lt;/span&gt;
      &lt;span class="s"&gt;reader's attention, engage them, and convert them into customers.&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/images/hero/hero-image-2.png&lt;/span&gt;
    &lt;span class="na"&gt;image_alt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Reports dashboard&lt;/span&gt;
    &lt;span class="na"&gt;button&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Try This Free&lt;/span&gt;
      &lt;span class="na"&gt;link&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/signup/&lt;/span&gt;
&lt;span class="nn"&gt;...&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When we view that page in CloudCannon’s Visual Editor, we’ll be able to interact with the component directly on the page. Clicking on the component will open up an editing panel, and our changes will render live on screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Global configuration with CloudCannon and Astro
&lt;/h2&gt;

&lt;p&gt;Bringing it all together is CloudCannon’s global configuration file, &lt;code&gt;/cloudcannon.config.yml&lt;/code&gt;. Under &lt;code&gt;collections_config&lt;/code&gt; at line 5 you’ll see that we can define (or change) a lot of information about our data, posts, and pages, including where content is stored, which schemas are used for posts and pages, and which editor should be enabled to edit them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="c1"&gt;# -- truncated -- #&lt;/span&gt;
&lt;span class="na"&gt;collections_config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;data&lt;/span&gt;
    &lt;span class="na"&gt;disable_add&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;disable_add_folder&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;posts&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;src/content/blog&lt;/span&gt;
    &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/blog/[slug]/"&lt;/span&gt;
    &lt;span class="na"&gt;_enabled_editors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;content&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;visual&lt;/span&gt;
    &lt;span class="na"&gt;add_options&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Add New Post&lt;/span&gt;
        &lt;span class="na"&gt;schema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
        &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;post_add&lt;/span&gt;
    &lt;span class="na"&gt;schemas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;New Post&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;schemas/post.md&lt;/span&gt;
    &lt;span class="na"&gt;_inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="na"&gt;image_alt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
      &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;multiselect&lt;/span&gt;
        &lt;span class="na"&gt;allow_create&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;array&lt;/span&gt;
  &lt;span class="na"&gt;pages&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;src/content/pages&lt;/span&gt;
    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/[slug]/"&lt;/span&gt;
    &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;wysiwyg&lt;/span&gt;
    &lt;span class="na"&gt;_enabled_editors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;visual&lt;/span&gt;
    &lt;span class="na"&gt;add_options&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Add New Page&lt;/span&gt;
        &lt;span class="na"&gt;schema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
        &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;note_add&lt;/span&gt;
    &lt;span class="na"&gt;schemas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;New Page&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;schemas/page.md&lt;/span&gt;
        &lt;span class="na"&gt;new_preview_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/"&lt;/span&gt;
      &lt;span class="na"&gt;paginated_collection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;schemas/paginated-collection.md&lt;/span&gt;
    &lt;span class="na"&gt;_inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;content_blocks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;empty_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;array&lt;/span&gt;
    &lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;base&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;strict&lt;/span&gt;
&lt;span class="c1"&gt;# -- truncated -- #&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll also see that we’ve enabled the Visual Editor for pages on Sendit, but for posts we also give editors the option to use the Content Editor, which is a configurable WYSIWYG Markdown editor for distraction-free writing. (Users with higher-permission roles such as Developers and Site Owners will also be able to view files in the Source Editor.)&lt;/p&gt;

&lt;p&gt;(If your interest is piqued by &lt;code&gt;_inputs&lt;/code&gt;, we go into a lot more information about the &lt;code&gt;_inputs&lt;/code&gt; &lt;a href="https://cloudcannon.com/documentation/articles/how-to-choose-what-input-is-used-in-the-data-editor/" rel="noopener noreferrer"&gt;configuration in our documentation&lt;/a&gt;, which includes a list of all available input types. We also go deep on &lt;code&gt;_editables&lt;/code&gt;, which allow you to &lt;a href="https://cloudcannon.com/documentation/articles/defining-editable-regions-in-your-html/#options" rel="noopener noreferrer"&gt;choose which toolbar controls are available to users in the Content Editor&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;When you’re setting up your own Astro sites on CloudCannon, you can choose which editing (and publishing) features would work best for your site users. With visual editing, branching for staging and production workflows, and top-tier support, CloudCannon’s got you covered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to now?
&lt;/h2&gt;

&lt;p&gt;That brings us to the end of this short and sweet post — we’ve demystified some of the configuration behind our new Astro template within CloudCannon, and we’ve started to define just how CloudCannon lets you and your users interact with your site and its pages. There’s a tremendous amount of power, potential, and flexibility in Bookshop and that &lt;code&gt;cloudcannon.config.yml&lt;/code&gt; file, and we’ve barely scratched the surface.&lt;/p&gt;

&lt;p&gt;If you'd like to dig into more of the deep configuration options in CloudCannon, check out our documentation on &lt;a href="https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/" rel="noopener noreferrer"&gt;using the configuration cascade&lt;/a&gt;, which is a set of sources containing customizable options for the editor, each with a different scope and priority. This allows you to set global defaults and where necessary, override those for specific collections or files.&lt;/p&gt;

&lt;p&gt;If you come across any issues while you're dialling in your configuration for Astro, please reach out to us via our support team — we're here to help.&lt;/p&gt;

</description>
      <category>astro</category>
      <category>cloudcannon</category>
      <category>jamstack</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Eleventy (11ty) vs. Astro</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Fri, 23 Jun 2023 12:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/eleventy-11ty-vs-astro-4gcb</link>
      <guid>https://dev.to/cloudcannon/eleventy-11ty-vs-astro-4gcb</guid>
      <description>&lt;p&gt;&lt;em&gt;By Jaimie McMahon&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro.build/"&gt;Astro&lt;/a&gt; and &lt;a href="https://www.11ty.dev/"&gt;Eleventy&lt;/a&gt; (11ty) are two of the most popular (and arguably most similar) technologies available for static site generation. So what is it about their approach to static sites that resonates so strongly with the modern web development community? In short, both focus on content-heavy use cases, both reduce boilerplate code for faster websites, and both take a multi-page application (MPA) approach to web development, encouraging progressive enhancement.&lt;/p&gt;

&lt;p&gt;Is this the software equivalent of convergent evolution, with both sets of tooling following the same trends or guiding principles (static first, with a dual emphasis on build speed and flexibility)? Or are there significant differences that will impact your developer experience? And how should you choose between Astro and 11ty? Let’s explore both static site generators (SSGs), and find out.&lt;/p&gt;

&lt;p&gt;Whichever SSG you choose, with CloudCannon’s &lt;a href="https://cloudcannon.com/astro-cms/"&gt;Astro&lt;/a&gt; and &lt;a href="https://cloudcannon.com/eleventy-cms/"&gt;Eleventy&lt;/a&gt; support, you and your team can benefit from flexible development tooling, accessible content management, and visual page building and content editing. Now that CloudCannon’s &lt;a href="https://cloudcannon.com/blog/out-of-this-world-support-for-all-astro-users/"&gt;Astro support&lt;/a&gt; and &lt;a href="https://cloudcannon.com/blog/new-eleventy-features-a-new-theme-and-full-eleventy-support/"&gt;Eleventy support&lt;/a&gt; have both been released out of beta, there’s no better time to get started on a new project. It’s worth mentioning that CloudCannon’s content management support is limited to static site generation (SSG), and does not include server-side rendering (SSR).&lt;/p&gt;




&lt;h3&gt;
  
  
  Table of contents
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  What is Astro?
&lt;/li&gt;
&lt;li&gt;  What is Eleventy?
&lt;/li&gt;
&lt;li&gt;  Similarities between Astro and Eleventy
&lt;/li&gt;
&lt;li&gt;  Differences between Astro and Eleventy
&lt;/li&gt;
&lt;li&gt;  Astro vs. 11ty (Eleventy) usage trends
&lt;/li&gt;
&lt;li&gt;  Which should I choose?
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Astro?
&lt;/h2&gt;

&lt;p&gt;Astro is known as the "all-in-one web framework for building fast, content-focused websites". It is the fastest-growing static site generator, with over 100,000 developers and teams using it worldwide. First released in 2021, the most recent (at the time of writing) update to Astro, &lt;a href="https://astro.build/blog/astro-220/"&gt;version 2.2&lt;/a&gt;, features CDN support for assets, and an &lt;code&gt;image()&lt;/code&gt; scheme helper API change. Astro has attracted such interest so quickly because it helps developers build lightning-fast content-rich websites, with the flexibility of any UI language, and the option to easily embed interactive islands.&lt;/p&gt;

&lt;h3&gt;
  
  
  Astro’s key features
&lt;/h3&gt;

&lt;p&gt;Astro differentiates itself from other frameworks by offering component islands, server-first API design, zero Js by default, edge-ready deployment, customizable integrations, and UI-agnostic support. This flexibility lets you use React, Preact, Solid, Svelte, Vue, and Lit in your Astro project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started with Astro
&lt;/h3&gt;

&lt;p&gt;Astro is known for its superior developer experience; take a look at Astro reviews across the web and you’ll notice that this is one of its most frequent praises. You can build static sites in Astro with just HTML and CSS, or take advantage of Astro’s opt-in complexity by mixing and matching your favourite UI frameworks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Astro community &amp;amp; ecosystem
&lt;/h3&gt;

&lt;p&gt;Astro also provides excellent &lt;a href="https://docs.astro.build/en/getting-started/"&gt;documentation&lt;/a&gt;, and the Astro team is fantastic at supporting new users. You may have already come across &lt;a href="https://twitter.com/bholmesdev?lang=en"&gt;Ben Holmes&lt;/a&gt; on socials media, Astro’s “guy with the whiteboard” who makes easy to understand Astro tutorials. The Astro community is very active on &lt;a href="https://twitter.com/astrodotbuild"&gt;Twitter&lt;/a&gt; and &lt;a href="https://astro.build/chat"&gt;Discord&lt;/a&gt;, with questions answered quickly. There is also a variety of themes, components, and plugins being created by the community, with &lt;a href="https://astro.build/themes/"&gt;Astro’s themes directory&lt;/a&gt; being a great place to find a theme or submit your own.&lt;/p&gt;

&lt;h3&gt;
  
  
  Astro use cases
&lt;/h3&gt;

&lt;p&gt;Astro’s focus on fast content-rich websites makes it perfect for use cases such as marketing sites and landing pages, blogs, portfolios, documentation websites, and even e-commerce sites with mostly static content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites made with Astro
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://create.t3.gg/"&gt;t3.gg&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://roadmap.sh/"&gt;roadmap.sh&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://pngtree.com/"&gt;pngtree.com&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://getbem.com/"&gt;getbem.com&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Eleventy?
&lt;/h2&gt;

&lt;p&gt;Eleventy (also referred to as 11ty) is known as the “simpler static site generator”. It is the only purely static site generator that has reliably continued to grow in usage share, making Eleventy the clear choice for purely static use cases. First released in 2018, the most recent (at the time of writing) update to 11ty, &lt;a href="https://www.11ty.dev/blog/eleventy-v2/"&gt;version 2.0&lt;/a&gt;, features smaller and more secure files, faster builds, more plugins, template language aliasing, and event arguments. Eleventy has successfully maintained interest over time by focusing on speed and flexibility. With Eleventy, developers can build faster static sites, while leveraging the flexibility of multiple template languages — all without being tied to any frameworks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Eleventy’s key features
&lt;/h3&gt;

&lt;p&gt;Eleventy differentiates itself from other static site generators by offering flexible configuration options, incremental adoption, enabling you to work with your project’s existing directory structure, allowing you to work in multiple independent templating languages, while not requiring the use of Javascript framework. With 11ty you can choose to work in HTML, Markdown, WebC, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and Custom.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started with Eleventy
&lt;/h3&gt;

&lt;p&gt;Eleventy is known for its flexibility and simplicity, both of which help to flatten the learning curve while allowing more customizability. In this way, 11ty adapts to you and your preferences. You can build static websites in your way in Eleventy, while maintaining full control over the performance of your site and extending complexity as needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Eleventy community and ecosystem
&lt;/h3&gt;

&lt;p&gt;Eleventy offers helpful &lt;a href="https://www.11ty.dev/docs/"&gt;documentation&lt;/a&gt;, and benefits from an active community of 11ty developers. Eleventy is active on both &lt;a href="https://twitter.com/eleven_ty"&gt;Twitter&lt;/a&gt; and &lt;a href="https://fosstodon.org/@eleventy"&gt;Mastodon&lt;/a&gt;, with 11ty creator, &lt;a href="https://twitter.com/zachleat"&gt;Zach Leatherman&lt;/a&gt;, personally engaging with users. You can ask questions about Eleventy on the dedicated &lt;a href="https://www.11ty.dev/blog/discord/"&gt;Discord&lt;/a&gt; channel, &lt;a href="https://github.com/11ty/eleventy/discussions"&gt;GitHub Discussions&lt;/a&gt; page, or the &lt;a href="https://github.com/11ty/eleventy/issues"&gt;Issue tracker&lt;/a&gt;. The &lt;a href="https://www.11ty.dev/speedlify/"&gt;Eleventy Leaderboards&lt;/a&gt; are a great place to check out community made starter projects (11ty calls themes starters) and evaluate them based on Lighthouse scores. Eleventy also offers a growing list of both official and community contributed &lt;a href="https://www.11ty.dev/docs/plugins/"&gt;plugins&lt;/a&gt;. Additionally, the &lt;a href="https://www.youtube.com/@EleventyVideo/featured"&gt;11ty YouTube Channel&lt;/a&gt; and &lt;a href="http://11ty.rocks"&gt;11ty.rocks&lt;/a&gt; are worth mentioning as great resources for learning to build with Eleventy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Eleventy use cases
&lt;/h3&gt;

&lt;p&gt;Eleventy’s focus on fast and flexible static sites makes it perfect for marketing websites with progressive enhancement, blogs, portfolios, documentation sites, and mostly static ecommerce websites.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites Made with Eleventy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://12daysofweb.dev/"&gt;12daysofweb.dev&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://css-irl.info/"&gt;css-irl.info&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://chromatichq.com/"&gt;chromatichq.com&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://www.zachleat.com/"&gt;zachleat.com&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Similarities between Astro and Eleventy
&lt;/h2&gt;

&lt;p&gt;Astro and Eleventy are arguably more similar than they are different. You really can’t go wrong with either of these static site generators, so let’s take a look at what makes them both great before jumping into the details of their differences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Javascript based
&lt;/h3&gt;

&lt;p&gt;Both Astro and 11ty are modern JavaScript-based website builders. Using JavaScript to generate static sites eliminates the need for a client-side framework. This doesn’t mean you can’t use a client-side framework, it just means that it is optional. This makes Astro and Eleventy more beginner friendly since you can start building static sites with just HTML and CSS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zero config
&lt;/h3&gt;

&lt;p&gt;Eleventy and Astro are both &lt;code&gt;zero config&lt;/code&gt; by default, allowing for extensibility with flexible configuration options. This means that 11ty and Astro will work well with your existing project structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flexible content authoring
&lt;/h3&gt;

&lt;p&gt;Both Astro and Eleventy let you use any content authoring system, making them great choices for content heavy use cases like blogs, portfolios, documentations, and marketing sites. You can write content directly in Astro or 11ty using Markdown or MDX, or leverage a third-party Content Management System (CMS) like CloudCannon to allow less tech savvy content editors to manage content visually.&lt;/p&gt;

&lt;h3&gt;
  
  
  MPAs
&lt;/h3&gt;

&lt;p&gt;Astro and Eleventy both build multi-page applications (MPAs). Multi-page architecture offers a number of benefits such as better empty-cache performance, energy efficiency, search by default, better privacy, as well as inclusivity and robustness by default. All this means you can build faster, more secure, and more accessible static sites by eliminating the large client JavaScript bundles customary to Single Page Applications (SPAs).&lt;/p&gt;

&lt;h3&gt;
  
  
  Progressive enhancement
&lt;/h3&gt;

&lt;p&gt;Both Astro and 11ty use progressive enhancement. Progressive enhancement means starting with a solid foundation of accessible, semantic HTML, and then layering on more advanced features as the user’s device and browser allows. The implications of this are that websites can be designed to work for everyone, even users on older browsers or devices with slower internet connections. Progressive enhancement also makes websites more accessible for users with disabilities, and improves website performance by reducing load times.&lt;/p&gt;

&lt;h3&gt;
  
  
  Island architecture
&lt;/h3&gt;

&lt;p&gt;Astro and 11ty both offer an island architecture web development approach. This means you can break your site into isolated islands of functionality, each with its own serverless function that can be invoked when necessary. With these ‘islands’ of interactivity you can incorporate dynamic components with rich user experiences that adapt to user input and changing data, while still benefitting from the speed and reliability of static site generation. This approach to building static sites can improve site performance and reduce infrastructure costs, without compromising on engaging experiences. Although, it is worth noting that while &lt;a href="https://docs.astro.build/en/concepts/islands/"&gt;island architecture&lt;/a&gt; has always been one of Astro’s core offerings, interactive ‘&lt;a href="https://github.com/11ty/is-land"&gt;11ty is-lands&lt;/a&gt;’ are a relatively new addition to Eleventy, available via plugin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Partial Hydration
&lt;/h3&gt;

&lt;p&gt;Both Astro and Eleventy use partial hydration for interactive islands. Partial hydration combines the benefits of server-side rendering and client-side rendering by selectively hydrating parts of the web page with JavaScript (the interactive island components), while still using static site generation for the rest of the content. The ability to choose which parts of a page to hydrate with JavaScript helps reduce the overall amount of JavaScript, which once again improves performance, reduces infrastructure costs, and makes your site more accessible to users. Up until the recent addition of island architecture 11ty’s purely static site generation was hydration-less, meaning that Astro is the leader of this category.&lt;/p&gt;

&lt;h3&gt;
  
  
  UI Agnostic
&lt;/h3&gt;

&lt;p&gt;Astro and 11ty are UI agnostic static site generators, meaning you can use any UI framework you choose to create interactive components. While it is possible to use any framework in both Astro and 11ty, Astro provides built-in support for React, Preact, Svelte, Vue, Solid, and Lit, while Eleventy offers built-in support for Petite Vue, Vue, Svelte, Preact, Lit, and Alpine.js.&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Differences between Astro and Eleventy
&lt;/h2&gt;

&lt;p&gt;The difference between Astro and Eleventy boils down to the finer details. Let’s take a look at how these static site generators differ, and how these differences will impact your developer and user experience, as well as your sites performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Templating languages
&lt;/h3&gt;

&lt;p&gt;While Eleventy supports a numerous templating languages, including HTML, Markdown, WebC, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and Custom, Astro uses &lt;code&gt;.astro&lt;/code&gt; layouts, pages, and components for most page templating. Eleventy’s use of independent templating languages means you can mix and match your favorite templating languages without being held hostage to a custom format. This decoupling makes future migrations easier should you choose to use a different syntax. Comparatively, Astro’s use of &lt;a href="https://docs.astro.build/en/core-concepts/astro-components/"&gt;Astro components&lt;/a&gt; for templating offers reusable UI, like headers, and contain small snippets of HTML, or even entire page layouts. Astro components are HTML-only with no client-side runtime. This makes Astro more opinionated than 11ty in terms of templating.&lt;/p&gt;

&lt;h3&gt;
  
  
  Asset Management
&lt;/h3&gt;

&lt;p&gt;Bundling CSS, JavaScript, and other assets must be configured manually in Eleventy, whereas asset bundling is built-in to Astro. While built-in bundling reduces complexity, this comes at the cost of reduced flexibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Directory Structure
&lt;/h3&gt;

&lt;p&gt;Astro uses a &lt;code&gt;src/&lt;/code&gt; directory for all files and metadata needed for querying and processing a site build. In comparison, Eleventy works with your project’s existing directory structure. There is no requirement for an &lt;code&gt;app&lt;/code&gt; or &lt;code&gt;pages&lt;/code&gt; directory in 11ty — you can use your structure of choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Routing
&lt;/h3&gt;

&lt;p&gt;While both Astro and 11ty leverage file-based routing systems that are simple, flexible, and easy to use, dynamic routing is a built-in Astro feature, whereas dynamic routing requires additional setup in Eleventy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Static Assets
&lt;/h3&gt;

&lt;p&gt;Astro uses a built-in import function to bundle and optimize static assets. In contrast, Eleventy manages static assets by copying files to the output directory, preserving the directory structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rendering
&lt;/h3&gt;

&lt;p&gt;Eleventy offers a range of template engines for rendering; any of the 12 supported templating languages will work. With 11ty you can choose which engine best suit your needs, or even mix and match templating engines to render your project. On the other hand, Astro uses a combination of JSX and template literals for rendering. In Astro JSX defines the structure and content of components, and template literals define the styles and other attributes. In addition to this, Astro also supports server-side rendering (SSR), which generates HTML on each request, while the &lt;code&gt;11ty/is-land&lt;/code&gt; plugin is needed for SSR in Eleventy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Styling
&lt;/h3&gt;

&lt;p&gt;Astro includes built-in support for CSS styling and the ability to write CSS modules. Although, Astro limits styling options to CSS and CSS-in-JS libraries. Comparatively, 11ty doesn’t provide any built-in styling support, rather 11ty lets you use any CSS preprocessor or library for styling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;p&gt;While both Astro and Eleventy are designed to generate fast and efficient static sites, Astro provides more built-in performance optimizations than Eleventy. Astro’s built-in features like prerendering, image optimization, HTTP/2 push, lazy loading, and code-splitting make it easier to achieve optimal site performance without additional configuration. Nonetheless, although 11ty doesn’t offer these features built-in, you can easily add these features and more with third-party plugins and custom optimizations to generate equally performant sites. In fact, &lt;a href="https://cloudcannon.com/blog/cloudcannon-com-is-now-built-with-eleventy/"&gt;CloudCannon.com is built with Eleventy&lt;/a&gt;, and makes use of various third-party tools for performance optimization.&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Astro vs. 11ty (Eleventy) usage trends
&lt;/h2&gt;

&lt;p&gt;Stability and longevity are important metrics to take into account when considering which static site generator to choose. Usage trends offer useful insights for understanding where both Astro and Eleventy sit in the web development market, how actively each is being developed, and for speculating on the future of these technologies.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub star history
&lt;/h3&gt;

&lt;p&gt;    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uxzpXkzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/star-history-202354.png%3Fauto%3Dcompress%26auto%3Dformat%26w%3D316%26dpr%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uxzpXkzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/star-history-202354.png%3Fauto%3Dcompress%26auto%3Dformat%26w%3D316%26dpr%3D1" alt="Astro and 11ty (Eleventy) GitHub star history" width="316" height="220"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;While GitHub stars are solely a metric for how many users have clicked the star button, whether to indicate a favorite repository, follow active development, recommend similar projects, or just to support friends, it is interesting to compare and contrast Astro and 11ty’s star histories. While Eleventy experienced more of a slow but sustained increase in stars, Astro gained approximately double the stars in half the time. It will be interesting to watch and see if Astro can sustain this growth. You can find an &lt;a href="https://star-history.com/#11ty/eleventy&amp;amp;withastro/astro&amp;amp;Date"&gt;up-to-date star history comparison here&lt;/a&gt; to observe any changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  npm trends
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ow-xYwLB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/npm-trends.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ow-xYwLB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/npm-trends.png" alt="" width="800" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;npm trends indicate the number of Astro and Eleventy npm downloads over time. Currently, it appears that Astro continues to experience growth in number of downloads, while Eleventy has reached a more steady rate of downloads. Again, it is interesting that Astro has outpaced Eleventy in download number despite being a relatively new framework. You can check out &lt;a href="https://npmtrends.com/@11ty/eleventy-vs-astro"&gt;up-to-date npm trends here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Framework usage by satisfaction
&lt;/h3&gt;

&lt;p&gt;The yearly Jamstack survey records frameworks by usage and satisfaction. You can see how &lt;a href="https://jamstack.org/survey/2022/#frameworks-by-usage-and-satisfaction"&gt;Astro and 11ty 2022 usage and satisfaction compares here&lt;/a&gt;. This shows Astro entering the early adoption phase characterized by rapid growth and improving satisfaction scores. On the other hand, 11ty is in the regular growth phase, being singled out as the only purely static site generator to show growth in usage share, which indicates its stability.&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which should I choose?
&lt;/h2&gt;

&lt;p&gt;The choice between Astro and Eleventy ultimately comes down to personal preference. Both Astro and 11ty have impressively fast build times. Both are built for mostly static content-rich use cases with some interactivity. Both are highly flexible and under active development with large user communities. Lastly, both Astro and Eleventy encourage progressive enhancement, helping you prioritize essential static content first and add dynamic functionality later.&lt;/p&gt;

&lt;p&gt;But at the end of the day the choice of Astro vs. 11ty depends on what means more to you, flexibility and control, or ease of use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Astro&lt;/strong&gt; if you prefer a more opinionated framework with many built-in features, or you envision your static site project evolving in a more app-like direction. Although Astro is more opinionated than 11ty, Astro still offers plenty of customizability and opt-in complexity. Astro use of built-in features for templating, styling, asset management, and more can be beneficial to beginners learning web development. The Astro learning curve is also flattened by their fantastic documentation. And unlike Eleventy, Astro offers server-side rendering (SSR) in addition to static site generation (SSG), which means that if you think your project will need more and more interactivity as it evolves, Astro may be the better fit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Eleventy&lt;/strong&gt; if you prefer more simplicity, flexibility, and granular control over your static site. Although Eleventy does not offer as many built-in features as Astro, Eleventy offers greater ‘pluggability’. With 11ty you are in full control over the HTML rendered to your site pages. This means that as the developer you are in full control over the performance of your project, which may require more work to stay organized, but is a powerful position to be in. You can use your templating languages of choice, and make use of any file structure, asset management, styling, optimizations, and rendering systems you choose when building with Eleventy. It is also worth nothing that 11ty is a more mature technology compared to Astro, meaning 11ty has had more time to work out potential issues and gain a broad user base.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose either – or both – with CloudCannon
&lt;/h2&gt;

&lt;p&gt;Whether you choose Astro or Eleventy for your content-rich static websites, CloudCannon is here to help make your static site generation even easier, with instant (and free) testing domains and a robust Visual Editor. Our focus is, and always has been, making content editing and production more accessible to everyone, no matter the use case. With CloudCannon’s Git-based CMS, your content team can set up site pages in our intuitive Visual Editor, while developers enjoy our flexible approach to configuration and content management.&lt;/p&gt;

&lt;p&gt;We have published both an &lt;a href="https://cloudcannon.com/documentation/guides/astro-starter-guide/"&gt;Astro starter guide&lt;/a&gt; and an &lt;a href="https://cloudcannon.com/documentation/guides/eleventy-cms-get-started-with-cloudcannon/"&gt;Eleventy starter guide&lt;/a&gt; to help you get your project set up in CloudCannon with ease. Or if you’re just getting started with these technologies for the first time, we have both a comprehensive &lt;a href="https://dev.to/tutorials/astro-beginners-tutorial-series/"&gt;Astro beginner tutorial&lt;/a&gt; and &lt;a href="https://cloudcannon.com/tutorials/eleventy-beginner-tutorial/"&gt;Eleventy beginner tutorial&lt;/a&gt; series to lend you a helping hand while you learn.&lt;/p&gt;

</description>
      <category>eleventy</category>
      <category>11ty</category>
      <category>astro</category>
      <category>jamstack</category>
    </item>
    <item>
      <title>How to customize CloudCannon’s Client Sharing interface</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Thu, 22 Jun 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/how-to-customize-cloudcannons-client-sharing-interface-12p3</link>
      <guid>https://dev.to/cloudcannon/how-to-customize-cloudcannons-client-sharing-interface-12p3</guid>
      <description>&lt;p&gt;In my last post on &lt;a href="https://cloudcannon.com/blog/let-anyone-anywhere-edit-your-cloudcannon-sites/"&gt;sharing your CloudCannon sites with anyone&lt;/a&gt; — and letting them edit content without having a CloudCannon account — I briefly mentioned the options available to customize the Client Sharing interface. I wanted to go a little further in this post, and explain why it can be helpful to customize your support and documentation links.&lt;/p&gt;

&lt;p&gt;A little background, first — in my spare time I’m helping build out the website for this year’s &lt;a href="https://hugoconf.io"&gt;HugoConf&lt;/a&gt;*, and given that this is a group effort involving a pool of volunteers, I want to prepare the site so I’m ready to work with external collaborators on the content.&lt;/p&gt;

&lt;p&gt;Once the conference speakers are all lined up, and have supplied their headshots, bios, talk titles and summaries, I’d like to be able to hand over all of that content to another conference organizer, and let them add the content to the site.&lt;/p&gt;

&lt;p&gt;Further, I’d like to be the main point of contact for these organizers if they have any questions about how to add content to the site, and how it should look. And to help that process along, I’ll also create a public Notion page with easy content-loading instructions — this can serve as my specific documentation for the HugoConf site. (Because I know the site is already set up and working, my external collaborators likely won’t need CloudCannon’s otherwise excellent documentation.)&lt;/p&gt;

&lt;p&gt;What I &lt;em&gt;don’t want&lt;/em&gt; is for these external collaborators to be able to break my site by altering any source code, or to change my billing details. This — together with the time-boxed nature of the conference preparation — is a great reason to use CloudCannon’s Client Sharing feature.&lt;/p&gt;

&lt;p&gt;So let’s get stuck in!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/fHSMmg9vJgc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing what your External Collaborators see
&lt;/h2&gt;

&lt;p&gt;We’ll start by turning Client Sharing on, adding a strong password that CloudCannon encrypts on submission.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Because I may want to create a page at &lt;code&gt;/update&lt;/code&gt; at some point in the future, I’m going to first change the URL subpath to &lt;code&gt;/login&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; My collaborators might need a link to my instructions while they’re adding content, so I’ll add the URL of my public Notion page in the 'Documentation URL' field.&lt;/li&gt;
&lt;li&gt; In the 'Support URL' field, I’ll add a &lt;code&gt;mailto:&lt;/code&gt; link with my email address. And because I like a tidy inbox, I’ll customize this further with a pre-filled subject line. (Of course, I could get as prescriptive as I like with this &lt;code&gt;mailto:&lt;/code&gt; link, including the body text.)&lt;/li&gt;
&lt;li&gt; In this case, I don’t need to update the preview URL field. (If my site was hosted externally, or had a lot of redirects, this would be a handy field to use.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once that’s all done, I’ll click Update Settings, and we’re all set!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dBD1Qbs8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/client-sharing-custom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dBD1Qbs8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/client-sharing-custom.png" alt="" width="774" height="883"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let’s jump over to the user’s view, and see where those links come in.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/FnBHYW8q9wg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;And that’s it! With Client Sharing turned on, I’ve set up an easy content-adding flow for our site collaborators, without having to set up a CloudCannon account for them. I’ve also made sure that I’ve supplied the content loading instructions they’ll need, as well as setting myself up as the contact person for any support questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to set up and customize Client Sharing
&lt;/h2&gt;

&lt;p&gt;Of course, this is just one example of a use case for Client Sharing. If you’re a CloudCannon user on any paid plan, you can easily turn Client Sharing on and customize it for your own use case.&lt;/p&gt;

&lt;p&gt;If I worked as a freelance web dev, or with a web agency, this would be a super handy feature to set up my more non-technical clients with an easy interface for minor content changes — all without these users needing a full CloudCannon account.&lt;/p&gt;

&lt;p&gt;That way I’d be available to help these clients when necessary, while still empowering them to edit and publish simple changes to their own site.&lt;/p&gt;

&lt;h3&gt;
  
  
  Happy editors. Happy developers.
&lt;/h3&gt;

&lt;p&gt;Like all of CloudCannon’s features, Client Sharing is aimed at smoothing the path for both editors and developers, letting everyone work more efficiently. Our engineering team designs these CMS features to be as flexible as possible, letting you set up your sites, your editing workflows, and your users’ experience just the way you want.&lt;/p&gt;

&lt;p&gt;And, naturally, our features work just the same no matter which static site generator you choose.&lt;/p&gt;




&lt;p&gt;* &lt;em&gt;CloudCannon sponsors &lt;a href="https://hugoconf.io"&gt;HugoConf&lt;/a&gt;, which keeps the conference free for all.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Several CloudCannon staff members, including myself, are also part of the volunteer committee that helps run the conference. (We’re fans of OSS, and this is a great way to help celebrate the tools we use every day.)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloudcannon</category>
      <category>cms</category>
      <category>jamstack</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Let anyone, anywhere, edit your static sites</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Thu, 22 Jun 2023 12:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/let-anyone-anywhere-edit-your-cloudcannon-sites-3k74</link>
      <guid>https://dev.to/cloudcannon/let-anyone-anywhere-edit-your-cloudcannon-sites-3k74</guid>
      <description>&lt;p&gt;It’s easy to share your static site with anyone, &lt;em&gt;and allow anyone to edit it&lt;/em&gt;, without new users having to create a CloudCannon account. Allow me to (re)introduce a feature we call &lt;strong&gt;&lt;a href="https://cloudcannon.com/documentation/articles/giving-clients-access-to-update-a-site/" rel="noopener noreferrer"&gt;Client Sharing&lt;/a&gt;&lt;/strong&gt;, available for users on any &lt;a href="https://cloudcannon.com/pricing/#all-plan-features" rel="noopener noreferrer"&gt;paid plan&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Client Sharing lets Organization Owners and Developers set a password to grant access to any user, allowing them to edit any site’s content. (Without access to complicated developer features.)&lt;/p&gt;

&lt;p&gt;Even better, it works exactly the same no matter which static site generator you’re using on CloudCannon —  meaning that sites built with &lt;a href="https://cloudcannon.com/astro-cms/" rel="noopener noreferrer"&gt;Astro&lt;/a&gt;, &lt;a href="https://cloudcannon.com/eleventy-cms/" rel="noopener noreferrer"&gt;Eleventy&lt;/a&gt;, &lt;a href="https://cloudcannon.com/hugo-cms/" rel="noopener noreferrer"&gt;Hugo&lt;/a&gt;, &lt;a href="https://cloudcannon.com/jekyll-cms/" rel="noopener noreferrer"&gt;Jekyll&lt;/a&gt;, &lt;a href="https://cloudcannon.com/sveltekit-cms/" rel="noopener noreferrer"&gt;SvelteKit&lt;/a&gt;, &lt;a href="https://cloudcannon.com/nextjs-cms/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt;, &lt;a href="https://cloudcannon.com/mkdocs-cms/" rel="noopener noreferrer"&gt;MkDocs&lt;/a&gt;, &lt;a href="https://cloudcannon.com/gatsby-cms/" rel="noopener noreferrer"&gt;Gatsby&lt;/a&gt;, or &lt;a href="https://cloudcannon.com/nuxtjs-cms/" rel="noopener noreferrer"&gt;Nuxt.js&lt;/a&gt; can all be edited by &lt;em&gt;anyone&lt;/em&gt;: clients, external collaborators, content reviewers, subject-matter experts, legal teams, or anybody else involved.&lt;/p&gt;

&lt;p&gt;Your site security is important, so the Client Sharing password you set will be automatically encrypted upon submission, and can only be reset or changed by Owners or Developers. Because Owners and Developers can change their Client Sharing password at any point, or turn Client Sharing off, it’s always easy to choose when to make your site editable, and to control who has access to edit it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to share editing access on CloudCannon
&lt;/h2&gt;

&lt;p&gt;Let’s look at how easy Client Sharing is to set up:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/LY0AJgQCFEM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; I’ll take an Astro site built with the &lt;a href="https://cloudcannon.com/templates/sendit/" rel="noopener noreferrer"&gt;Sendit template&lt;/a&gt; as an example. In the above video I’ve already signed up to CloudCannon and linked my GitHub account; from my account dashboard I’ve created an Astro site from a template, and selected the Sendit template, which is already configured for visual editing.&lt;/li&gt;
&lt;li&gt; After the site has built, I’ll jump into &lt;em&gt;Site Settings / Sharing&lt;/em&gt;.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fblog-client-sharing-screen1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fblog-client-sharing-screen1.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. Under the Sharing tab I’ll select &lt;strong&gt;Client Sharing&lt;/strong&gt;, and turn it on by setting a password. 4. Done! Now all I need to do is share the exact login URL (by default, &lt;code&gt;https://example.com/update&lt;/code&gt;) with the person or people I want to have editing access. 5. (Optional) We can change the URL path from &lt;code&gt;/update&lt;/code&gt; to &lt;code&gt;/login&lt;/code&gt; (or anything you’d like), so that users can remember it more easily. To do this, I’ll simply change the URL subpath under &lt;em&gt;Site Settings / Client Sharing /&lt;/em&gt; &lt;strong&gt;Settings&lt;/strong&gt; tab to &lt;code&gt;login&lt;/code&gt;:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fblog-client-sharing-screen2-crop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fblog-client-sharing-screen2-crop.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have a few other URL options here, too: Setting a &lt;strong&gt;preview URL&lt;/strong&gt; overrides the link to the live site in the CloudCannon sidebar and header, which is handy for sites with redirects or those hosted externally. Similarly, we can set a custom &lt;strong&gt;documentation URL&lt;/strong&gt; or &lt;strong&gt;support URL&lt;/strong&gt;, the latter of which can also be a &lt;code&gt;mailto:&lt;/code&gt; link. These options are particularly useful to direct clients to contact you if they have any questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What your client user sees
&lt;/h2&gt;

&lt;p&gt;Now let’s see the site from the user’s perspective:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/AkFYJkAlbvs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;After navigating to the &lt;code&gt;/login&lt;/code&gt; path on my preview domain and entering my password, I can see that I’m able to create, change and save page and post content, and then publish my changes, but the more complex developer options are hidden from me — no site files, no source code, and no billing options.&lt;/p&gt;

&lt;p&gt;If I’m a more non-technical user, that’s probably a good idea!&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use Client Sharing
&lt;/h2&gt;

&lt;p&gt;Client Sharing is particularly helpful when your editors don’t need a permanent profile and CloudCannon account set up. Because the site Owner (typically an agency or freelancer) is in control of the password and can easily reset it, the client editor never needs to worry about forgetting how to access their site. Common users of Client Sharing include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Agency clients who only need to make infrequent updates to their site — for example changing their opening hours;&lt;/li&gt;
&lt;li&gt;  External collaborators or individual contractors whose work on a website will take place within a defined timeframe;&lt;/li&gt;
&lt;li&gt;  Subject matter experts such as legal or financial teams who need to read, update, or correct minutiae on a cyclical basis (i.e. quarterly or annually).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because Client Sharing allows user access to editing Pages and Posts and hides Developer settings like Hosting, Builds, and the File Browser, it’s an easy way for a single editor to view a site on CloudCannon and experience the CloudCannon editing interface.&lt;/p&gt;

&lt;p&gt;And if it’s important to keep an authorship record of any site changes, you can always &lt;a href="https://cloudcannon.com/documentation/articles/managing-your-team-members/" rel="noopener noreferrer"&gt;add defined Users to your Organization&lt;/a&gt;, create a CloudCannon account for them, and set their roles that way — the ‘Editor’ role is functionally the same as that offered by Client Sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make your clients’ lives easier
&lt;/h2&gt;

&lt;p&gt;When building Jamstack sites for your clients, making their editing experience as simple as possible is vital. And it doesn’t get any easier than sharing a URL and a password with them.&lt;/p&gt;

&lt;p&gt;With Client Sharing on CloudCannon, there’ll be no more headaches — for you, or for your clients.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>jamstack</category>
      <category>sharing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Top 23 free Astro themes for building out-of-this-world static sites in 2023</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Wed, 21 Jun 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/top-23-free-astro-themes-for-building-out-of-this-world-static-sites-in-2023-25c1</link>
      <guid>https://dev.to/cloudcannon/top-23-free-astro-themes-for-building-out-of-this-world-static-sites-in-2023-25c1</guid>
      <description>&lt;p&gt;With CloudCannon’s CMS &lt;a href="https://cloudcannon.com/blog/out-of-this-world-support-for-all-astro-users/" rel="noopener noreferrer"&gt;support for Astro out of beta&lt;/a&gt;, as well as the release of &lt;a href="https://astro.build/blog/astro-2/" rel="noopener noreferrer"&gt;Astro 2.0&lt;/a&gt;, there is no better time to get started on an Astro project. If you’re looking for a theme for your next Astro project, we've curated a list of 2023’s top 23 free Astro themes for a variety of use cases. This list includes actively maintained static site Astro templates with the most GitHub stars.&lt;/p&gt;

&lt;p&gt;Astro is one of the fastest growing frameworks for static site generation. Designed for building content-rich websites, Astro provides performance features that can’t be matched by other frameworks. With Astro you can build extremely fast static websites, with the flexibility of any UI language, and the ability to easily embed interactive islands. This static site generator is perfect for use cases like marketing sites, documentation websites, personal blogs, portfolio sites, and even smaller e-commerce websites.&lt;/p&gt;

&lt;p&gt;You can save a lot of time and energy by using pre-built Astro themes, sometimes called Astro templates, instead of writing your code from scratch. Themes save even more time for static sites, since they’re less likely to need as much dynamic functionality as other web applications. Using a pre-built Astro theme will help maintain a consistent user experience across components, ensure high quality site performance, and save you time on development. Put your saved time to good use by building out the features and functionality of your static website.&lt;/p&gt;

&lt;p&gt;If you’re using an &lt;strong&gt;&lt;a href="https://cloudcannon.com/astro-cms/" rel="noopener noreferrer"&gt;Astro CMS&lt;/a&gt;&lt;/strong&gt; like CloudCannon for your static site, you can put that additional time towards &lt;strong&gt;&lt;a href="https://cloudcannon.com/documentation/articles/introducing-the-visual-editor/?ssg=Other" rel="noopener noreferrer"&gt;improving the visual editing experience&lt;/a&gt;&lt;/strong&gt; for your content editors.&lt;/p&gt;

&lt;p&gt;Building with an Astro starter theme is also a great way for beginners to learn Astro. Themes often include great documentation and examples to help you learn how to use different configurations and features.&lt;/p&gt;

&lt;p&gt;Now, without further ado, let's dive into 2023’s top 23 free Astro themes for your next lightning-fast static websites. Each of these themes has been selected for its unique design, functionality, and ease of use. Whether you're building a personal blog, a portfolio site, or an e-commerce store, there's sure to be an Astro theme on this list that suits your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  23 best Astro themes for a variety of use cases
&lt;/h2&gt;

&lt;p&gt;23. Sendit&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Marketing website (multipurpose)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;​​Author:&lt;/strong&gt; &lt;a href="https://cloudcannon.com/" rel="noopener noreferrer"&gt;CloudCannon&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 15 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fpotent-ship.cloudvent.net_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fpotent-ship.cloudvent.net_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sendit is a multipurpose Astro theme made with the Bootstrap CSS framework. The components have been converted to &lt;strong&gt;&lt;a href="https://github.com/CloudCannon/bookshop" rel="noopener noreferrer"&gt;Bookshop&lt;/a&gt;&lt;/strong&gt;. It’s the perfect starting point to see how CloudCannon works and build out a clean, modern looking site at the same time.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://potent-ship.cloudvent.net/" rel="noopener noreferrer"&gt;Sendit demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/CloudCannon/sendit-astro-template" rel="noopener noreferrer"&gt;Sendit GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/CloudCannon/sendit-astro-template" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  22. Stablo Astro
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro blog template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/web3templates" rel="noopener noreferrer"&gt;web3templates&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; GPL-3.0 license&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 20 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fstablo-astro.web3templates.com_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fstablo-astro.web3templates.com_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro version of the Popular Stablo Blog Template.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://stablo-astro.web3templates.com/" rel="noopener noreferrer"&gt;Stablo Astro demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/web3templates/stablo-astro" rel="noopener noreferrer"&gt;Stablo Astro GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/web3templates/stablo-astro" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  21. Astro Big Doc
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Documentation Theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/MicroWebStacks" rel="noopener noreferrer"&gt;MicroWebStacks&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 25 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fmicrowebstacks.github.io_astro-big-doc_blog_gallery_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fmicrowebstacks.github.io_astro-big-doc_blog_gallery_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Big Doc is a theme that can scale for big documentation websites. Includes an unlimited depth configuration menu that starts with a top app bar for sections navigation, then continues on a tree left menu for pages. Each page then has a tree right menu for its table of content. User friendly even for large menus as both left and right ones are collapsible and width adjustable by the user. Performance oriented, using astro components only, no virtual DOM, no external css framework (you can add your own though). Focus on static generation on build time, no client side rendering. Javascript is for minimal manipulations connecting events and classes. UX friendly Markdown without import and referencing local images, enhancements with components for pan zoom, gallery, and code embeds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://microwebstacks.github.io/astro-big-doc/blog/gallery/" rel="noopener noreferrer"&gt;Astro Big Doc demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/MicroWebStacks/astro-big-doc" rel="noopener noreferrer"&gt;Astro Big Doc GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/MicroWebStacks/astro-big-doc" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  20. Quickstore
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro e-commerce theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/michael-andreuzza" rel="noopener noreferrer"&gt;michael-andreuzza&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; Unlicensed&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 28 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fquickstorre.vercel.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fquickstorre.vercel.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A free and simple e-commerce theme for Astro where you can embed your Gumroad or lemonsqueezy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://quickstorre.vercel.app/" rel="noopener noreferrer"&gt;Quickstore demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/michael-andreuzza/quickstore" rel="noopener noreferrer"&gt;Quickstore GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/michael-andreuzza/quickstore" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  19. Brutal
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Minimal neobrutalist theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/ElianCodes" rel="noopener noreferrer"&gt;ElianCodes&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 38 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fbrutal.elian.codes_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fbrutal.elian.codes_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Brutal is a minimal neobrutalist theme for Astro. It's based on Neobrutalist Web Design, a movement that aims to create websites with a minimalistic and functional design. It has some integrations like image optimization, RSS, and sitemap, ready to get your SEO done right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://brutal.elian.codes/" rel="noopener noreferrer"&gt;Brutal demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/eliancodes/brutal" rel="noopener noreferrer"&gt;Brutal GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/eliancodes/brutal" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  18. Astro Design System
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Starter theme for design systems&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/jordienr" rel="noopener noreferrer"&gt;jordienr&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 39 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-design-system.vercel.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-design-system.vercel.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Design System is the easiest way to start your our design system. Since Astro is compatible with many frameworks, you can import your components and document them right in the Markdown files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-design-system.vercel.app/" rel="noopener noreferrer"&gt;Astro Design System demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/jordienr/astro-design-system" rel="noopener noreferrer"&gt;Astro Design SystemGitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/jordienr/astro-design-system" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  17. Astrolus
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Home page template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://tailus.io/" rel="noopener noreferrer"&gt;Tailus&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 43 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastrolus.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastrolus.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Home page template built with Astro and TailwindCSS using tailus blocks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astrolus.netlify.app/" rel="noopener noreferrer"&gt;Astrolus demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/Tailus-UI/astro-theme" rel="noopener noreferrer"&gt;Astrolus GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/Tailus-UI/astro-theme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  16. Astro Shopify
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro e-commerce theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/thomasKn" rel="noopener noreferrer"&gt;thomasKn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 47 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-shopify.gatto.dev_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-shopify.gatto.dev_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Shopify is a lightweight and powerful e-commerce starter theme to build headless Shopify storefronts with Astro. The theme is built with Svelte, but you can use any framework you like (React, Vue, Solid, etc.) thanks to Astro. Tailwind UI free components are used for the design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-shopify.gatto.dev/" rel="noopener noreferrer"&gt;Astro Shopify demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/thomasKn/astro-shopify" rel="noopener noreferrer"&gt;Astro Shopify GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/thomasKn/astro-shopify" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  15. Hello Astro
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Multipurpose Astro starter theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/hellotham" rel="noopener noreferrer"&gt;hellotham&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 49 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fhellotham.github.io_hello-astro_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fhellotham.github.io_hello-astro_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello Astro is a multi purpose Astro starter theme written in Typescript, TailwindCSS and AlpineJS. It supports Markdown and MDX based pages and blog posts. Hello Astro can be used for corporate/marketing sites, blogs, documentation sites, and portfolio sites supporting photo galleries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hellotham.github.io/hello-astro/" rel="noopener noreferrer"&gt;Hello Astro demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/hellotham/hello-astro" rel="noopener noreferrer"&gt;Hello Astro GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/hellotham/hello-astro" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  14. Astro Toolbox
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Simple Netlify template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/tzmanics" rel="noopener noreferrer"&gt;tzmanics&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; Unlicensed&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 52 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-toolbox.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-toolbox.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Toolbox is a simple template to give you the code you need to use Netlify features with Astro. It is a reference on how to integrate commonly used features within &lt;a href="https://netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; for Astro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-toolbox.netlify.app/" rel="noopener noreferrer"&gt;Astro Toolbox demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/netlify-templates/astro-toolbox" rel="noopener noreferrer"&gt;Astro Toolbox GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/netlify-templates/astro-toolbox" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  13. Astro Creek
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro blog theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/robertguss" rel="noopener noreferrer"&gt;robertguss&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 98 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-theme-creek.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-theme-creek.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Creek is an open source blog theme featuring Sitemap, RSS Feed, SEO functionality, and Search powered by Lunr.js and Mark.js.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-theme-creek.netlify.app/" rel="noopener noreferrer"&gt;Astro Creek demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/robertguss/Astro-Theme-Creek" rel="noopener noreferrer"&gt;Astro Creek GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/robertguss/Astro-Theme-Creek" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. Astro Blog Template
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro blog template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/Charca" rel="noopener noreferrer"&gt;Charca&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 160 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-blog-template.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-blog-template.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Blog Template is a personal blog theme.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-blog-template.netlify.app/" rel="noopener noreferrer"&gt;Astro Blog Template demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/Charca/astro-blog-template" rel="noopener noreferrer"&gt;Astro Blog Template GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/Charca/astro-blog-template" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Astro Modern Personal Website
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Personal portfolio template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/manuelernestog" rel="noopener noreferrer"&gt;Manuelernestog&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 168 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-modern-personal-website.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-modern-personal-website.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern Personal Website Template with Project Section, CV Section, Paginated Blog, RSS Feed, SEO Friendly, Visual themes and Responsive Design for Astro framework. Built with Astro, DaisyUI and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-modern-personal-website.netlify.app/" rel="noopener noreferrer"&gt;Astro Modern Personal Website demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/manuelernestog/astro-modern-personal-website" rel="noopener noreferrer"&gt;Astro Modern Personal Website GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/manuelernestog/astro-modern-personal-website" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Astro Theme Cactus
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; A simple opinionated starter theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/chrismwilliams" rel="noopener noreferrer"&gt;chrismwilliams&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 186 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-theme-cactus.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-theme-cactus.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Theme Cactus is a simple opinionated starter built with the Astro framework. Use it to create an easy-to-use blog or website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-theme-cactus.netlify.app/" rel="noopener noreferrer"&gt;Astro Theme Cactus demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/chrismwilliams/astro-theme-cactus" rel="noopener noreferrer"&gt;Astro Theme Cactus Github repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/chrismwilliams/astro-theme-cactus" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Astro Landing Page
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Astro template for landing pages&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/mhyfritz" rel="noopener noreferrer"&gt;mhyfritz&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 210 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-moon-landing.netlify.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-moon-landing.netlify.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An Astro + Tailwind CSS Example/Template for Landing Pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-moon-landing.netlify.app/" rel="noopener noreferrer"&gt;Astro Landing Page demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/mhyfritz/astro-landing-page" rel="noopener noreferrer"&gt;Astro Landing Page GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/mhyfritz/astro-landing-page" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Accessible Astro Starter
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Accessible starter template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/markteekman" rel="noopener noreferrer"&gt;markteekman&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 213 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fwww.accessible-astro.dev_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fwww.accessible-astro.dev_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Accessible Astro Starter is a ready to use, SEO friendly blogging theme. It contains plenty of accessible components to build several page types, Tailwind CSS to help you build faster and example pages such as a dynamic Blog, 404, Markdown and MDX. This theme is designed to help you build your project faster and provide a solid base for accessibility.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.accessible-astro.dev/" rel="noopener noreferrer"&gt;Accessible Astro Starter demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/markteekman/accessible-astro-starter" rel="noopener noreferrer"&gt;Accessible Astro Starter GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/markteekman/accessible-astro-starter" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Odyssey
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Business template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/littlesticks" rel="noopener noreferrer"&gt;LittleSticks&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 239 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fodyssey-theme.littlesticks.site_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fodyssey-theme.littlesticks.site_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Odyssey is a modern theme/starter for a business or startup's marketing website. It provides landing page examples, a full-featured blog, contact forms, and more. It is also fully theme-able to match your business' branding and style. It even includes a theme switcher component to show how easily the entire style of the site can be changed with only a few lines of CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://odyssey-theme.littlesticks.site/" rel="noopener noreferrer"&gt;Odyssey demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/littlesticks/odyssey-theme" rel="noopener noreferrer"&gt;Odyssey GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/littlesticks/odyssey-theme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Krypton
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Crypto template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/cssninjaStudio" rel="noopener noreferrer"&gt;cssninjaStudio&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 279 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fkrypton.cssninja.io_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fkrypton.cssninja.io_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Krypton is a free ICO/Crypto template for Astro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://krypton.cssninja.io/" rel="noopener noreferrer"&gt;Krypton demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/cssninjaStudio/krypton" rel="noopener noreferrer"&gt;Krypton GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/cssninjaStudio/krypton" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Astro Ink
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Minimal Markdown-based blog theme&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/one-aalam" rel="noopener noreferrer"&gt;one-aalam&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 308 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-ink.vercel.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-ink.vercel.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Ink is a minimal theme created to serve minimalistic markdown-based blog needs. It ships with almost all the basic Astro components that you might need while creating light-weight, performant, personal blogs, that focus on shipping less Javascript by default.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-ink.vercel.app/" rel="noopener noreferrer"&gt;Astro Ink demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/one-aalam/astro-ink" rel="noopener noreferrer"&gt;Astro Ink GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/one-aalam/astro-ink" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Astroship
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Starter template for startups, marketing sites, landing pages, and blogs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/surjithctly" rel="noopener noreferrer"&gt;surjithctly&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; GPL-3.0 license&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 420 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastroship.web3templates.com_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastroship.web3templates.com_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astroship is a starter template for startups, marketing websites, landing pages &amp;amp; blogs. Built with Astro &amp;amp; TailwindCSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astroship.web3templates.com/" rel="noopener noreferrer"&gt;Astroship demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/surjithctly/astroship" rel="noopener noreferrer"&gt;Astroship GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/surjithctly/astroship" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fresh
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Landing page template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/cssninjaStudio" rel="noopener noreferrer"&gt;cssninjaStudio&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 513 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Ffresh.cssninja.io_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Ffresh.cssninja.io_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fresh is a landing page starter built with SCSS and JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fresh.cssninja.io/" rel="noopener noreferrer"&gt;Fresh demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/cssninjaStudio/fresh" rel="noopener noreferrer"&gt;Fresh GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/cssninjaStudio/fresh" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Astro Paper
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Minimal blog template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/satnaing" rel="noopener noreferrer"&gt;satnaing&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 545 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-paper.pages.dev_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastro-paper.pages.dev_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AstroPaper is a minimal, responsive, accessible and SEO-friendly Astro blog theme. This theme follows best practices and provides accessibility out of the box. Light and dark mode are supported by default. Moreover, additional color schemes can also be configured.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astro-paper.pages.dev/" rel="noopener noreferrer"&gt;Astro Paper demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/satnaing/astro-paper" rel="noopener noreferrer"&gt;Astro Paper GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/satnaing/astro-paper" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Astro Wind
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use case(s):&lt;/strong&gt; Tailwind CSS template&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://github.com/onwidget" rel="noopener noreferrer"&gt;onwidget&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; ⭐: 782 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastrowind.vercel.app_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcc-dam.imgix.net%2Fastrowind.vercel.app_.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro Wind is a free and open-source template to make your website using &lt;a href="https://astro.build/blog/astro-2/" rel="noopener noreferrer"&gt;Astro 2.0&lt;/a&gt; + &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;. Ready to start a new project and designed taking into account web best practices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astrowind.vercel.app/" rel="noopener noreferrer"&gt;Astro Wind demo site&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/onwidget/astrowind" rel="noopener noreferrer"&gt;Astro Wind GitHub repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://app.cloudcannon.com/register#sites/connect/github/onwidget/astrowind" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuttons.cloudcannon.com%2Fdeploy.svg" alt="Deploy to CloudCannon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there we have it! The top 23 open source Astro templates for 2023, covering a range of use cases to take your static website to the next level.&lt;/p&gt;

&lt;p&gt;Have we missed your favorite Astro theme? Let us know on &lt;strong&gt;&lt;a href="https://twitter.com/CloudCannon" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a href="https://techhub.social/@cloudcannon" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt;&lt;/strong&gt;!&lt;/p&gt;

</description>
      <category>astro</category>
      <category>webdec</category>
      <category>jamstack</category>
      <category>themes</category>
    </item>
    <item>
      <title>Astro vs. Next.js</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Wed, 21 Jun 2023 12:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/astro-vs-nextjs-4gpk</link>
      <guid>https://dev.to/cloudcannon/astro-vs-nextjs-4gpk</guid>
      <description>&lt;p&gt;&lt;em&gt;By Jaimie McMahon&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Why compare &lt;a href="https://astro.build/"&gt;Astro&lt;/a&gt; and &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt;? Astro is the new kid on the block in the web development world, being relatively new to the market but quickly gaining interest. Next.js is arguably the most popular website development framework, having become the go-to for some of the world’s largest companies like OpenAI, Hulu, and Vimeo. Astro is a UI-agnostic MPA framework built for speed, while Next.js is a React-based SPA framework with a strong focus on features.&lt;/p&gt;

&lt;p&gt;As always, the choice between static site generators will depend on a multitude of factors. Your individual use case, you and your team’s web development experience, as well as language and workflow preferences all have a part to play. The good news is, with CloudCannon’s &lt;a href="https://cloudcannon.com/astro-cms/"&gt;Astro&lt;/a&gt; and &lt;a href="https://cloudcannon.com/nextjs-cms/"&gt;Next.js&lt;/a&gt; support, whichever tool you choose for your static sites, you’ll gain the advantages of flexible development tooling, accessible content management, and visual content editing and page building. With both &lt;a href="https://cloudcannon.com/blog/out-of-this-world-support-for-all-astro-users/"&gt;Astro support&lt;/a&gt; and &lt;a href="https://cloudcannon.com/blog/enhanced-cloudcannon-support-for-next-js-users/"&gt;Next.js support&lt;/a&gt; having been released out of beta in 2023, there’s no better time to start your new project. However, it should be noted that CloudCannon’s support for Astro and Next.js is limited to SSG capabilities, and does not include SSR.&lt;/p&gt;

&lt;p&gt;Read on to compare these two SSGs and determine if you should choose Astro and support the underdog, or choose the tried-and-true Next.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; – choose Astro for content-rich websites with less interactivity, choose Next.js for highly interactive feature-rich websites that are more application-like.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Astro?
&lt;/h3&gt;

&lt;p&gt;Used by over 100,000 developers and teams around the world, Astro is the fastest growing static site generator. Although this framework is relatively new, it should not be ignored. First released in 2021, the latest (at the time of writing) &lt;a href="https://astro.build/blog/astro-210/"&gt;Astro 2.1&lt;/a&gt; release features built-in image support, Markdoc integration, &lt;code&gt;astro check&lt;/code&gt; for flagging files for errors during development, and inferred types for dynamic routes. Astro is designed for building content-rich websites, a focus that lets them provide performance features that can’t be matched by more application-focused frameworks. This static site generator is ideal for use cases like marketing sites, publishing sites, documentation sites, blogs, portfolios, and even e-commerce sites.&lt;/p&gt;

&lt;p&gt;Astro leverages server-side rendering by keeping everything in HTML, CSS, Javascript, or Typescript. This eliminates the need to learn a server-side language, and instead offering opt-in complexity. Astro makes things as simple as possible while you onboard, letting you incrementally reach for new features as you go. Astro takes a Multi Page Application (MPA) approach, which improves page performance metrics like &lt;a href="https://developer.chrome.com/docs/lighthouse/performance/interactive/"&gt;Time to Interactive (TTI)&lt;/a&gt;. This is critical for content-focused websites since first-load performance is essential. Javascript often slows sites since users’ devices rarely match the speed of a developers laptop. That is why Astro’s goal is to be fast by default.&lt;/p&gt;

&lt;p&gt;Astro is more approachable than Next.js for those with less web development experience. You can use any UI component languages you know: React, Preact, Svelte, Vue, Solid, Lit, and more are all supported. The built in UI language &lt;code&gt;.astro&lt;/code&gt; makes it easy to use progressive enhancement and accessibility patterns without any overhead. Astro’s features include component syntax, file-based routing, asset handling, a build process, bundling, optimizations, data-fetching, and more. And if you need further control you have access to over &lt;a href="https://astro.build/integrations/"&gt;100+ integrations&lt;/a&gt; like React, Svelte, Vue, Tailwind CSS, MDX, and image optimizations, to name a few.&lt;/p&gt;

&lt;p&gt;Astro also leverages &lt;a href="https://docs.astro.build/en/concepts/islands/"&gt;Astro Islands&lt;/a&gt;, which are interactive UI components on otherwise static HTML pages. You can use any supported UI framework (React, Svelte, Vue, etc.) or even mix and match them to render islands in the browser in isolation via partial hydration. The UI component is automatically rendered to HTML ahead of time and then all the JavaScript is stripped out to keep your static sites fast by default. When Javascript is required for interactive UI you simply create an island of interactivity without needing to alter the entire page.&lt;/p&gt;

&lt;p&gt;Beyond performance gains, island architecture also allows for loading in parallel. This means components can load at the same time and hydrate in isolation. So high-priority components can become interactive without having to wait for heavier components on the same page. You can customize this further by attaching a special &lt;a href="https://docs.astro.build/en/reference/directives-reference/#client-directives"&gt;client directive&lt;/a&gt; that tells Astro exactly when and how to render each component. Overall, Astro has gained so much interest in so little time because it lets developers build extremely fast static websites, with the flexibility of any UI language, and the ability to easily embed interactive islands. What’s more, Astro offers fantastic &lt;a href="https://docs.astro.build/en/getting-started/"&gt;documentation&lt;/a&gt;, and the team is great at educating and supporting new users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites made with Astro
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://create.t3.gg/"&gt;t3.gg&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://roadmap.sh/"&gt;roadmap.sh&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://pngtree.com/"&gt;pngtree.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://getbem.com/"&gt;getbem.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is Next.js?
&lt;/h3&gt;

&lt;p&gt;Next.js is a popular React framework backed by Vercel that is used by some of the world’s biggest companies. It provides a rich set of features out of the box, including server-side rendering, client-side rendering, API routes, and dynamic imports. As a static site generator it takes care of the tooling and configuration required by React while also giving developers' applications more structure, features, and optimizations.&lt;/p&gt;

&lt;p&gt;First released in 2016, with the latest (at the time of writing) &lt;a href="https://nextjs.org/blog/next-13-2"&gt;Next.js 13.2&lt;/a&gt; release boasting major improvements. These include built-in SEO support, route handlers, MDX for server components, and statically typed links. Next.js is widely used by developers for building complex and feature-rich websites, web applications, and e-commerce platforms. It also has a large and active community that provides support, documentation, and a rich ecosystem of plugins and tools.&lt;/p&gt;

&lt;p&gt;Next.js is arguably the most widely used framework among developers with React expertise. React offers a virtual DOM program and server-side rendering, which makes complex applications run faster. The stated goal of Next.js is to bring full-stack functionality to the frontend. With new Rust-based transpilation and minification, and Turbopack replacing Webpack, Next.js is well positioned to continue acting as the go-to powerhouse for web developers.&lt;/p&gt;

&lt;p&gt;Next.js takes a Single-Page Application (SPA) approach, meaning that most HTML is rendered locally with JavaScript running on the browser. Usually, local rendering slows down a page, but Next.js mitigates this by including the option for server-side rendering on the first page load. It is worth noting that even though local rendering is initially slower it benefits future page loading. This will improve the experience for long-lived users. Similarly, a SPA’s client routing offers faster future page loads once the web application is fully loaded in the browser. Next.js’s increased control over page rendering also provides more powerful transitions across page navigation.&lt;/p&gt;

&lt;p&gt;Next.js uses an app-like architecture that is ideal for complex use cases that require multi-page state management. The entire website is run as a single application that maintains state and memory across many pages. Overall, Next.js has become the web development powerhouse that it is today because it allows React developers to build highly interactive web applications without compromising on performance. What’s more is that there is a massive community backing Next.js, meaning you can easily find any resources needed for your Next.js project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sites made with Next.js?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://chat.openai.com/chat"&gt;chat.openai.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://asana.com/"&gt;asana.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://codesandbox.io/"&gt;codesandbox.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://linktr.ee/"&gt;linktr.ee&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Which should I choose?
&lt;/h3&gt;

&lt;p&gt;The short answer – as always – is that it depends on you, your team, and your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Astro&lt;/strong&gt; if you (or your team) are newer to web development and would benefit from a gentler learning curve. With Astro’s opt-in complexity, you can build an entire website with just HTML and CSS. With server-side rendering you won’t need to worry about the complexity of hook and stale closures, atoms, selectors, reactions, or derivations.&lt;/p&gt;

&lt;p&gt;For more experienced developers, you may still want to choose Astro as it’s flexible enough to let you capitalize on your accumulated knowledge by letting you mix and match multiple UI frameworks within a single project. You can use React, Preact, Solid, Svelte, Vue, and Lit in your Astro project. This also makes Astro the superior choice if you predict future project migrations as being UI-agnostic means you can avoid project lock-in to a single framework.&lt;/p&gt;

&lt;p&gt;Another reason to make the switch to Astro is if your project is content heavy and only requires limited interactivity. Your content-rich static sites will be significantly faster using Astro since less JavaScript is served. For example, Astro sites can &lt;a href="https://twitter.com/t3dotgg/status/1437195415439360003"&gt;load 40% faster with 90% less JavaScript&lt;/a&gt; compared to Next.js. Because Astro only hydrates what's needed and leaves the rest as static HTML, you get to decide which components need to run in the browser. This selective hydration paired with Astro’s island architecture for interactive components means you can build lightning-fast websites. The increase in performance will result in improved SEO and user experience for your Astro site.&lt;/p&gt;

&lt;p&gt;For example, it would make sense to choose Astro if you are just getting started with web development and want a flexible tool for building simple, yet high performing static sites. It would also be an ideal choice if you want more flexibility to leverage your development experience by mixing and matching frameworks to build the fastest websites for use cases like marketing sites, documentation, blogs, and smaller e-commerce stores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Next.js&lt;/strong&gt; if you (or your team) already has React experience and want to benefit from a plethora of features, plugins, and community resources. Next.js’s popularity and longevity to date means that it boasts a very large community of users. This makes a smooth developer experience with users always making new Next.js resources.&lt;/p&gt;

&lt;p&gt;Next.js is also the obvious choice for React developers building complex static websites that require multi-page state management. If your project includes app-like features and you prefer to work in React, then Next.js is a no-brainer. Although Astro can build faster static websites compared to Next.js, Astro was not designed for sites that need multi-page state management. This is where Next.js shines as it offers fantastic site performance and developer experience in comparison to other application-focused frameworks. Next.js reduces the upfront construction time needed for complex projects and allows greater control over scaling for huge e-commerce sites.&lt;/p&gt;

&lt;p&gt;For instance, it would make sense to choose Next.js if you already know React and you are building a massive e-commerce store that needs to scale, or a highly interactive website that works more like an app. If you are building this type of site but don’t prefer React, then a static site generator like &lt;a href="https://cloudcannon.com/sveltekit-cms/"&gt;SvelteKit&lt;/a&gt; or &lt;a href="https://cloudcannon.com/nuxtjs-cms/"&gt;Nuxt.js&lt;/a&gt; would be a suitable alternative.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose either – or both – with CloudCannon
&lt;/h3&gt;

&lt;p&gt;CloudCannon’s focus is, and always has been, making content editing and production more accessible to everyone, no matter the use case. Accordingly, we provide excellent support for both Astro and Next.js, meaning we’re here for you whichever approach you choose. With our Git-based CMS, your content teams will be able to easily build pages in an intuitive visual editor, while developers benefit from our flexible approach to configuration and content management.&lt;/p&gt;

&lt;p&gt;We’ve published comprehensive guides for &lt;a href="https://cloudcannon.com/documentation/guides/astro-starter-guide/"&gt;&lt;strong&gt;Getting started with Astro&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://cloudcannon.com/documentation/guides/nextjs-starter-guide/?ssg=Next.js"&gt;&lt;strong&gt;Getting started with Next.js and CloudCannon&lt;/strong&gt;&lt;/a&gt; (including a video) to help you set up your project.&lt;/p&gt;

</description>
      <category>astro</category>
      <category>nextjs</category>
      <category>jamstack</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How Jampack optimizes our Eleventy website and improves performance</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Tue, 20 Jun 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/how-jampack-optimizes-our-eleventy-website-and-improves-performance-2i21</link>
      <guid>https://dev.to/cloudcannon/how-jampack-optimizes-our-eleventy-website-and-improves-performance-2i21</guid>
      <description>&lt;p&gt;I’ve written previously about the performance outcomes of &lt;a href="https://cloudcannon.com/blog/cloudcannon-com-is-now-built-with-eleventy/"&gt;transitioning cloudcannon.com to Eleventy&lt;/a&gt;, which include perfect Lighthouse scores and excellent Core Web Vitals scores. We’re now several weeks into the flow of building our site pages, as well as drafting, editing, and publishing blog posts on Eleventy with CloudCannon as our CMS, and it’s been, as we expected, a joy to work with. But I’ve also wanted to dig a little deeper into each of the tools we used to achieve our performance gains, and to share how we configured these tools. So let’s get started, shall we?&lt;/p&gt;

&lt;p&gt;One of the easiest tools to include in our new stack was &lt;a href="https://jampack.divriots.com/"&gt;Jampack&lt;/a&gt; from &lt;a href="https://divriots.com/"&gt;RIOTS, who you may know as the developers of &lt;/a&gt;&lt;a href="https://backlight.dev/"&gt;Backlight&lt;/a&gt;; the Figma plugins &lt;a href="https://story.to.design/"&gt;story.to.design&lt;/a&gt;, &lt;a href="https://www.figma.com/community/plugin/1159123024924461424/html.to.design"&gt;html.to.design&lt;/a&gt;, and &lt;a href="https://www.figma.com/community/plugin/1222554159237609568/code.to.design"&gt;code.to.design&lt;/a&gt;; and the online IDEs &lt;a href="https://webcomponents.dev/"&gt;WebComponents.dev&lt;/a&gt;, &lt;a href="https://lwc.studio/"&gt;LWC.studio&lt;/a&gt;, and &lt;a href="https://components.studio/"&gt;Components.studio&lt;/a&gt;. Altogether, these tools are used by hundreds of thousands of developers and designers — and for a reasonably small core team, RIOTS punches well above their weight.
&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Jampack?
&lt;/h2&gt;

&lt;p&gt;In brief, Jampack is a post-processing tool that takes the output of any static site generator and optimizes it for user experience and Core Web Vitals scores. Jampack is one of &lt;a href="https://divriots.com/opensource"&gt;several open-source tools&lt;/a&gt; that the &lt;/p&gt;RIOTS team have created. It was released at the end of January 2023, and as soon as we heard about it, we immediately started testing it out.

&lt;p&gt;I’ll go into more detail below, but in brief, &lt;strong&gt;I would recommend Jampack to any CloudCannon user&lt;/strong&gt;, or indeed anyone with a static site.&lt;/p&gt;

&lt;p&gt;Why the blanket endorsement? Primarily because Jampack is SSG-agnostic. While we use &lt;a href="https://cloudcannon.com/eleventy-cms/"&gt;Eleventy&lt;/a&gt; to build cloudcannon.com, everyone who works at CloudCannon uses a range of static site generators to build our personal sites, and Jampack works with all of them. (Even, of course, those built without an SSG — because all Jampack requires is a folder containing an output static site.)&lt;/p&gt;
&lt;h2&gt;
  
  
  What does Jampack do?
&lt;/h2&gt;

&lt;p&gt;Quite a lot, really! Here’s a quick summary of the major steps Jampack takes when it’s run:&lt;/p&gt;
&lt;h3&gt;
  
  
  1) Optimize images
&lt;/h3&gt;

&lt;p&gt;Jampack compresses images with the high-performance &lt;a href="https://sharp.pixelplumbing.com/"&gt;&lt;code&gt;sharp&lt;/code&gt;&lt;/a&gt; processing module; &lt;code&gt;JPEG&lt;/code&gt; and &lt;code&gt;PNG&lt;/code&gt; images are converted to &lt;code&gt;AVIF&lt;/code&gt; and &lt;code&gt;WebP&lt;/code&gt;. Jampack also creates responsive images for smaller devices, and assigns image dimensions to avoid any &lt;a href="https://web.dev/optimize-cls/#images-without-dimensions"&gt;CLS issues&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  2) Optimize above the fold
&lt;/h3&gt;

&lt;p&gt;Jampack introduced a new &lt;code&gt;&amp;lt;the-fold&amp;gt;&amp;lt;/the-fold&amp;gt;&lt;/code&gt; mark that you can add to your HTML to mark where a page’s fold should be. Based on this mark, Jampack prioritizes images above the fold and turns them into &lt;a href="https://www.thewebmaster.com/progressive-jpegs/"&gt;progressive JPEGs&lt;/a&gt; for a better user experience. If images above the fold are smaller than 1500 bytes, Jampack embeds the image into html using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs"&gt;data URLs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Below the fold, Jampack lazy-loads all images and iframes.&lt;/p&gt;
&lt;h3&gt;
  
  
  3) Compress all assets
&lt;/h3&gt;

&lt;p&gt;In its second and final pass, Jampack compresses all untouched assets, keeping the same name and same file format for each:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;

&lt;thead&gt;

&lt;tr&gt;

&lt;th&gt;Extension&lt;/th&gt;

&lt;th&gt;Compressor&lt;/th&gt;

&lt;/tr&gt;

&lt;/thead&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;td&gt;.html, .htm&lt;/td&gt;

&lt;td&gt;html-minifier-terser&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.css&lt;/td&gt;

&lt;td&gt;Elements of both csso and lightningCSS&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.js&lt;/td&gt;

&lt;td&gt;swc&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.svg&lt;/td&gt;

&lt;td&gt;svgo&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.jpg, .jpeg&lt;/td&gt;

&lt;td&gt;sharp&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.png&lt;/td&gt;

&lt;td&gt;sharp&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.webp&lt;/td&gt;

&lt;td&gt;sharp&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;.avif&lt;/td&gt;

&lt;td&gt;sharp&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Check out the &lt;a href="https://jampack.divriots.com/"&gt;Jampack docs&lt;/a&gt; for more detail, and also the available &lt;a href="https://jampack.divriots.com/cli-options/"&gt;CLI options&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  How we use Jampack
&lt;/h2&gt;

&lt;p&gt;To add Jampack to cloudcannon.com, we simply added a single line to our &lt;a href="https://cloudcannon.com/documentation/articles/extending-your-build-process-with-hooks/"&gt;postbuild&lt;/a&gt; file, which runs on our production site. (While we could run Jampack on our staging branch, or on every single branch we make, we’re privileging the production branch here, and in the process shaving off a &lt;em&gt;very&lt;/em&gt; small amount of post-build time when we’re working on new site content earlier on in our publishing workflow.)&lt;/p&gt;

&lt;p&gt;Because Jampack optimizes above the fold, we’ve also built a specific &lt;a href="https://github.com/CloudCannon/bookshop"&gt;Bookshop&lt;/a&gt; component to indicate where the fold should be. If you use Bookshop to manage your components and would like to do the same for your site, here’s that component’s data file:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;structures&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;blocks&lt;/span&gt;
  &lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Fold"&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;-&lt;/span&gt;
    &lt;span class="s"&gt;Indicates where the page fold is.&lt;/span&gt;
    &lt;span class="s"&gt;Everything below this point will be lazy loaded.&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;folder_open&lt;/span&gt;
  &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;This component, when added to a page by editors using CloudCannon’s Visual Editor, simply inserts the following between other page components:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight html"&gt;&lt;code&gt;
&lt;span class="nt"&gt;&amp;lt;the-fold&amp;gt;&amp;lt;/the-fold&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;It’s a really simple step, but it gives me and our team of editors a lot of control: we’re able to precisely determine which parts of a page should be more heavily optimized, and which should be lazy-loaded.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hayTZwAD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/Fold-component-block%2B%25282%2529.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hayTZwAD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/Fold-component-block%2B%25282%2529.png" alt="" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see above, we generally set the fold at the end of the first ‘container’ component on each page. (We've set our Bookshop components to be shown or hidden, depending on mobile, tablet, or desktop breakpoints; to make sure that Jampack optimizes above the fold for all device types, we set the fold under all device-specific versions of that top component.)&lt;/p&gt;

&lt;h2&gt;
  
  
  SSG chaining
&lt;/h2&gt;

&lt;p&gt;Jampack fits into a workflow we refer to internally as ‘SSG chaining’ — like our open-source search tool &lt;a href="https://pagefind.app/"&gt;Pagefind&lt;/a&gt;, and our translation management tool &lt;a href="https://rosey.app/"&gt;Rosey&lt;/a&gt;. The general idea of SSG chaining, as we use the term, is that static sites can (and should) stay simple — and static site generators shouldn’t have to ship and build every single possible feature or optimization strategy. Instead, users can first build their sites using any SSG they like, and then ‘chain’ a series of post-build tools on the static output.&lt;/p&gt;

&lt;p&gt;Rather than building an optimizer or a search plugin for a dozen different SSGs, tools like Jampack are able to share the benefits they offer across the whole static site ecosystem. And when a newer, shinier SSG comes along, there’s no question that these SSG-chaining tools will still work on them: because there’s not the sense of lock-in that can come with plugins we depend upon, developers are freer to shift between static site generators, while still using their preferred post-build tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Though I think we’re seeing some major development tools and frameworks feature-creep towards full meta-framework, jack-of-all-trades, gotta-catch-them-all status, Jampack reminds us that it’s possible to escape that particular rat race. Or at least to sidestep it, and give every developer the same Core Web Vitals advantages, regardless of the tools they choose to build their static sites.&lt;/p&gt;



</description>
      <category>jampack</category>
      <category>jamstack</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>CloudCannon.com is now built with Eleventy!</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Tue, 20 Jun 2023 12:00:00 +0000</pubDate>
      <link>https://dev.to/cloudcannon/cloudcannoncom-is-now-built-with-eleventy-l0d</link>
      <guid>https://dev.to/cloudcannon/cloudcannoncom-is-now-built-with-eleventy-l0d</guid>
      <description>&lt;p&gt;CloudCannon.com is now &lt;a href="https://cloudcannon.com/eleventy-cms/"&gt;built with Eleventy&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;We’re big fans of Eleventy for a host of reasons — including its build speed, its focus on making lean websites, and its flexibility and overall developer experience — and moving over to full Eleventy builds on our own site has been something I’ve looked forward to since I started experimenting with the SSG more than a year ago.&lt;/p&gt;

&lt;p&gt;After working on designs and development for a couple of months, we officially switched over to our new Eleventy site repository just two weeks ago, and I’m not exaggerating when I say that writing blog posts, building pages, and editing existing content on this new site has been the best website editing experience I’ve ever had.&lt;/p&gt;

&lt;p&gt;Best of all, thanks to some careful design and development decisions (more on those below), both our build speed and page load speed have dramatically improved, our Lighthouse scores for the homepage and other key landing pages hover tantalizingly close to perfect 100s across the board, and we’re inching closer and closer to full SEO optimization by default.&lt;/p&gt;

&lt;p&gt;But how did we get there?&lt;/p&gt;

&lt;h2&gt;
  
  
  Design
&lt;/h2&gt;

&lt;p&gt;Our goal with the new CloudCannon website design was simple: craft a journey for prospective users that was clear, concise, and to the point. To do this we partnered with our friends at &lt;a href="https://staticmania.com"&gt;Static Mania&lt;/a&gt; to design a site that’s clean, uses white space effectively across a range of device types, and ensures the layout is easy to navigate. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oYWLWSEV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/developer-hero%2B%25281%2529.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oYWLWSEV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/developer-hero%2B%25281%2529.png" alt="" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, showcasing the CMS is still our main goal, so we’ve also added new illustrations that not only give users an idea of what our app looks like, but also shows them the processes behind it. We want our prospective users to feel confident they know what they’re getting when they choose CloudCannon as a CMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development
&lt;/h2&gt;

&lt;p&gt;A small team of CloudCannon developers built out the site, with a focus on performance, asset management, and — of course — ease of editing. They treated the project as a proof of concept: that CloudCannon can provide the most intuitive and flexible editing interface for users with a range of experience. From non-technical marketers to source code dabblers, all the way through to developers working in their favorite IDE, the new codebase for CloudCannon.com caters for everyone already in our team, as well as future team members.&lt;/p&gt;

&lt;p&gt;Here’s the tech stack we settled on:&lt;/p&gt;

&lt;h3&gt;
  
  
  Static site generator: Eleventy
&lt;/h3&gt;

&lt;p&gt;The main advantages of &lt;a href="https://www.11ty.dev/"&gt;Eleventy&lt;/a&gt; that swayed us were its build speed, its flexibility for templating languages — particularly Liquid, which a lot of our team has experience with — and the features offered by the recent 2.0 release. We’ve also built an &lt;a href="https://github.com/CloudCannon/bookshop/blob/main/guides/eleventy.adoc"&gt;Eleventy integration&lt;/a&gt; for our open-source component manager &lt;a href="https://github.com/CloudCannon/bookshop"&gt;Bookshop&lt;/a&gt; across our builds, with &lt;a href="https://cloudcannon.com/documentation/articles/what-are-visual-data-bindings/"&gt;visual data bindings&lt;/a&gt; to allow live visual editing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Styling: TailwindCSS
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwind&lt;/a&gt; has a lot of advantages to it — including the ability to code CSS without leaving HTML, customizability, responsiveness, and a small file size — but the main drawcards for us were reinforcing consistency across our development team with standardized classes, and ensuring that new devs joining our team will find everything in the CloudCannon.com codebase readable. (And Tailwind’s amazing documentation helps, too!)&lt;/p&gt;

&lt;h3&gt;
  
  
  Asset management: S3 and imgix
&lt;/h3&gt;

&lt;p&gt;We use an S3 bucket for our asset management, and with &lt;a href="https://imgix.com/"&gt;imgix&lt;/a&gt; in front of it, all our content editors need to do is upload a high-resolution image directly through the CloudCannon interface. Luckily for us, imgix takes care of everything else — optimizing, resizing, rendering, and serving the right image size and type for the user’s device. As far as workflows for site editors go, it’s ideal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance: Jampack
&lt;/h3&gt;

&lt;p&gt;Eleventy handles performance well by default, and we’ve leaned into its default optimization strategies, but a tool like Div/Riots’ &lt;a href="https://jampack.divriots.com/"&gt;Jampack&lt;/a&gt; also helped to push our Core Web Vitals in the right direction. Jampack is particularly good at optimizing above the fold, and we’ve used their tag &lt;code&gt;&amp;lt;the-fold&amp;gt;&lt;/code&gt; to indicate where that should sit. (We’ve even built that tag into a simple Bookshop component, so content editors can set the fold without dipping into HTML.)&lt;/p&gt;

&lt;p&gt;Adding Jampack to our build was easy — with CloudCannon’s &lt;a href="https://cloudcannon.com/documentation/articles/extending-your-build-process-with-hooks/"&gt;build hooks&lt;/a&gt;, adding Jampack to our production postbuild file was a simple one-line addition for a lot of potential gains.&lt;/p&gt;

&lt;h3&gt;
  
  
  Site search: Pagefind
&lt;/h3&gt;

&lt;p&gt;It’s probably no surprise that we use our own open-source search tool, &lt;a href="https://pagefind.app"&gt;Pagefind&lt;/a&gt;, for our live search — it has the performance benefits of using as little user bandwidth as possible, without having to host any additional infrastructure. (If you’re interested in the stats, Pagefind takes on average 3 seconds to index our whole site after each Eleventy build, and the average network traffic for a single search term is only around 100kB.) Again, postbuild hooks FTW!&lt;/p&gt;

&lt;h2&gt;
  
  
  How we use the site
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Blogging
&lt;/h3&gt;

&lt;p&gt;Eleventy makes blogging flexible enough that it’ll fit in with anyone’s writing habits. Since we often schedule our posts and have multiple drafts on the go, we added a few lines of JavaScript logic to our &lt;code&gt;posts/posts.11tydata.js&lt;/code&gt; file to ensure we could keep our drafts unpublished, and publish our new posts exactly when we want to.&lt;/p&gt;

&lt;p&gt;Personally, I almost always use CloudCannon’s &lt;a href="https://cloudcannon.com/documentation/articles/introducing-the-content-editor/"&gt;Content Editor&lt;/a&gt; to draft my posts — as a rich text editor for Markdown files, it’s ideal for writing in a clean and intuitive interface. For shorter posts that rely more heavily on images or videos, I’d switch over to the live &lt;a href="https://cloudcannon.com/documentation/articles/introducing-the-visual-editor/"&gt;Visual Editor&lt;/a&gt;, where I can see the full context of the page as it would appear to a reader.&lt;/p&gt;

&lt;p&gt;I make a lot of use of Eleventy's shortcodes while blogging, as well. Eleventy supports Nunjucks, Liquid, Handlebars, and JavaScript shortcodes, but with Bookshop we've pulled all of our shortcodes into our global &lt;code&gt;cloudcannon.config.yml&lt;/code&gt; file instead of Eleventy's &lt;code&gt;.eleventy.js&lt;/code&gt; file, so I can add them to my posts with a single click. This isn't an essential step, but keeping editing and build features in separate config files means future developers will always know where to find them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Page building
&lt;/h3&gt;

&lt;p&gt;This is the magical part, in my view. Thanks to &lt;a href="https://github.com/CloudCannon/bookshop"&gt;Bookshop&lt;/a&gt;, pages on &lt;a href="http://CloudCannon.com"&gt;CloudCannon.com&lt;/a&gt; are based on a ‘container’ component, which can hold content blocks like headings, Markdown text, images, videos — anything you’d conceivably need to add to a webpage. And because we can use the Visual Editor to edit our pages and nest container components, as well as to select device-specific images, layouts, spacing, margin, and padding attributes, we’re able to turn out pretty complex pages within just a few minutes.&lt;/p&gt;

&lt;p&gt;Here's our Marketing Manager Olivia Nicholson, discussing what she looks for in a performant site, and why page building with Eleventy works for her:  &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uB3-l0atPok"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  CloudCannon.com’s publishing workflows
&lt;/h3&gt;

&lt;p&gt;We use CloudCannon’s &lt;a href="https://cloudcannon.com/documentation/articles/enabling-editor-branching-with-projects/"&gt;Projects&lt;/a&gt; feature to control our publishing workflow. In brief, it’s set up like so:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;main&lt;/code&gt; &amp;lt;— &lt;code&gt;staging&lt;/code&gt; &amp;lt;— &lt;code&gt;branches&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When we want to draft new content for the site, or edit existing content, we branch from our private &lt;code&gt;staging&lt;/code&gt; site — this means different members of our team can simultaneously test out new content and dev features without anyone blocking each other. Publishing the branch creates a Git pull request and merges it to &lt;code&gt;staging&lt;/code&gt;, where we run our final checks before publishing once more to &lt;code&gt;main&lt;/code&gt;, our live production site.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our developers’ perspective
&lt;/h3&gt;

&lt;p&gt;I also spoke with some of the CloudCannon dev team who helped put the site together — Alysha Nolan, Tiaan Fairchild, and Mike Neumegen. Here’s their take on the different elements of our stack, and what makes Eleventy such a great static site generator:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ynn1xMfvgDo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  And finally, some stats
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lighthouse
&lt;/h3&gt;

&lt;p&gt;Google’s &lt;a href="https://pagespeed.web.dev/"&gt;PageSpeed Insights&lt;/a&gt; offers several helpful indicators of site performance. If you’re interested, I wrote about static sites and page weight in a &lt;a href="https://cloudcannon.com/blog/does-my-website-look-big-in-this-six-tips-to-lower-your-page-weight/"&gt;previous post&lt;/a&gt;, with six actionable tips to improve your own site performance metrics.&lt;/p&gt;

&lt;p&gt;Lighthouse scores are generally used to diagnose performance issues, across the categories Performance, Accessibility, Best Practices, and SEO. We’re currently sitting pretty at 100 across the board for desktop users — proof positive that Eleventy and CloudCannon, together with the rest of our new stack, make for excellent performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wbrZEPiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/cloudcannon-lighthouse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wbrZEPiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/cloudcannon-lighthouse.png" alt="" width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Web Vitals
&lt;/h3&gt;

&lt;p&gt;When it comes to our CWV — the measurements that make up the Lighthouse categories — we’re in the green on every metric:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Largest Contentful Paint (LCP): &lt;strong&gt;1.8s&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  First Input Delay (FID): &lt;strong&gt;7ms&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  Cumulative Layout Shift (CLS): &lt;strong&gt;0.02&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  First Contentful Paint (FCP): &lt;strong&gt;1s&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  Interaction to Next Paint (INP): &lt;strong&gt;40ms&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  Time to First Byte (TTFB): &lt;strong&gt;0.5s&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gR6V5vuf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/cloudcannon-core-web-vitals.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gR6V5vuf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/cloudcannon-core-web-vitals.png" alt="" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While we’re always looking for ways to improve these scores, we attribute them to a range of factors: static generation and optimization from Eleventy, image processing from imgix, post-build processing from Jampack, and most of all, considered development from the CloudCannon dev team.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;As CloudCannon’s CMS has grown over the past ten years, we’ve added full support for many SSGs — &lt;a href="https://cloudcannon.com/jekyll-cms/"&gt;Jekyll&lt;/a&gt;, &lt;a href="https://cloudcannon.com/eleventy-cms/"&gt;Eleventy&lt;/a&gt;, &lt;a href="https://cloudcannon.com/hugo-cms/"&gt;Hugo&lt;/a&gt;, &lt;a href="https://cloudcannon.com/sveltekit-cms/"&gt;SvelteKit&lt;/a&gt;, &lt;a href="https://cloudcannon.com/gatsby-cms/"&gt;Gatsby&lt;/a&gt;, &lt;a href="https://cloudcannon.com/nextjs-cms/"&gt;Next.js&lt;/a&gt;, and most recently &lt;a href="https://cloudcannon.com/astro-cms/"&gt;Astro&lt;/a&gt;, with more on the way over the coming months. In all honesty, we could have worked with any of the above generators, and had the same great editing experience alongside excellent site performance.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Do you have any questions about bringing your static sites to CloudCannon, or need a little help with migration or configuration? Feel free to &lt;a href="https://cloudcannon.com/book-a-demo/"&gt;book a demo call&lt;/a&gt;, take a look at our &lt;a href="https://cloudcannon.com/documentation/"&gt;documentation&lt;/a&gt;, or &lt;a href="https://cloudcannon.com/support/"&gt;get in touch with our support team&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eleventy</category>
      <category>11ty</category>
      <category>cloudcannon</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Out-of-this-world support for all Astro users</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Tue, 20 Jun 2023 00:18:37 +0000</pubDate>
      <link>https://dev.to/cloudcannon/out-of-this-world-support-for-all-astro-users-3g86</link>
      <guid>https://dev.to/cloudcannon/out-of-this-world-support-for-all-astro-users-3g86</guid>
      <description>&lt;p&gt;&lt;em&gt;3… 2… 1… Ignition. We have liftoff.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Another week, another static site generator out of beta support on CloudCannon. But it’s not just any SSG — it’s Astro, the &lt;a href="https://astro.build/blog/2023-web-framework-performance-report/"&gt;top-performing&lt;/a&gt; all-in-one web framework designed for speed. With Astro and CloudCannon you can manage your content in your own Git repository and deploy everywhere, while using your favorite UI components and libraries. And the final touch? With CloudCannon, your highly performant sites are available for non-technical editors to draft, review, and publish their content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VQhjP22u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/astro-launch-hero.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VQhjP22u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/astro-launch-hero.png" alt="" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Astro is a lightweight and powerful static site generator that allows developers to mix and match popular frameworks like as React, Preact, Svelte, Vue, SolidJS, AlpineJS, and Lit. Astro keeps your static sites fast by default, automatically converting components to HTML at build time, and removing superfluous JavaScript. And with Astro's partial hydration, you can hydrate specific interactive components on the page.&lt;/p&gt;

&lt;p&gt;With CloudCannon as your &lt;a href="https://dev.to/astro-cms/"&gt;Astro CMS&lt;/a&gt;, your whole team can collaborate to create incredibly fast static sites with a wide range of components. Astro is in fine company on CloudCannon — we’ve recently brought our support for Gatsby, SvelteKit, and Next.js out of beta, joining the likes of Hugo, Jekyll, and Eleventy. (And we’re not stopping there!)&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s new for Astro users on CloudCannon?
&lt;/h2&gt;

&lt;p&gt;We have imported, built, and stress-tested a variety of static Astro sites using CloudCannon, from local development using GitHub, GitLab, and Bitbucket connections to spinning up new Astro sites straight on CloudCannon from one of our existing themes. We've improved the Astro experience for all users along the way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Astro-specific documentation and guides
&lt;/h3&gt;

&lt;p&gt;Experienced devs choose Astro because they love both the tool’s DX and its performance. We’re big fans too, but we also want to support developers who are new to either Astro or CloudCannon. With that in mind, we've updated our documentation to address Astro specifically, to ensure that all of your questions are answered and readily searchable. (If you work across multiple SSGs, you’ll find a handy SSG-switcher in the top right of our new documentation, so you can compare how CloudCannon adapts to different tools.)&lt;/p&gt;

&lt;p&gt;We’ve also written up a &lt;a href="https://cloudcannon.com/documentation/guides/astro-starter-guide/"&gt;Getting Started with Astro&lt;/a&gt; guide, to help you configure your Astro site for visual editing with CloudCannon, share your Astro site with others, and set up content publishing workflows for large teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sendit — a &lt;em&gt;stellar&lt;/em&gt; free page-building theme for Astro
&lt;/h3&gt;

&lt;p&gt;We've extended our new theme &lt;a href="https://cloudcannon.com/templates/sendit/"&gt;Sendit&lt;/a&gt; for Astro as well, demonstrating the benefits of CloudCannon's page-building processes and adaptable Visual Editor for Astro users. Sendit provides a sleek, contemporary, and ready-to-use site that is now available for everyone to adapt, edit, and customize. It’s also an excellent working example of how to configure your existing Astro sites for editing on CloudCannon: make use of that &lt;code&gt;cloudcannon.config.yml&lt;/code&gt; file and see how it’s all set up!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ap5fNDyq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/sendit-hero-browser.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ap5fNDyq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/sendit-hero-browser.png" alt="" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Sendit, all users can quickly build their pages from a pre-made set of 20 pre-styled and reusable page components, as well as create their own components to extend the project. Sendit has an easily configurable navigation and footer, multiple hero options, and subtle animations, all optimized for editing in CloudCannon.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://top-quail.cloudvent.net/"&gt;Sendit demo site&lt;/a&gt; to see its potential. You can also &lt;a href="https://app.cloudcannon.com/#sites/templates/astro/cloudcannon/sendit-astro-template"&gt;deploy a new Sendit site with Astro and CloudCannon&lt;/a&gt; in one click, and experience the best of our Visual Editor for intuitive page building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks to the Astro core team!
&lt;/h2&gt;

&lt;p&gt;We worked closely with members of the Astro core team to reach this milestone release, and it was a really productive process. CloudCannon developer Tate Kennington led the charge on our side, and Astro's concerted #leanweb approach to building sites with islands architecture and partial hydration for interactivity really won him over.&lt;/p&gt;

&lt;p&gt;Here's Tate on Astro — why the tool is such a natural fit for CloudCannon, the steps we took to bring our Astro support out of beta, and his excitement for the future of Astro and CloudCannon features growing alongside each other:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/DiB7YZXaQv8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>astro</category>
      <category>cms</category>
      <category>jamstack</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Full CloudCannon support for Gatsby</title>
      <dc:creator>David Large</dc:creator>
      <pubDate>Tue, 20 Jun 2023 00:14:12 +0000</pubDate>
      <link>https://dev.to/cloudcannon/full-cloudcannon-support-for-gatsby-5h6g</link>
      <guid>https://dev.to/cloudcannon/full-cloudcannon-support-for-gatsby-5h6g</guid>
      <description>&lt;p&gt;What’s that? Another SSG support release for CloudCannon? Absolutely!&lt;/p&gt;

&lt;p&gt;We're thrilled to introduce our latest release, which brings CloudCannon's support for Gatsby out of beta. Gatsby is a very popular SSG, due in large part to its use of React for the client-side and GraphQL to access data. For developers using React components, or wanting to bring their data from a legacy CMS to the modern web, Gatsby is an excellent choice.&lt;/p&gt;

&lt;p&gt;We’ve been working on enhancing the development and editing experience for all of our customers on Gatsby, and we’re proud to take off that ‘beta’ flag, bringing CloudCannon’s Gatsby support in line with our integration with other leading SSGs, like Eleventy, Hugo, SvelteKit, Next.js, and Jekyll.&lt;/p&gt;

&lt;p&gt;Gatsby’s been in the news quite a lot lately — Netlify acquired Gatsby Inc just over a month ago, which will allow for more growth in the Gatsby framework and help cement its status in the static site community. And speaking of community, after the acquisition, the Netlify and Gatsby teams both reaffirmed their commitment to open-source. This means Gatsby’s rich ecosystem of plugins and integrations will continue to flourish, allowing developers to easily extend its capabilities and integrate with other tools and services. All in all, it’s a great time to be using Gatsby!&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s new for Gatsby users on CloudCannon?
&lt;/h2&gt;

&lt;p&gt;We set a high standard for this release, as we do for all of our support releases. To ensure that everyone has a positive experience, we’ve made the following changes:&lt;/p&gt;

&lt;h3&gt;
  
  
  All of your Gatsby static sites will be supported
&lt;/h3&gt;

&lt;p&gt;We have imported, built, and stress-tested a variety of static Gatsby sites using CloudCannon, from local development using GitHub, GitLab, and Bitbucket connections to spinning up new Gatsby sites straight on CloudCannon from one of our existing themes. We've improved the Gatsby experience for all users along the way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complete documentation and guides for Gatsby on CloudCannon
&lt;/h3&gt;

&lt;p&gt;We've updated our Gatsby-specific documentation to ensure that all of your queries are answered and readily searchable. Our support and engineering teams have also prepared thorough advice on configuring your current Gatsby sites for use with CloudCannon's Visual, Content, and Data Editors.&lt;/p&gt;

&lt;p&gt;Whether you’re working on page-building; data, content, or visual editing; creating React components or using existing ones; templating; blogging; or using GraphQL data on your CloudCannon Gatsby sites, our &lt;a href="https://cloudcannon.com/documentation/?ssg=Gatsby"&gt;documentation&lt;/a&gt;, &lt;a href="https://cloudcannon.com/documentation/guides/gatsby-starter-guide/"&gt;getting started guide&lt;/a&gt;, and support will have you covered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sendit — a new free page-building theme for Gatsby
&lt;/h3&gt;

&lt;p&gt;We've extended our new theme &lt;a href="https://cloudcannon.com/templates/sendit/"&gt;Sendit&lt;/a&gt; for Gatsby as well, demonstrating the benefits of CloudCannon's page-building processes and adaptable Visual Editor for Gatsby users. Sendit provides a sleek, contemporary, and ready-to-use site that is now available for everyone to adapt, edit, and customize. It’s also an excellent working example of how to configure your existing Gatsby sites for CloudCannon, so feel free to dig into that &lt;code&gt;cloudcannon.config.yml&lt;/code&gt; file!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d3GdH77R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/sendit-hero.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d3GdH77R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cc-dam.imgix.net/sendit-hero.png" alt="" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Sendit, all users can quickly build their pages from a pre-made set of 20 pre-styled and reusable page components, as well as create their own components to extend the project. Sendit has an easily configurable navigation and footer, multiple hero options, and subtle animations, all optimized for editing in CloudCannon.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://freezing-door.cloudvent.net/"&gt;Sendit demo site&lt;/a&gt; to see its potential. You can also &lt;a href="https://app.cloudcannon.com/#sites/templates/sveltekit/cloudcannon/sendit-sveltekit-template"&gt;deploy a new Sendit site with Gatsby and CloudCannon&lt;/a&gt; in less than a minute and experience the best of our Visual Editor for intuitive page building.&lt;/p&gt;

</description>
      <category>gatsby</category>
      <category>jamstack</category>
      <category>cms</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
