diff --git a/apps/website/astro.config.mjs b/apps/website/astro.config.mjs index 1b61cc60..aac0d184 100644 --- a/apps/website/astro.config.mjs +++ b/apps/website/astro.config.mjs @@ -1,31 +1,34 @@ -import { defineConfig } from 'astro/config'; -import react from '@astrojs/react'; -import vercel from '@astrojs/vercel' -import createRemarkPlugin from '@crocoder-dev/remark-plugin'; +import { defineConfig } from "astro/config"; +import react from "@astrojs/react"; +import vercel from "@astrojs/vercel"; +import createRemarkPlugin from "@crocoder-dev/remark-plugin"; import tailwindcss from "@tailwindcss/vite"; const classes = { - titleClass: 'font-bold text-[1.25rem] mt-[2.5rem]', - summaryClass: 'cursor-pointer font-bold text-[1.25rem]', - detailsClass: 'mt-[2.5rem]', - iframeClass: 'border-none w-full h-[360px] overflow-y-hidden' -} + titleClass: "font-bold text-[1.25rem] mt-[2.5rem]", + summaryClass: "cursor-pointer font-bold text-[1.25rem]", + detailsClass: "mt-[2.5rem]", + iframeClass: "border-none w-full h-[360px] overflow-y-hidden", +}; const remarkPlugin = createRemarkPlugin(classes); export default defineConfig({ prefetch: true, - output: 'server', + output: "server", adapter: vercel({ imageService: true, + imagesConfig: { + sizes: [320, 480, 578, 640, 720, 800, 940, 1920], + formats: ["image/avif", "image/webp"], + }, }), redirects: { - '/feed': '/rss.xml', - '/sitemap': '/sitemap.xml' + "/feed": "/rss.xml", + "/sitemap": "/sitemap.xml", }, integrations: [tailwindcss(), react()], markdown: { remarkPlugins: [remarkPlugin], }, }); - diff --git a/apps/website/src/components/Clients.astro b/apps/website/src/components/Clients.astro index 0d6b48bb..d463f001 100644 --- a/apps/website/src/components/Clients.astro +++ b/apps/website/src/components/Clients.astro @@ -10,31 +10,46 @@ import Section from "./Section.astro";
- Conductor logo + Conductor logo Lynes logo Submix logo - SevDesk logo + SevDesk logo Misterspex logo
-
- Our tailored software services bridge the gap between the big-picture strategy +
+ Our tailored software services bridge the gap between the big-picture + strategy and day-to-day operations, turning ambitious goals into concrete, - actionable steps that drive results. + actionable steps that drive results.
diff --git a/apps/website/src/components/ContactUs.astro b/apps/website/src/components/ContactUs.astro index 1db25755..c9d25bb4 100644 --- a/apps/website/src/components/ContactUs.astro +++ b/apps/website/src/components/ContactUs.astro @@ -28,8 +28,8 @@ import peopleCollaborating from "../assets/people-collaborating.png"; diff --git a/apps/website/src/components/ValueCard.astro b/apps/website/src/components/ValueCard.astro index 33facf8d..4bcdfa4e 100644 --- a/apps/website/src/components/ValueCard.astro +++ b/apps/website/src/components/ValueCard.astro @@ -16,7 +16,6 @@ interface Props { const { title, content, img, styles, onDark, icon } = Astro.props; - const images = import.meta.glob("../assets/*.*"); const src = images[`../assets${img.path}`] as any as () => Promise<{ default: ImageMetadata; @@ -29,10 +28,19 @@ const image = await src(); class={`col-span-6 rounded-2xl p-7 md:p-12 md:pb-0 max-md:max-w-[470px] mx-auto xl:p-12 xl:pb-0 pb-0 flex flex-col overflow-hidden lg:h-fit md:col-span-12 xl:col-span-4 ${styles} ${onDark ? "text-[#ffff]" : "text-secondary"}`} >
- +
-

{title}

-
+

+ {title} +

+
@@ -40,8 +48,8 @@ const image = await src(); class="mt-auto max-w-[466px] w-full" src={image.default} alt={img.alt} - widths={[320, 466, 640, 800]} - sizes="(max-width: 768px) calc(100vw - 32px), (max-width: 1280px) calc(100vw - 56px), calc(33vw - 28px)" + widths={[320, 480, 640, 800]} + sizes="(max-width: 768px) calc(100vw - 32px), (max-width: 1280px) calc(100vw - 56px), 320px" loading="lazy" />
diff --git a/apps/website/src/components/hero.astro b/apps/website/src/components/hero.astro index 3c2fb896..fa9dbcac 100644 --- a/apps/website/src/components/hero.astro +++ b/apps/website/src/components/hero.astro @@ -2,8 +2,8 @@ import { grid_classes } from "./_grid"; import Pill from "./Pill.astro"; import Section from "./Section.astro"; -import { Image } from "astro:assets"; import heroImage from "../assets/croco-13.png"; +import { Picture } from "astro:assets"; ---
@@ -13,34 +13,35 @@ import heroImage from "../assets/croco-13.png";
- CroCoder team collaborating on web development projects
More than just developers @@ -65,7 +66,8 @@ import heroImage from "../assets/croco-13.png"; class="fadeInUp" style="animation-delay: 900ms;animation-fill-mode: backwards;" > - A web development consultancy delivering scalable solutions that drive real business impact. + A web development consultancy delivering scalable solutions that drive + real business impact.
diff --git a/apps/website/src/layouts/post-base.astro b/apps/website/src/layouts/post-base.astro index 46e1c082..b51ea6c3 100644 --- a/apps/website/src/layouts/post-base.astro +++ b/apps/website/src/layouts/post-base.astro @@ -71,6 +71,8 @@ const dateObj = new Date(createdAt); src={image} height={500} width={1000} + widths={[320, 480, 578, 640, 800, 920]} + sizes={"(max-width: 1024px): calc(100vw-64px), 940px"} alt={title} class="rounded-lg" loading="eager" diff --git a/apps/website/src/pages/blog/index.astro b/apps/website/src/pages/blog/index.astro index 771c564f..d411a4a6 100644 --- a/apps/website/src/pages/blog/index.astro +++ b/apps/website/src/pages/blog/index.astro @@ -67,6 +67,12 @@ posts.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()); alt={title} width={936} height={528} + widths={[320, 480, 578, 640, 800]} + sizes={ + i > 0 + ? "(max-width: 540px) 100vw, (max-width: 1024px) calc(50vw - 64px), 480px" + : "(max-width: 1024px) calc(100vw - 64px), 940px" + } loading={i < 3 ? "eager" : "lazy"} decoding="auto" /> diff --git a/apps/website/src/pages/contact/success.astro b/apps/website/src/pages/contact/success.astro index ccbe4d39..f832de45 100644 --- a/apps/website/src/pages/contact/success.astro +++ b/apps/website/src/pages/contact/success.astro @@ -11,68 +11,75 @@ import contactSuccessHero from "../../assets/contact-success-hero.png";
-
- -
- -
- -
-

- You're All Set! -

-
- - -

- - Your meeting is confirmed.
- A calendar invite is on its way to your inbox.
-
- Talk soon — we're looking forward to it. -

- - -
- - Back to homepage - +
+ +
+ +
+ +
+

+ You're All Set! +

+
+ + +

+ + Your meeting is confirmed.
+ A calendar invite is on its way to your inbox.
+
+ Talk soon — we're looking forward to it. +

+ + +
-
- - -
- - \ No newline at end of file +