diff --git a/apps/website/astro.config.mjs b/apps/website/astro.config.mjs index 048b0915..f8cbac61 100644 --- a/apps/website/astro.config.mjs +++ b/apps/website/astro.config.mjs @@ -1,8 +1,9 @@ import { defineConfig } from 'astro/config'; import tailwind from '@astrojs/tailwind'; import react from '@astrojs/react'; -import vercel from '@astrojs/vercel/static'; +import vercel from '@astrojs/vercel/serverless' import createRemarkPlugin from '@crocoder-dev/remark-plugin'; +import image from '@astrojs/image'; const classes = { titleClass: 'font-bold text-[1.25rem] mt-[2.5rem]', @@ -15,19 +16,14 @@ const remarkPlugin = createRemarkPlugin(classes); export default defineConfig({ prefetch: true, - output: 'static', + output: 'server', adapter: vercel({ - imageService: true, - imagesConfig: { - sizes: [640, 936], - domains: ['*'], - }, }), redirects: { '/feed': '/rss.xml', '/sitemap': '/sitemap.xml' }, - integrations: [tailwind(), react()], + integrations: [tailwind(), react(), image()], markdown: { remarkPlugins: [remarkPlugin], }, diff --git a/apps/website/package.json b/apps/website/package.json index b4f6c191..0936e73e 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -3,21 +3,22 @@ "module": "index.ts", "type": "module", "dependencies": { + "@astrojs/image": "^0.18.0", "@astrojs/react": "^4.1.2", "@astrojs/rss": "^4.0.11", "@astrojs/tailwind": "^6.0.2", - "@astrojs/vercel": "^8.0.1", + "@astrojs/vercel": "^8.1.5", + "@crocoder-dev/remark-plugin": "*", "@crocoder-dev/tailwind": "*", "astro": "5.7.13", "astro-font": "^1.1.0", "classnames": "^2.5.1", - "react-icons": "^5.4.0", - "@crocoder-dev/remark-plugin": "*", "date-fns": "^4.1.0", "marked": "^15.0.5", + "posthog-js": "^1.222.0", "react": "^19.0.0", "react-dom": "^19.0.0", - "posthog-js": "^1.222.0" + "react-icons": "^5.4.0" }, "scripts": { "dev": "astro dev --port 4321", diff --git a/apps/website/src/assets/croco-13.png b/apps/website/src/assets/croco-13.png new file mode 100644 index 00000000..55e74fef Binary files /dev/null and b/apps/website/src/assets/croco-13.png differ diff --git a/apps/website/src/assets/croco-charts.png b/apps/website/src/assets/croco-charts.png new file mode 100644 index 00000000..1d12dad7 Binary files /dev/null and b/apps/website/src/assets/croco-charts.png differ diff --git a/apps/website/src/assets/croco-group.png b/apps/website/src/assets/croco-group.png new file mode 100644 index 00000000..bc72c8af Binary files /dev/null and b/apps/website/src/assets/croco-group.png differ diff --git a/apps/website/src/assets/cto-hero.png b/apps/website/src/assets/cto-hero.png new file mode 100644 index 00000000..1528aeaa Binary files /dev/null and b/apps/website/src/assets/cto-hero.png differ diff --git a/apps/website/src/assets/meeting-croc.png b/apps/website/src/assets/meeting-croc.png new file mode 100644 index 00000000..0c75a373 Binary files /dev/null and b/apps/website/src/assets/meeting-croc.png differ diff --git a/apps/website/src/assets/michele-rattotti.png b/apps/website/src/assets/michele-rattotti.png new file mode 100644 index 00000000..ba71abcb Binary files /dev/null and b/apps/website/src/assets/michele-rattotti.png differ diff --git a/apps/website/src/assets/paul-jeszenszky.png b/apps/website/src/assets/paul-jeszenszky.png new file mode 100644 index 00000000..da675464 Binary files /dev/null and b/apps/website/src/assets/paul-jeszenszky.png differ diff --git a/apps/website/src/assets/pic-boy-schedule.png b/apps/website/src/assets/pic-boy-schedule.png new file mode 100644 index 00000000..dc9d5c62 Binary files /dev/null and b/apps/website/src/assets/pic-boy-schedule.png differ diff --git a/apps/website/src/assets/pic-web-dev-topics.png b/apps/website/src/assets/pic-web-dev-topics.png new file mode 100644 index 00000000..09c00c62 Binary files /dev/null and b/apps/website/src/assets/pic-web-dev-topics.png differ diff --git a/apps/website/src/assets/raphael-bauer.png b/apps/website/src/assets/raphael-bauer.png new file mode 100644 index 00000000..76efab80 Binary files /dev/null and b/apps/website/src/assets/raphael-bauer.png differ diff --git a/apps/website/src/assets/values-1-cro.png b/apps/website/src/assets/values-1-cro.png new file mode 100644 index 00000000..c9a744f9 Binary files /dev/null and b/apps/website/src/assets/values-1-cro.png differ diff --git a/apps/website/src/assets/values-2.png b/apps/website/src/assets/values-2.png new file mode 100644 index 00000000..70d1b4c1 Binary files /dev/null and b/apps/website/src/assets/values-2.png differ diff --git a/apps/website/src/assets/values-img-crocodile-3.png b/apps/website/src/assets/values-img-crocodile-3.png new file mode 100644 index 00000000..00d9f21b Binary files /dev/null and b/apps/website/src/assets/values-img-crocodile-3.png differ diff --git a/apps/website/src/assets/values-main-image.png b/apps/website/src/assets/values-main-image.png new file mode 100644 index 00000000..72013bb2 Binary files /dev/null and b/apps/website/src/assets/values-main-image.png differ diff --git a/apps/website/src/components/Avatar.astro b/apps/website/src/components/Avatar.astro index cb294d34..1c9f3830 100644 --- a/apps/website/src/components/Avatar.astro +++ b/apps/website/src/components/Avatar.astro @@ -1,9 +1,15 @@ --- -const { imagePath, name, company, role } = Astro.props; +import { Picture } from "@astrojs/image/components"; +const { image, name, company, role } = Astro.props; ---
- + {name}
{company} diff --git a/apps/website/src/components/BookACallForm.astro b/apps/website/src/components/BookACallForm.astro index ea03fa0f..a0a7291a 100644 --- a/apps/website/src/components/BookACallForm.astro +++ b/apps/website/src/components/BookACallForm.astro @@ -3,6 +3,8 @@ import CalcomEmbedInline from "../components/CalcomEmbedInline.astro"; import { grid_classes } from "./_grid"; import Pill from "./Pill.astro"; import Section from "./Section.astro"; +import { Picture } from "@astrojs/image/components"; +import meetingImage from "../assets/meeting-croc.png"; --- @@ -13,7 +15,13 @@ import Section from "./Section.astro";
- +
+const loadCalEmbed = () => { (function (C, A, L) { let p = function (a, ar) { a.q.push(ar); @@ -90,4 +91,11 @@ const { hideEventTypeDetails, layout, }); +} + +if ("requestIdleCallback" in window) { + requestIdleCallback(loadCalEmbed); +} else { + window.addEventListener("load", loadCalEmbed); +} diff --git a/apps/website/src/components/Section.astro b/apps/website/src/components/Section.astro index f22b2d29..f4f1b5a8 100644 --- a/apps/website/src/components/Section.astro +++ b/apps/website/src/components/Section.astro @@ -3,19 +3,21 @@ interface Props { idx?: string; className?: string; contentClassName?: string; + style?: string; } -const { idx, className, contentClassName } = Astro.props; +const { idx, className, contentClassName, style } = Astro.props; ---
Promise<{ + default: ImageMetadata; +}>; + +const image = await src(); ---
- {imgAlt} +
Promise<{ + default: ImageMetadata; +}>; + +const image = await src(); ---
- {img.alt} +
diff --git a/apps/website/src/components/Values.astro b/apps/website/src/components/Values.astro index b3a0e12f..f6ebede2 100644 --- a/apps/website/src/components/Values.astro +++ b/apps/website/src/components/Values.astro @@ -5,6 +5,8 @@ import SectionTitle from "./SectionTitle.astro"; import Section from "./Section.astro"; import { grid_classes } from "./_grid"; import Pill from "./Pill.astro"; +import { getImage } from "@astrojs/image"; +import bgImage from "../assets/values-main-image.png"; const styles = ["bg-[#FEB534]", "bg-[#607A1A]", "bg-[#F6FCFD]"]; @@ -23,12 +25,20 @@ for (const value of valueCollection) { icon: value.data.icon, }); } + +const { src } = await getImage({ + src: bgImage, + alt: "", + width: 1920, + format: 'avif', +}); ---
@@ -55,7 +57,12 @@ import Section from "../Section.astro"; lg:col-start-7 lg:row-start-1" > - +
diff --git a/apps/website/src/components/hero.astro b/apps/website/src/components/hero.astro index c6dd65db..8b2ca5da 100644 --- a/apps/website/src/components/hero.astro +++ b/apps/website/src/components/hero.astro @@ -2,6 +2,8 @@ import { grid_classes } from "./_grid"; import Pill from "./Pill.astro"; import Section from "./Section.astro"; +import { Picture } from "@astrojs/image/components"; +import heroImage from "../assets/croco-13.png"; ---
@@ -11,7 +13,12 @@ import Section from "./Section.astro";
- +
- Building Software + Building Software - 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/components/testimonial.astro b/apps/website/src/components/testimonial.astro index 6385d524..f6dca9c0 100644 --- a/apps/website/src/components/testimonial.astro +++ b/apps/website/src/components/testimonial.astro @@ -9,12 +9,24 @@ const testimonialCollections = await getCollection("testimonials"); const testimonials = []; +const images = import.meta.glob("../assets/*.*"); + +console.log(images); + for (const testimonial of testimonialCollections) { + console.log(testimonial.data.imageUrl); + const src = images[ + `../assets${testimonial.data.imageUrl}` + ] as any as () => Promise<{ + default: ImageMetadata; + }>; + const image = await src(); + testimonials.push({ content: testimonial.rendered, name: testimonial.data.name, title: testimonial.data.title, - imageUrl: testimonial.data.imageUrl, + image: image, company: testimonial.data.company, }); } @@ -34,14 +46,14 @@ for (const testimonial of testimonialCollections) { xl:flex-wrap xl:justify-between xl:overflow-hidden" > { - testimonials.map(({ name, content, title, imageUrl, company }) => ( + testimonials.map(({ name, content, title, image, company }) => (

diff --git a/apps/website/src/content/testimonials/2paul-jeszensky.md b/apps/website/src/content/testimonials/2paul-jeszensky.md index 3d590543..d25e38ea 100644 --- a/apps/website/src/content/testimonials/2paul-jeszensky.md +++ b/apps/website/src/content/testimonials/2paul-jeszensky.md @@ -1,5 +1,5 @@ --- -imageUrl: "/Paul-Jeszenszky.png" +imageUrl: "/paul-jeszenszky.png" name: "Paul Jeszenszky" title: "co-founder & CEO" company: "Submix" diff --git a/apps/website/src/layouts/post-base.astro b/apps/website/src/layouts/post-base.astro index a02ab78f..46e1c082 100644 --- a/apps/website/src/layouts/post-base.astro +++ b/apps/website/src/layouts/post-base.astro @@ -86,7 +86,9 @@ const dateObj = new Date(createdAt); >
-
+
@@ -95,16 +97,23 @@ const dateObj = new Date(createdAt); ) }
-
{authorName}
+
+ {authorName} +
@@ -125,7 +134,9 @@ const dateObj = new Date(createdAt); diff --git a/apps/website/src/pages/blog/[regular].astro b/apps/website/src/pages/blog/[regular].astro index d822bd85..e4b2b125 100644 --- a/apps/website/src/pages/blog/[regular].astro +++ b/apps/website/src/pages/blog/[regular].astro @@ -2,6 +2,8 @@ import Post from "../../layouts/post-markdown.astro"; import { getCollection } from "astro:content"; +export const prerender = true; + export async function getStaticPaths() { const posts = (await getCollection("posts")).filter( (p) => !p.slug.includes("/"), diff --git a/apps/website/src/pages/blog/index.astro b/apps/website/src/pages/blog/index.astro index 092af17c..771c564f 100644 --- a/apps/website/src/pages/blog/index.astro +++ b/apps/website/src/pages/blog/index.astro @@ -65,7 +65,8 @@ posts.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()); diff --git a/bun.lockb b/bun.lockb index f202410a..c677a859 100755 Binary files a/bun.lockb and b/bun.lockb differ