diff --git a/public/assets/web-vitals/gatsby-logo.svg b/public/assets/web-vitals/gatsby-logo.svg deleted file mode 100644 index 2e34ed784d..0000000000 --- a/public/assets/web-vitals/gatsby-logo.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/public/assets/web-vitals/next-js-logo.svg b/public/assets/web-vitals/next-js-logo.svg deleted file mode 100644 index f29112547d..0000000000 --- a/public/assets/web-vitals/next-js-logo.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/web-vitals/nuxt-logo.svg b/public/assets/web-vitals/nuxt-logo.svg deleted file mode 100644 index 1e87d37e8d..0000000000 --- a/public/assets/web-vitals/nuxt-logo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/assets/web-vitals/wordpress-logo.svg b/public/assets/web-vitals/wordpress-logo.svg deleted file mode 100644 index d9aed5e81e..0000000000 --- a/public/assets/web-vitals/wordpress-logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/components/ImageGallery.astro b/src/components/ImageGallery.astro index 2a70e173ae..d0160f0bb4 100644 --- a/src/components/ImageGallery.astro +++ b/src/components/ImageGallery.astro @@ -58,7 +58,7 @@ const { images, class: className, ...attrs } = Astro.props; - + { images.map((image, i) => ( @@ -68,7 +68,7 @@ const { images, class: className, ...attrs } = Astro.props; src={image} height={900} width={1600} - alt="" + alt={`Preview image ${i + 1}`} class="aspect-video h-full w-full object-cover object-top" decoding="async" loading="lazy" diff --git a/src/components/Pagination.astro b/src/components/Pagination.astro index 7c038a9108..17b8b30ec6 100644 --- a/src/components/Pagination.astro +++ b/src/components/Pagination.astro @@ -2,6 +2,7 @@ import type { Page } from 'astro'; import type { HTMLAttributes } from 'astro/types'; import { collapseRange } from '~/helpers/paginate.js'; +import { ensureTrailingSlash } from '~/helpers/path.ts'; import LeftArrowIcon from '~/icons/LeftArrowIcon.jsx'; import RightArrowIcon from '~/icons/RightArrowIcon.jsx'; @@ -36,7 +37,7 @@ const collapsedPages = collapseRange(page, pages); page.url.prev && ( @@ -52,7 +53,7 @@ const collapsedPages = collapseRange(page, pages); {link.text} ) : ( diff --git a/src/content/pages/privacy.md b/src/content/pages/privacy.md index 8ec12c7f35..d42c9e40eb 100644 --- a/src/content/pages/privacy.md +++ b/src/content/pages/privacy.md @@ -9,34 +9,34 @@ _In addition to this Privacy Policy, Astro also has [Terms of Service](/terms/). The Astro Privacy Policy describes the privacy practices of Astro website and services. The laws of California and the laws of the United States apply. If you are a resident of EU/EEA, the European Commission-approved Standard Contractual Clauses (also referred to as Model Contracts) apply to Trans-Atlantic data transfers. -### General Information +## General Information We collect very limited personally identifiable information described below (the “data”) from [GitHub](https://help.github.com/articles/github-privacy-policy/) and of those who communicate with us directly via e-mail, aggregate information on what pages consumers access or visit, and information volunteered by the consumer (such as survey information and/or site registrations). The information we collect is used to provide our services, and to improve the quality of our services, and is not shared with or sold to other organizations for commercial purposes, except to provide products or services you've requested when we have your permission, or under the following circumstances: - It is necessary to share information in order to investigate, prevent, or take action regarding illegal activities, suspected fraud, situations involving potential threats to the physical safety of any person, violations of [Terms of Service](/terms/), or as otherwise required by law. - We transfer information about you if Astro is acquired by or merged with another company. In this event, Astro will notify you before information about you is transferred and becomes subject to a different privacy policy. -### Information Gathering and Usage +## Information Gathering and Usage Astro uses collected information for the following general purposes: products and services provision, billing, identification and authentication through GitHub, Bitbucket, services improvement, contact, and research. Astro uses personally identifiable information on billing address and/or payment information only for the sole purpose of payment processing for Astro services. Payment processing services enable us to process payments by credit card, bank transfer or other means. To ensure greater security, we share only the information necessary to execute the transaction with the financial intermediaries handling the transaction. Some of these services may also enable the sending of timed messages to our customer, such as emails containing invoices or notifications concerning the payment. -### Cookies +## Cookies A cookie is a small amount of data, which often includes an anonymous unique identifier, which is sent to your browser from a web site's computers and stored on your computer's hard drive. You can control how websites use cookies by configuring the privacy settings within your browser. Note that if you disable cookies entirely, Astro websites and applications may not function properly. -### Data Storage +## Data Storage Astro uses third-party vendors and hosting partners to provide the necessary hardware, software, networking, storage, and related technology required to run Astro. Astro’s third-party vendors and hosting partners adhere to the European Commission-approved Standard Contractual Clauses (also referred to as Model Contracts). -### Data Retention and Deletion +## Data Retention and Deletion Data is kept for the time necessary to provide the products or services requested by the customer. We keep some of your personal data for as long as you are a user of the Astro Service. When you delete your account, we will delete your personal data and it will expire from backups; unless we are legally allowed or required to maintain certain personal data, including situations under the applicable laws to reveal personal data upon reasonable request of public authorities. -### Rights of Data Subjects +## Rights of Data Subjects Data subject (customer) can always request Astro to allow access and correction, supplement or update of data. Subject to a reasonable request of a data subject, Astro will remove data pertaining to a data subject unless applicable laws impose a duty to retain data for certain time or identification, location and deletion of data imposes a disproportionate financial burden upon Astro. Any requests for access, correction or deletion of data should be directed to Astro by sending an email to [privacy@astro.build](mailto:privacy@astro.build). @@ -47,7 +47,7 @@ You may be aware that a European Union law, called the General Data Protection R As a user you may also request a copy of your data and that your data be updated, deleted, restricted or moved to another organization. -### We may share your information with +## We may share your information with We want to process as little personal information as possible when you use our website. That's why we've chosen Fathom Analytics for our website analytics, which doesn't use cookies and complies with the GDPR, ePrivacy (including PECR), COPPA and CCPA. Using this privacy-friendly website analytics software, your IP address is only briefly processed, and we (running this website) have no way of identifying you. As per the CCPA, your personal information is de-identified. You can read more about this on Fathom Analytics' website. @@ -55,18 +55,18 @@ The purpose of us using this software is to understand our website traffic in th When you choose to submit feedback on the docs site, we store your message using the [Feedback Fish](https://feedback.fish/) service. This enables us to gather helpful feedback and improve our documentation. -### Security +## Security We understand that the security of your data is important. We provide reasonable administrative, technical, and physical security controls to protect your personal information from unauthorized access, disclosure, modification, or unauthorized destruction. However, despite our efforts, no security controls are 100% effective and Astro cannot ensure or warrant the security of your data. -### Links +## Links We may display content that links to third-party websites. We cannot control or be held responsible for third parties’ privacy practices and content. If you click on a third-party advertisement or link, please understand that you are leaving the Astro website and any personal data you provide will not be covered by this Policy. Please read their privacy policies to find out how they collect and process your personal data. -### Changes +## Changes Astro may periodically update this policy. We encourage you to periodically review our website for the latest information on our privacy practices. -### Questions +## Questions Thank you for reading our Privacy Policy. If you have any questions about this Policy, please contact our Data Protection Officer by emailing [privacy@astro.build](mailto:privacy@astro.build). diff --git a/src/content/pages/terms.md b/src/content/pages/terms.md index 0ca9fd29c6..f73a5f8618 100644 --- a/src/content/pages/terms.md +++ b/src/content/pages/terms.md @@ -7,31 +7,31 @@ updated_date: 2022-01-06 _These terms of service ("Terms") apply to your access and use of the Astro website (the "Service"). Please read them carefully._ -### Accepting these terms +## Accepting these terms If you access or use the Service, it means you agree to be bound by all of the terms below. So, before you use the Service, please read all of the terms. If you don’t agree to all of the terms below, please do not use the Service. Also, if a term does not make sense to you, please let us know by e-mailing [support@astro.build](mailto:support@astro.build). -### Changes to these Terms +## Changes to these Terms We reserve the right to modify these Terms at any time. Whenever we make changes to these Terms, the changes are effective 2 days after we post such revised Terms (indicated by revising the date at the top of these Terms) or upon your acceptance if we provide a mechanism for your immediate acceptance of the revised Terms (such as a click-through confirmation or acceptance button). It is your responsibility to check Astro for changes to these Terms. If you continue to use the Service after the revised Terms go into effect, then you have accepted the changes to these Terms. -### Privacy Policy +## Privacy Policy For information about how we collect and use information about users of the Service, please view our [privacy policy](/privacy/). -### Third-Party Services +## Third-Party Services From time to time, we may provide you with links to third party websites or services that we do not own or control. Your use of the Service may also include the use of applications that are developed or owned by a third party. Your use of such third party applications, websites, and services is governed by that party’s own terms of service or privacy policies. We encourage you to read the terms and conditions and privacy policy of any third party application, website or service that you visit or use. -### Creating Accounts +## Creating Accounts When you create an account or use another service to log in to the Service, you agree to maintain the security of your password and accept all risks of unauthorized access to any data or other information you provide to the Service. If you discover or suspect any Service security breaches, please let us know as soon as possible. -### Your Content & Conduct +## Your Content & Conduct Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness. @@ -58,13 +58,13 @@ Also, you agree that you will not do any of the following in connection with the - Create an account or post any content if you are not over 13 years of age years of age; and - Circumvent or attempt to circumvent any filtering, security measures, rate limits or other features designed to protect the Service, users of the Service, or third parties. -### Astro Materials +## Astro Materials We put a lot of effort into creating the Service including, the logo and all designs, text, graphics, pictures, information and other content (excluding your content). This property is owned by us or our licensors and it is protected by U.S. and international copyright laws. We grant you the right to use it. However, unless we expressly state otherwise, your rights do not include: (i) publicly performing or publicly displaying the Service; (ii) modifying or otherwise making any derivative uses of the Service or any portion thereof; (iii) using any data mining, robots or similar data gathering or extraction methods; (iv) downloading (other than page caching) of any portion of the Service or any information contained therein; (v) reverse engineering or accessing the Service in order to build a competitive product or service; or (vi) using the Service other than for its intended purposes. If you do any of this, we may terminate your use of the Service. -### Hyperlinks and Third Party Content +## Hyperlinks and Third Party Content You may create a hyperlink to the Service. But, you may not use, frame or utilize framing techniques to enclose any of our trademarks, logos or other proprietary information without our express written consent. @@ -72,7 +72,7 @@ Astro makes no claim or representation regarding, and accepts no responsibility If there is any content on the Service from you and others, we don’t review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content. -### Unavoidable Legal Stuff +## Unavoidable Legal Stuff THE SERVICE AND ANY OTHER SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE ARE PROVIDED TO YOU ON AN AS IS OR AS AVAILABLE BASIS WITHOUT ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND. WE DISCLAIM ANY AND ALL WARRANTIES AND REPRESENTATIONS (EXPRESS OR IMPLIED, ORAL OR WRITTEN) WITH RESPECT TO THE SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE WHETHER ALLEGED TO ARISE BY OPERATION OF LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, BY COURSE OF DEALING OR OTHERWISE. @@ -80,34 +80,34 @@ IN NO EVENT WILL ASTRO BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY SPECIAL, INDI You agree to defend, indemnify and hold us harmless from and against any and all costs, damages, liabilities, and expenses (including attorneys’ fees, costs, penalties, interest and disbursements) we incur in relation to, arising from, or for the purpose of avoiding, any claim or demand from a third party relating to your use of the Service or the use of the Service by any person using your account, including any claim that your use of the Service violates any applicable law or regulation, or the rights of any third party, and/or your violation of these Terms. -### Copyright Complaints +## Copyright Complaints We take intellectual property rights seriously. In accordance with the Digital Millennium Copyright Act ("DMCA") and other applicable law, we have adopted a policy of terminating, in appropriate circumstances and, at our sole discretion, access to the service for users who are deemed to be repeat infringers. -### Governing Law +## Governing Law The validity of these Terms and the rights, obligations, and relations of the parties under these Terms will be construed and determined under and in accordance with the laws of the Delaware state, without regard to conflicts of law principles. -### Jurisdiction +## Jurisdiction You expressly agree that exclusive jurisdiction for any dispute with the Service or relating to your use of it, resides in the courts of the Delaware state and you further agree and expressly consent to the exercise of personal jurisdiction in the courts of the Delaware state in connection with any such dispute including any claim involving Service. You further agree that you and Service will not commence against the other a class action, class arbitration or other representative action or proceeding. -### Termination +## Termination If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service. -### Assignment +## Assignment We may assign or delegate these Terms of Service and/or the Privacy Policy, in whole or in part, to any person or entity at any time with or without your consent, including the license grant in the "Your Content & Conduct" section. You may not assign or delegate any rights or obligations under the Terms of Service or Privacy Policy without our prior written consent, and any unauthorized assignment and delegation by you is void. -### Entire Agreement +## Entire Agreement These Terms constitute the entire agreement between you and Astro. regarding the use of the Service, superseding any prior agreements between you and Astro relating to your use of the Service. -### Feedback +## Feedback Please let us know what you think of the Service, these Terms and, in general, Astro. When you provide us with any feedback, comments or suggestions about the Service, these Terms and, in general, Astro, you irrevocably assign to us all of your right, title and interest in and to your feedback, comments and suggestions. -### Questions & Contact Information +## Questions & Contact Information Questions or comments about the Service may be directed to us at the email address [support@astro.build](mailto:support@astro.build) diff --git a/src/helpers/path.ts b/src/helpers/path.ts new file mode 100644 index 0000000000..308eeeee3d --- /dev/null +++ b/src/helpers/path.ts @@ -0,0 +1,2 @@ +/** Adds a trailing `/` to the passed path if needed. */ +export const ensureTrailingSlash = (path: string) => (path.at(-1) === '/' ? path : `${path}/`); diff --git a/src/icons/logos/astro.svg b/src/icons/logos/astro.svg new file mode 100644 index 0000000000..00b5d193af --- /dev/null +++ b/src/icons/logos/astro.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/logos/gatsby.svg b/src/icons/logos/gatsby.svg new file mode 100644 index 0000000000..e720ca03b7 --- /dev/null +++ b/src/icons/logos/gatsby.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/icons/logos/next-js.svg b/src/icons/logos/next-js.svg new file mode 100644 index 0000000000..72b0f2a0da --- /dev/null +++ b/src/icons/logos/next-js.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/logos/nuxt.svg b/src/icons/logos/nuxt.svg new file mode 100644 index 0000000000..4644c9fa0a --- /dev/null +++ b/src/icons/logos/nuxt.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/icons/logos/wordpress.svg b/src/icons/logos/wordpress.svg index 51705533ba..3d593a948d 100644 --- a/src/icons/logos/wordpress.svg +++ b/src/icons/logos/wordpress.svg @@ -1,6 +1,3 @@ - - - + + \ No newline at end of file diff --git a/src/pages/_components/landing-page/Ecosystem.astro b/src/pages/_components/landing-page/Ecosystem.astro index 1c46068660..0c5805f6a9 100644 --- a/src/pages/_components/landing-page/Ecosystem.astro +++ b/src/pages/_components/landing-page/Ecosystem.astro @@ -39,7 +39,7 @@ import Trending from './ecosystem-tabs/Trending.astro'; - + @@ -58,7 +58,7 @@ import Trending from './ecosystem-tabs/Trending.astro'; - +
{link.text}