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();
---
-

+
Promise<{
+ default: ImageMetadata;
+}>;
+
+const image = await src();
---
-

+
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