diff --git a/apps/website/astro.config.mjs b/apps/website/astro.config.mjs index f8cbac61..1b61cc60 100644 --- a/apps/website/astro.config.mjs +++ b/apps/website/astro.config.mjs @@ -1,9 +1,8 @@ import { defineConfig } from 'astro/config'; -import tailwind from '@astrojs/tailwind'; import react from '@astrojs/react'; -import vercel from '@astrojs/vercel/serverless' +import vercel from '@astrojs/vercel' import createRemarkPlugin from '@crocoder-dev/remark-plugin'; -import image from '@astrojs/image'; +import tailwindcss from "@tailwindcss/vite"; const classes = { titleClass: 'font-bold text-[1.25rem] mt-[2.5rem]', @@ -18,12 +17,13 @@ export default defineConfig({ prefetch: true, output: 'server', adapter: vercel({ + imageService: true, }), redirects: { '/feed': '/rss.xml', '/sitemap': '/sitemap.xml' }, - integrations: [tailwind(), react(), image()], + integrations: [tailwindcss(), react()], markdown: { remarkPlugins: [remarkPlugin], }, diff --git a/apps/website/package.json b/apps/website/package.json index 0936e73e..0176eda4 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -3,22 +3,26 @@ "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.1.5", + "@astrojs/react": "^4.3.0", + "@astrojs/rss": "^4.0.12", + "@astrojs/vercel": "^8.2.2", "@crocoder-dev/remark-plugin": "*", - "@crocoder-dev/tailwind": "*", - "astro": "5.7.13", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/postcss": "^4.1.11", + "@tailwindcss/typography": "^0.5.16", + "@tailwindcss/vite": "^4.1.11", + "astro": "5.12.0", "astro-font": "^1.1.0", + "autoprefixer": "^10.4.21", "classnames": "^2.5.1", "date-fns": "^4.1.0", "marked": "^15.0.5", "posthog-js": "^1.222.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-icons": "^5.4.0" + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-icons": "^5.5.0", + "tailwind": "^4.0.0", + "tailwind-bootstrap-grid": "^6.0.0" }, "scripts": { "dev": "astro dev --port 4321", diff --git a/packages/tailwind/postcss.config.js b/apps/website/postcss.config.cjs similarity index 65% rename from packages/tailwind/postcss.config.js rename to apps/website/postcss.config.cjs index 12a703d9..b4bee663 100644 --- a/packages/tailwind/postcss.config.js +++ b/apps/website/postcss.config.cjs @@ -1,6 +1,6 @@ module.exports = { plugins: { - tailwindcss: {}, + '@tailwindcss/postcss': {}, autoprefixer: {}, }, }; diff --git a/apps/website/public/meeting-croc.png b/apps/website/public/meeting-croc.png deleted file mode 100644 index 0c75a373..00000000 Binary files a/apps/website/public/meeting-croc.png and /dev/null differ diff --git a/apps/website/public/pic-web-dev-topics.png b/apps/website/public/pic-web-dev-topics.png deleted file mode 100644 index 09c00c62..00000000 Binary files a/apps/website/public/pic-web-dev-topics.png and /dev/null differ diff --git a/apps/website/src/assets/crocoder-logo.png b/apps/website/src/assets/crocoder-logo.png new file mode 100644 index 00000000..fdbf15b6 Binary files /dev/null and b/apps/website/src/assets/crocoder-logo.png differ diff --git a/apps/website/src/assets/douglas-icon.png b/apps/website/src/assets/douglas-icon.png new file mode 100644 index 00000000..3d9d9d66 Binary files /dev/null and b/apps/website/src/assets/douglas-icon.png differ diff --git a/apps/website/src/assets/email.png b/apps/website/src/assets/email.png new file mode 100644 index 00000000..be76a08f Binary files /dev/null and b/apps/website/src/assets/email.png differ diff --git a/apps/website/src/assets/people-collaborating.png b/apps/website/src/assets/people-collaborating.png new file mode 100644 index 00000000..a3156005 Binary files /dev/null and b/apps/website/src/assets/people-collaborating.png differ diff --git a/apps/website/src/assets/raphael-bauer-bubble.png b/apps/website/src/assets/raphael-bauer-bubble.png new file mode 100644 index 00000000..2a126f3a Binary files /dev/null and b/apps/website/src/assets/raphael-bauer-bubble.png differ diff --git a/apps/website/src/assets/teams.png b/apps/website/src/assets/teams.png new file mode 100644 index 00000000..cab1ccf9 Binary files /dev/null and b/apps/website/src/assets/teams.png differ diff --git a/apps/website/src/assets/vision.png b/apps/website/src/assets/vision.png new file mode 100644 index 00000000..8ffe8e95 Binary files /dev/null and b/apps/website/src/assets/vision.png differ diff --git a/apps/website/src/components/Avatar.astro b/apps/website/src/components/Avatar.astro index 1c9f3830..961d4c39 100644 --- a/apps/website/src/components/Avatar.astro +++ b/apps/website/src/components/Avatar.astro @@ -1,14 +1,23 @@ --- -import { Picture } from "@astrojs/image/components"; +import { getImage } from "astro:assets"; const { image, name, company, role } = Astro.props; + +const optimizedImage = await getImage({ + src: image.default, + width: 72, + height: 72, + format: 'webp' +}); ---
- {name}
diff --git a/apps/website/src/components/BookACallForm.astro b/apps/website/src/components/BookACallForm.astro index a0a7291a..27e88fb7 100644 --- a/apps/website/src/components/BookACallForm.astro +++ b/apps/website/src/components/BookACallForm.astro @@ -3,7 +3,7 @@ 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 { Image } from "astro:assets"; import meetingImage from "../assets/meeting-croc.png"; --- @@ -15,11 +15,12 @@ import meetingImage from "../assets/meeting-croc.png";
-
diff --git a/apps/website/src/components/Clients.astro b/apps/website/src/components/Clients.astro index e10cbe8f..cc06b20f 100644 --- a/apps/website/src/components/Clients.astro +++ b/apps/website/src/components/Clients.astro @@ -10,21 +10,21 @@ import Section from "./Section.astro";
- + Conductor logo - + SevDesk logo
diff --git a/apps/website/src/components/ContactUs.astro b/apps/website/src/components/ContactUs.astro index afd53f5e..1db25755 100644 --- a/apps/website/src/components/ContactUs.astro +++ b/apps/website/src/components/ContactUs.astro @@ -5,6 +5,8 @@ import { grid_classes } from "./_grid"; import ContactUsForm from "./ContactUsForm.astro"; import Section from "./Section.astro"; import SectionTitle from "./SectionTitle.astro"; +import { Image } from "astro:assets"; +import peopleCollaborating from "../assets/people-collaborating.png"; ---
diff --git a/apps/website/src/components/ServiceCard.astro b/apps/website/src/components/ServiceCard.astro index a10f9bb0..2faa0a28 100644 --- a/apps/website/src/components/ServiceCard.astro +++ b/apps/website/src/components/ServiceCard.astro @@ -1,6 +1,6 @@ --- import classnames from "classnames"; -import { Picture } from "@astrojs/image/components"; +import { Image } from "astro:assets"; interface Props { idx: number; @@ -65,7 +65,7 @@ const image = await src(); class="col-span-6 grid max-lg:grid-rows-[min-content_min-content_auto] gap-7 lg:grid-cols-2 lg:col-span-2 lg:items-start justify-between" > - +

@@ -75,11 +75,12 @@ const image = await src();
-
diff --git a/apps/website/src/components/ValueCard.astro b/apps/website/src/components/ValueCard.astro index 1e2a5459..33facf8d 100644 --- a/apps/website/src/components/ValueCard.astro +++ b/apps/website/src/components/ValueCard.astro @@ -1,5 +1,5 @@ --- -import { Picture } from "@astrojs/image/components"; +import { Image } from "astro:assets"; interface Props { idx: number; @@ -29,18 +29,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"}`} >
- {icon} +

{title}

-
diff --git a/apps/website/src/components/Values.astro b/apps/website/src/components/Values.astro index f6ebede2..26f102a8 100644 --- a/apps/website/src/components/Values.astro +++ b/apps/website/src/components/Values.astro @@ -5,7 +5,7 @@ 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 { getImage } from "astro:assets"; import bgImage from "../assets/values-main-image.png"; const styles = ["bg-[#FEB534]", "bg-[#607A1A]", "bg-[#F6FCFD]"]; diff --git a/apps/website/src/components/cto/Hero.astro b/apps/website/src/components/cto/Hero.astro index 14f17481..8fe13a6e 100644 --- a/apps/website/src/components/cto/Hero.astro +++ b/apps/website/src/components/cto/Hero.astro @@ -2,7 +2,7 @@ import { grid_classes } from "../_grid"; import Pill from "../Pill.astro"; import Section from "../Section.astro"; -import { Picture } from "@astrojs/image/components"; +import { Image } from "astro:assets"; import heroImage from "../../assets/cto-hero.png"; --- @@ -57,10 +57,11 @@ import heroImage from "../../assets/cto-hero.png"; lg:col-start-7 lg:row-start-1" > -

diff --git a/apps/website/src/components/cto/InfoBlock.astro b/apps/website/src/components/cto/InfoBlock.astro index ab432c93..a21a7d00 100644 --- a/apps/website/src/components/cto/InfoBlock.astro +++ b/apps/website/src/components/cto/InfoBlock.astro @@ -5,7 +5,7 @@ const { icon, title, description, className } = Astro.props; ---
- +

diff --git a/apps/website/src/components/cto/ServiceBlock.astro b/apps/website/src/components/cto/ServiceBlock.astro index 3a7ce253..447fdd4a 100644 --- a/apps/website/src/components/cto/ServiceBlock.astro +++ b/apps/website/src/components/cto/ServiceBlock.astro @@ -12,7 +12,7 @@ const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, des

- +

{titleFirst}

@@ -21,7 +21,7 @@ const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, des
- +

{titleSecond}

@@ -32,5 +32,6 @@ const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, des
CroCoder team member illustration
diff --git a/apps/website/src/components/cto/Testimonial.astro b/apps/website/src/components/cto/Testimonial.astro index 5117f3fb..7a752a51 100644 --- a/apps/website/src/components/cto/Testimonial.astro +++ b/apps/website/src/components/cto/Testimonial.astro @@ -1,13 +1,21 @@ --- import { grid_classes } from "../_grid"; import Section from "../Section.astro"; +import { getImage } from "astro:assets"; +import raphaelBauerBubble from "../../assets/raphael-bauer-bubble.png"; + +const optimizedTestimonial = await getImage({ + src: raphaelBauerBubble, + width: 569, + height: 547 +}); ---
- +

Raphael Bauer, Interim CTO testimonial portrait
diff --git a/apps/website/src/components/cto/Values.astro b/apps/website/src/components/cto/Values.astro index d175b7f9..54b186ac 100644 --- a/apps/website/src/components/cto/Values.astro +++ b/apps/website/src/components/cto/Values.astro @@ -3,6 +3,22 @@ import { grid_classes } from "../_grid"; import Pill from "../Pill.astro"; import Section from "../Section.astro"; import InfoBlock from "./InfoBlock.astro"; +import { Image, getImage } from "astro:assets"; +import visionImage from "../../assets/vision.png"; +import teamsImage from "../../assets/teams.png"; +import douglasIcon from "../../assets/douglas-icon.png"; + +const optimizedDouglasIcon = await getImage({ + src: douglasIcon, + width: 72, + height: 72 +}); + +const optimizedTeamsImage = await getImage({ + src: teamsImage, + width: 560, + height: 326 +}); ---
- Vision and strategy planning illustration
@@ -68,7 +87,11 @@ import InfoBlock from "./InfoBlock.astro"; description="Empower your teams to operate independently by introducing sustainable processes and bringing in specialized expertise only where it’s needed" />
- + High-performing development teams collaboration
- +
Douglas Barr, Submix co-founder and CTO -

- Douglas Barr -
+ + Douglas Barr
Submix co-founder & CTO -

+
diff --git a/apps/website/src/components/footer.astro b/apps/website/src/components/footer.astro index 9ce51d62..87095fe0 100644 --- a/apps/website/src/components/footer.astro +++ b/apps/website/src/components/footer.astro @@ -1,4 +1,14 @@ --- +import { getImage } from "astro:assets"; +import crocoderLogo from "../assets/crocoder-logo.png"; + +const optimizedLogo = await getImage({ + src: crocoderLogo, + width: 64, + height: 48, + format: 'webp' +}); + const copyright = ` ${new Date().getFullYear()} CroCoder, Inc. All rights reserved. `; @@ -18,11 +28,12 @@ const copyright = `
Crocoder Crocodile Logo - diff --git a/apps/website/src/components/navigation.astro b/apps/website/src/components/navigation.astro index fa4affd9..fbe9ebad 100644 --- a/apps/website/src/components/navigation.astro +++ b/apps/website/src/components/navigation.astro @@ -1,3 +1,15 @@ +--- +import { getImage } from "astro:assets"; +import crocoderLogo from "../assets/crocoder-logo.png"; + +const optimizedLogo = await getImage({ + src: crocoderLogo, + width: 63, + height: 51, + format: 'webp' +}); +--- +
Crocoder Crocodile Logo Crocoder Crocodile Logo =1.1.18" diff --git a/packages/tailwind/package.json b/packages/tailwind/package.json deleted file mode 100644 index 6d8d88ef..00000000 --- a/packages/tailwind/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@crocoder-dev/tailwind", - "main": "tailwind.config.js", - "files": [ - "tailwind.config.js", - "postcss.config.js" - ], - "dependencies": { - "@tailwindcss/forms": "0.5.9", - "@tailwindcss/typography": "0.5.15", - "tailwind-bootstrap-grid": "6.0.0" - } -}