diff --git a/apps/website/astro.config.mjs b/apps/website/astro.config.mjs index aac0d184..ddd9212e 100644 --- a/apps/website/astro.config.mjs +++ b/apps/website/astro.config.mjs @@ -19,7 +19,7 @@ export default defineConfig({ adapter: vercel({ imageService: true, imagesConfig: { - sizes: [320, 480, 578, 640, 720, 800, 940, 1920], + sizes: [320, 480, 578, 640, 720, 800, 940, 1200, 1412, 1536, 1800, 1920], formats: ["image/avif", "image/webp"], }, }), diff --git a/apps/website/src/assets/artificial_intelligence.svg b/apps/website/src/assets/artificial_intelligence.svg new file mode 100644 index 00000000..39a7958c --- /dev/null +++ b/apps/website/src/assets/artificial_intelligence.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/website/src/assets/check_badge.svg b/apps/website/src/assets/check_badge.svg new file mode 100644 index 00000000..79a9b96c --- /dev/null +++ b/apps/website/src/assets/check_badge.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/website/src/assets/code_monitor.svg b/apps/website/src/assets/code_monitor.svg new file mode 100644 index 00000000..2cc88ac3 --- /dev/null +++ b/apps/website/src/assets/code_monitor.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/website/src/assets/get-in-touch.png b/apps/website/src/assets/get-in-touch.png new file mode 100644 index 00000000..5a6949d2 Binary files /dev/null and b/apps/website/src/assets/get-in-touch.png differ diff --git a/apps/website/src/assets/nextjs_logo.png b/apps/website/src/assets/nextjs_logo.png new file mode 100644 index 00000000..c69cc841 Binary files /dev/null and b/apps/website/src/assets/nextjs_logo.png differ diff --git a/apps/website/src/assets/node_logo.png b/apps/website/src/assets/node_logo.png new file mode 100644 index 00000000..d1771c08 Binary files /dev/null and b/apps/website/src/assets/node_logo.png differ diff --git a/apps/website/src/assets/pic_phase_1.png b/apps/website/src/assets/pic_phase_1.png new file mode 100644 index 00000000..c5404002 Binary files /dev/null and b/apps/website/src/assets/pic_phase_1.png differ diff --git a/apps/website/src/assets/pic_phase_2.png b/apps/website/src/assets/pic_phase_2.png new file mode 100644 index 00000000..03395b42 Binary files /dev/null and b/apps/website/src/assets/pic_phase_2.png differ diff --git a/apps/website/src/assets/pic_phase_3.png b/apps/website/src/assets/pic_phase_3.png new file mode 100644 index 00000000..31be68f8 Binary files /dev/null and b/apps/website/src/assets/pic_phase_3.png differ diff --git a/apps/website/src/assets/react_logo.png b/apps/website/src/assets/react_logo.png new file mode 100644 index 00000000..f10ed5df Binary files /dev/null and b/apps/website/src/assets/react_logo.png differ diff --git a/apps/website/src/assets/seo_search_graph.svg b/apps/website/src/assets/seo_search_graph.svg new file mode 100644 index 00000000..1c9c1013 --- /dev/null +++ b/apps/website/src/assets/seo_search_graph.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/website/src/assets/shield_check.svg b/apps/website/src/assets/shield_check.svg new file mode 100644 index 00000000..727af0a8 --- /dev/null +++ b/apps/website/src/assets/shield_check.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/src/assets/shipment.svg b/apps/website/src/assets/shipment.svg new file mode 100644 index 00000000..ff3f1803 --- /dev/null +++ b/apps/website/src/assets/shipment.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/website/src/assets/startup.svg b/apps/website/src/assets/startup.svg new file mode 100644 index 00000000..334c736c --- /dev/null +++ b/apps/website/src/assets/startup.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/website/src/assets/stopwatch.svg b/apps/website/src/assets/stopwatch.svg new file mode 100644 index 00000000..0bacf34e --- /dev/null +++ b/apps/website/src/assets/stopwatch.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/website/src/assets/team.jpg b/apps/website/src/assets/team.jpg new file mode 100644 index 00000000..07ff6291 Binary files /dev/null and b/apps/website/src/assets/team.jpg differ diff --git a/apps/website/src/assets/vibe-code-mvp-hero.jpg b/apps/website/src/assets/vibe-code-mvp-hero.jpg new file mode 100644 index 00000000..5acb7d55 Binary files /dev/null and b/apps/website/src/assets/vibe-code-mvp-hero.jpg differ diff --git a/apps/website/src/components/BaseContactForm.astro b/apps/website/src/components/BaseContactForm.astro index 01bd3198..8d0f10b1 100644 --- a/apps/website/src/components/BaseContactForm.astro +++ b/apps/website/src/components/BaseContactForm.astro @@ -5,105 +5,108 @@ import "../styles/loader.css"; import Field from "./Field.astro"; type Props = { + formId: string; onDark?: boolean; classNames?: string; + formClassNames?: string; }; -const { onDark, classNames } = Astro.props; +const { onDark, classNames, formId, formClassNames } = Astro.props; --- -
- - -
+ + - - 0/1500 - -
- -
-
- -
+ -

-
- - + } + + customElements.define("base-contact-form", BaseContactForm); + diff --git a/apps/website/src/components/BookACallForm.astro b/apps/website/src/components/BookACallForm.astro index 315381ae..905604ce 100644 --- a/apps/website/src/components/BookACallForm.astro +++ b/apps/website/src/components/BookACallForm.astro @@ -20,7 +20,6 @@ const { } = Astro.props; --- -
-
- -

- -

-
- - -
diff --git a/apps/website/src/components/ContactUsForm.astro b/apps/website/src/components/ContactUsForm.astro deleted file mode 100644 index f35e52d3..00000000 --- a/apps/website/src/components/ContactUsForm.astro +++ /dev/null @@ -1,205 +0,0 @@ ---- -import Field from "./Field.astro"; -import * as formContent from "../content/contact/form.md"; -import "../styles/loader.css"; ---- - -
- - -
- - - 0/1500 - -
-
-
- -
- -

-
- - diff --git a/apps/website/src/components/Values.astro b/apps/website/src/components/Values.astro index 3da5e915..cc9ff1c4 100644 --- a/apps/website/src/components/Values.astro +++ b/apps/website/src/components/Values.astro @@ -8,7 +8,7 @@ import Pill from "./Pill.astro"; import { getImage } from "astro:assets"; import bgImage from "../assets/values-main-image.png"; -const styles = ["bg-[#FEB534]", "bg-[#607A1A]", "bg-[#F6FCFD]"]; +const styles = ["bg-crocoder-orange", "bg-[#607A1A]", "bg-[#F6FCFD]"]; const valueCollection = await getCollection("values"); @@ -47,8 +47,8 @@ const { src } = await getImage({ - Creating Value Through The Power Of - Software + Creating Value Through The + Power Of Software { diff --git a/apps/website/src/components/contact/Hero.astro b/apps/website/src/components/contact/Hero.astro index 1e63e22c..ea8428ba 100644 --- a/apps/website/src/components/contact/Hero.astro +++ b/apps/website/src/components/contact/Hero.astro @@ -63,6 +63,7 @@ import RightArrow from "../icons/RightArrow.astro"; diff --git a/apps/website/src/components/icons/Calendar.astro b/apps/website/src/components/icons/Calendar.astro new file mode 100644 index 00000000..87781ab9 --- /dev/null +++ b/apps/website/src/components/icons/Calendar.astro @@ -0,0 +1,14 @@ + + + diff --git a/apps/website/src/components/icons/CircleCheck.astro b/apps/website/src/components/icons/CircleCheck.astro new file mode 100644 index 00000000..1c3a614b --- /dev/null +++ b/apps/website/src/components/icons/CircleCheck.astro @@ -0,0 +1,24 @@ +--- +import type { HTMLAttributes } from "astro/types"; +import classnames from "classnames"; + +type Props = HTMLAttributes<"svg"> & { classNames?: string }; + +const { width, height, classNames } = Astro.props; +--- + + + + diff --git a/apps/website/src/components/icons/CircleX.astro b/apps/website/src/components/icons/CircleX.astro new file mode 100644 index 00000000..e3696618 --- /dev/null +++ b/apps/website/src/components/icons/CircleX.astro @@ -0,0 +1,24 @@ +--- +import type { HTMLAttributes } from "astro/types"; +import classnames from "classnames"; + +type Props = HTMLAttributes<"svg"> & { classNames?: string }; + +const { width, height, classNames } = Astro.props; +--- + + + diff --git a/apps/website/src/components/vibe-code-mvp/GetInTouch.astro b/apps/website/src/components/vibe-code-mvp/GetInTouch.astro new file mode 100644 index 00000000..890a70a8 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/GetInTouch.astro @@ -0,0 +1,62 @@ +--- +import { Image } from "astro:assets"; +import getInTouchImage from "../../assets/get-in-touch.png"; +import { grid_classes } from "../_grid"; +import BaseContactForm from "../BaseContactForm.astro"; +import RightArrow from "../icons/RightArrow.astro"; +import Pill from "../Pill.astro"; +import Section from "../Section.astro"; +--- + +
+
+
+ Croco and client talking +
+
+ Get in touch +
+

+ Let’s Ship Your MVP! +

+

+ We’ll review what you’ve built and tell you exactly what it’ll take to + finish. Simple, honest, no commitment. +

+
+
+ + + Get a free build review + + +
+
diff --git a/apps/website/src/components/vibe-code-mvp/Hero.astro b/apps/website/src/components/vibe-code-mvp/Hero.astro new file mode 100644 index 00000000..9543de65 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/Hero.astro @@ -0,0 +1,107 @@ +--- +import { Picture } from "astro:assets"; +import hero from "../../assets/vibe-code-mvp-hero.jpg"; +import Pill from "../../components/Pill.astro"; +import Section from "../../components/Section.astro"; +import { grid_classes } from "../../components/_grid"; +import "../../styles/main.css"; +import BaseContactForm from "../BaseContactForm.astro"; +import RightArrow from "../icons/RightArrow.astro"; +--- + +
+ +
+ +
+
+
+
+
+ We finish your vibe-coded mvps +

+ + Your MVP is 80% + + + Done? We will get you to 100%. + +

+

+ + You used AI, no-code, or some coding to build fast? Now you're + stuck at the edge of launch. +
+ + Polish, bugs, logic, production - That's where we come in. + +
+

+
+
+
+ + + Get a free build review + + +
+
+
+
diff --git a/apps/website/src/components/vibe-code-mvp/HowItWorks.astro b/apps/website/src/components/vibe-code-mvp/HowItWorks.astro new file mode 100644 index 00000000..b0b26593 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/HowItWorks.astro @@ -0,0 +1,133 @@ +--- +import { Image } from "astro:assets"; +import { getCollection } from "astro:content"; +import classnames from "classnames"; +import nextLogo from "../../assets/nextjs_logo.png"; +import nodeLogo from "../../assets/node_logo.png"; +import reactLogo from "../../assets/react_logo.png"; +import Pill from "../Pill.astro"; +import Section from "../Section.astro"; +import { grid_classes } from "../_grid"; +import Calendar from "../icons/Calendar.astro"; + +const steps = (await getCollection("vibe_code_mvp_how_it_works")) as { + data: { + image: string; + imageAlt: string; + bgColor: string; + pill: string; + title: string; + description: string; + }; +}[]; + +const images = import.meta.glob<{ default: ImageMetadata }>( + "/src/assets/*.svg" +); +--- + +
+
+
+ + We're 100% focused on results + +

+ How it Works. +

+ +
+
+

We're experts in:

+
+ Node JS logo + Next JS logo + React logo +
+
+
+
+ { + steps.map((s, idx) => ( +
+ {s.data.imageAlt} +

+ {`${idx + 1}.`} + {s.data.title} +

+

+ {s.data.description} +

+
+ )) + } +
+
diff --git a/apps/website/src/components/vibe-code-mvp/WhyWorkWithUs.astro b/apps/website/src/components/vibe-code-mvp/WhyWorkWithUs.astro new file mode 100644 index 00000000..05be3a56 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/WhyWorkWithUs.astro @@ -0,0 +1,106 @@ +--- +import { Picture } from "astro:assets"; +import team from "../../assets/team.jpg"; +import Pill from "../../components/Pill.astro"; +import Section from "../../components/Section.astro"; +import { grid_classes } from "../../components/_grid"; +import "../../styles/main.css"; +import { getCollection } from "astro:content"; +import { Image } from "astro:assets"; + +const reasons = (await getCollection("vibe_code_mvp_why_work_with_us")) as { + data: { + image: string; + imageAlt: string; + title: string; + }; +}[]; + +const images = import.meta.glob<{ default: ImageMetadata }>( + "/src/assets/*.svg" +); +--- + +
+
+ +
+ +
+
+
+
+
+ Why work with us +

+ The Dev Team Who Finishes What AI, Templates And Tools Can't +

+

+ We're not a design agency. We're not no-code coaches +

+
+
+
+
+
+
+
+
+ { + reasons.map((r) => ( +
+ {r.data.imageAlt} +

{r.data.title}

+
+ )) + } +
+
+
+
diff --git a/apps/website/src/components/vibe-code-mvp/WorkWithUs.astro b/apps/website/src/components/vibe-code-mvp/WorkWithUs.astro new file mode 100644 index 00000000..240a75e6 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/WorkWithUs.astro @@ -0,0 +1,96 @@ +--- +import { getCollection } from "astro:content"; +import Section from "../Section.astro"; +import classnames from "classnames"; +import Pill from "../Pill.astro"; +import CircleCheck from "../icons/CircleCheck.astro"; +import CircleX from "../icons/CircleX.astro"; +import { grid_classes } from "../_grid"; +import { Picture } from "astro:assets"; + +const phases = (await getCollection("vibe_code_mvp_phases")) as { + data: { + image: string; + imageAlt: string; + imageBgColor: string; + pill: string; + title: string; + checks: string[]; + issues: string[]; + issueChecks: string[]; + }; +}[]; + +const images = import.meta.glob<{ default: ImageMetadata }>( + "/src/assets/*.png" +); + +const listItemClasses = + "flex items-center gap-2.5 text-base md:text-[22px] md:leading-8"; +--- + +
+ { + phases.map((p, idx) => ( +
+
+ +
+
+ + {p.data.pill} + +
+

+ {p.data.title} +

+ {p.data.checks.length ? ( +
    + {p.data.checks.map((c) => ( +
  • + {c} +
  • + ))} +
+ ) : null} + {p.data.issues.length ? ( +
    + {p.data.issues.map((i) => ( +
  • {i}
  • + ))} +
+ ) : null} + {p.data.issueChecks.length ? ( +
    + {p.data.issueChecks.map((ic) => ( +
  • + {ic} +
  • + ))} +
+ ) : null} +
+
+
+ )) + } +
diff --git a/apps/website/src/components/vibe-code-mvp/WorkWithUsDesktop.astro b/apps/website/src/components/vibe-code-mvp/WorkWithUsDesktop.astro new file mode 100644 index 00000000..5aa5a299 --- /dev/null +++ b/apps/website/src/components/vibe-code-mvp/WorkWithUsDesktop.astro @@ -0,0 +1,187 @@ +--- +import { getCollection } from "astro:content"; +import Section from "../Section.astro"; +import classnames from "classnames"; +import Pill from "../Pill.astro"; +import CircleCheck from "../icons/CircleCheck.astro"; +import CircleX from "../icons/CircleX.astro"; +import { grid_classes } from "../_grid"; +import { Picture } from "astro:assets"; + +const phases = (await getCollection("vibe_code_mvp_phases")) as { + data: { + image: string; + imageAlt: string; + imageBgColor: string; + pill: string; + title: string; + checks: string[]; + issues: string[]; + issueChecks: string[]; + }; +}[]; + +const images = import.meta.glob<{ default: ImageMetadata }>( + "/src/assets/*.png" +); + +const listItemClasses = "flex items-center gap-2.5 text-[22px] leading-8"; +--- + +
+
+
+ { + phases.map((p, idx) => ( +
+ +
+ )) + } +
+
+
+ { + phases.map((p, idx) => ( +
+ + {p.data.pill} + +
+

+ {p.data.title} +

+ {p.data.checks.length ? ( +
    + {p.data.checks.map((c) => ( +
  • + {c} +
  • + ))} +
+ ) : null} + {p.data.issues.length ? ( +
    + {p.data.issues.map((i) => ( +
  • {i}
  • + ))} +
+ ) : null} + {p.data.issueChecks.length ? ( +
    + {p.data.issueChecks.map((ic) => ( +
  • + {ic} +
  • + ))} +
+ ) : null} +
+
+ )) + } +
+ +
diff --git a/apps/website/src/content/contact/form.md b/apps/website/src/content/contact/form.md index 1797796f..4212b498 100644 --- a/apps/website/src/content/contact/form.md +++ b/apps/website/src/content/contact/form.md @@ -1,6 +1,6 @@ --- fullname: "Full name *" -fullnameLength: "Name must be at least 3 characters." +fullnameLength: "Name must be at least 2 characters." requiredField: "This is a required field." email: "E-mail *" emailInvalid: "Email you entered is not valid." diff --git a/apps/website/src/content/vibe_code_mvp_how_it_works/step_1.md b/apps/website/src/content/vibe_code_mvp_how_it_works/step_1.md new file mode 100644 index 00000000..8c2fcfde --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_how_it_works/step_1.md @@ -0,0 +1,7 @@ +--- +image: "/src/assets/code_monitor.svg" +imageAlt: "Illustration of monitor and HTML tag on it" +bgColor: "bg-[#353131]" +title: "You show us your current build." +description: "GPT-generated code? Framer prototype? Bubble hack? All good." +--- diff --git a/apps/website/src/content/vibe_code_mvp_how_it_works/step_2.md b/apps/website/src/content/vibe_code_mvp_how_it_works/step_2.md new file mode 100644 index 00000000..b6978657 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_how_it_works/step_2.md @@ -0,0 +1,7 @@ +--- +image: "/src/assets/seo_search_graph.svg" +imageAlt: "Illustration of a graph" +bgColor: "bg-[#504C56]" +title: "We assess what’s needed to finalize it." +description: "We’ll review it fast — zero pressure, no BS." +--- diff --git a/apps/website/src/content/vibe_code_mvp_how_it_works/step_3.md b/apps/website/src/content/vibe_code_mvp_how_it_works/step_3.md new file mode 100644 index 00000000..5f7ed111 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_how_it_works/step_3.md @@ -0,0 +1,7 @@ +--- +image: "/src/assets/check_badge.svg" +imageAlt: "Illustration of a badge with check sign on it" +bgColor: "bg-[#555E7C]" +title: "We polish, fix, and deliver it." +description: "Real code. Real backend. Real launch." +--- diff --git a/apps/website/src/content/vibe_code_mvp_how_it_works/step_4.md b/apps/website/src/content/vibe_code_mvp_how_it_works/step_4.md new file mode 100644 index 00000000..ebfc7f7e --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_how_it_works/step_4.md @@ -0,0 +1,7 @@ +--- +image: "/src/assets/startup.svg" +imageAlt: "Illustration of a rocket" +bgColor: "bg-[#6572DF]" +title: "You own it. You launch it." +description: "We hand it off clean — or keep helping if you want." +--- diff --git a/apps/website/src/content/vibe_code_mvp_phases/phase_1.md b/apps/website/src/content/vibe_code_mvp_phases/phase_1.md new file mode 100644 index 00000000..e42f1fcc --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_phases/phase_1.md @@ -0,0 +1,15 @@ +--- +image: "/src/assets/pic_phase_1.png" +imageAlt: "Illustration of crocodile presenting analytics on a board" +imageBgColor: "bg-[#F6FCFD]" +pill: "We finish your vibe-coded mvps" +title: "You've built this far..." +checks: + [ + "You vibe-coded the core logic", + "You made it clickable, demoable", + "You’re showing it to friends, investors, early users", + ] +issues: [] +issueChecks: [] +--- diff --git a/apps/website/src/content/vibe_code_mvp_phases/phase_2.md b/apps/website/src/content/vibe_code_mvp_phases/phase_2.md new file mode 100644 index 00000000..6bec4525 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_phases/phase_2.md @@ -0,0 +1,20 @@ +--- +image: "/src/assets/pic_phase_2.png" +imageAlt: "Illustration of crocodile analyzing with a loupe" +imageBgColor: "bg-crocoder-green" +pill: "We finish your vibe-coded mvps" +title: "But now..." +checks: [] +issues: + [ + "It breaks under real use", + "You don’t trust it in production", + "You’re not sure how to ship it", + ] +issueChecks: + [ + "You vibe-coded the core logic", + "You made it clickable, demoable", + "You’re showing it to friends, investors, early users", + ] +--- diff --git a/apps/website/src/content/vibe_code_mvp_phases/phase_3.md b/apps/website/src/content/vibe_code_mvp_phases/phase_3.md new file mode 100644 index 00000000..1c3f374b --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_phases/phase_3.md @@ -0,0 +1,10 @@ +--- +image: "/src/assets/pic_phase_3.png" +imageAlt: "Illustration of crocodile and developers collaborating" +imageBgColor: "bg-crocoder-orange" +pill: "We finish your vibe-coded mvps" +title: "We'll help you finish it!" +checks: ["Solid logic", "Real backend", "Stable deployment", "Ready to launch"] +issues: [] +issueChecks: [] +--- diff --git a/apps/website/src/content/vibe_code_mvp_why_work_with_us/01_we_ship.md b/apps/website/src/content/vibe_code_mvp_why_work_with_us/01_we_ship.md new file mode 100644 index 00000000..5f17dfa1 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_why_work_with_us/01_we_ship.md @@ -0,0 +1,5 @@ +--- +image: "/src/assets/shipment.svg" +imageAlt: "Illustration of a box with check mark on it" +title: "We ship vibe-coded MVPs without rebuilding them from scratch." +--- diff --git a/apps/website/src/content/vibe_code_mvp_why_work_with_us/02_we_know.md b/apps/website/src/content/vibe_code_mvp_why_work_with_us/02_we_know.md new file mode 100644 index 00000000..964d4ea7 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_why_work_with_us/02_we_know.md @@ -0,0 +1,5 @@ +--- +image: "/src/assets/artificial_intelligence.svg" +imageAlt: "Illustration of a brain" +title: "We know your tools — GPT, Framer, Bubble, Supabase, Vercel, etc." +--- diff --git a/apps/website/src/content/vibe_code_mvp_why_work_with_us/03_we_speak.md b/apps/website/src/content/vibe_code_mvp_why_work_with_us/03_we_speak.md new file mode 100644 index 00000000..ea0119c5 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_why_work_with_us/03_we_speak.md @@ -0,0 +1,5 @@ +--- +image: "/src/assets/target-icon-correct.svg" +imageAlt: "Illustration of a target with arrow in its center" +title: "We speak product, not just code." +--- diff --git a/apps/website/src/content/vibe_code_mvp_why_work_with_us/04_we_prioritize.md b/apps/website/src/content/vibe_code_mvp_why_work_with_us/04_we_prioritize.md new file mode 100644 index 00000000..7a25c69b --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_why_work_with_us/04_we_prioritize.md @@ -0,0 +1,5 @@ +--- +image: "/src/assets/stopwatch.svg" +imageAlt: "Illustration of a target with arrow in its center" +title: "We prioritize speed, clarity, and clean handoff." +--- diff --git a/apps/website/src/content/vibe_code_mvp_why_work_with_us/05_we_build.md b/apps/website/src/content/vibe_code_mvp_why_work_with_us/05_we_build.md new file mode 100644 index 00000000..2b4a8800 --- /dev/null +++ b/apps/website/src/content/vibe_code_mvp_why_work_with_us/05_we_build.md @@ -0,0 +1,5 @@ +--- +image: "/src/assets/shield_check.svg" +imageAlt: "Illustration of a shield with check mark on it." +title: "We build with React, Next.js, Node.js, and modern web tech No fluff, no lock-in — just fast, solid delivery" +--- diff --git a/apps/website/src/pages/vibe-code-mvp.astro b/apps/website/src/pages/vibe-code-mvp.astro new file mode 100644 index 00000000..0e965323 --- /dev/null +++ b/apps/website/src/pages/vibe-code-mvp.astro @@ -0,0 +1,30 @@ +--- +import Footer from "../components/footer.astro"; +import Navigation from "../components/navigation.astro"; +import GetInTouch from "../components/vibe-code-mvp/GetInTouch.astro"; +import Hero from "../components/vibe-code-mvp/Hero.astro"; +import HowItWorks from "../components/vibe-code-mvp/HowItWorks.astro"; +import WhyWorkWithUs from "../components/vibe-code-mvp/WhyWorkWithUs.astro"; +import WorkWithUs from "../components/vibe-code-mvp/WorkWithUs.astro"; +import WorkWithUsDesktop from "../components/vibe-code-mvp/WorkWithUsDesktop.astro"; +import Base from "../layouts/base.astro"; +import "../styles/main.css"; + +const { ogImage = "https://www.crocoder.dev/homepage-metadata-img.png" } = + Astro.props; +--- + + + + + +
+ +
+ + + +