diff --git a/apps/gatsby/src/components/code-audit/ApplicationSteps.tsx b/apps/gatsby/src/components/code-audit/ApplicationSteps.tsx
new file mode 100644
index 0000000..419b248
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/ApplicationSteps.tsx
@@ -0,0 +1,67 @@
+import React from "react";
+import { ThreeCardSection } from "../general/ThreeCardSection.tsx";
+import { StaticImage } from "gatsby-plugin-image";
+
+import "./css/application-steps.css";
+import { useBookCallModal } from "../book-call/hooks/useBookCallModal.tsx";
+
+export const ApplicationSteps = () => {
+ const { modal, clickHandler } = useBookCallModal();
+
+ return (
+
+ {modal}
+
+
+ ),
+ heading: "Step 1: Book Your Code Audit",
+ paragraphs: [
+ "Book a convenient time to chat with our founder about the application you want to review and if a code audit is a fit, we’ll get you scheduled for your custom code audit.",
+ ],
+ },
+ {
+ icon: (
+
+ ),
+ heading: "Step 2: Get a detailed analysis",
+ paragraphs: [
+ "Our team dives deep into your software, uncovering bottlenecks and opportunities.",
+ ],
+ },
+ {
+ icon: (
+
+ ),
+ heading: "Step 3: Take action",
+ paragraphs: [
+ "Receive your detailed roadmap, complete with clear insights and actionable steps.",
+ ],
+ },
+ ],
+ }}
+ />
+
+ Book my launch call
+
+
+
+ );
+};
diff --git a/apps/gatsby/src/components/code-audit/CallToAction.tsx b/apps/gatsby/src/components/code-audit/CallToAction.tsx
new file mode 100644
index 0000000..e2c502d
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/CallToAction.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+import { useBookCallModal } from "../book-call/hooks/useBookCallModal.tsx";
+
+import "./css/custom-development-call-to-action.css";
+
+export const CallToAction = () => {
+ const { modal, clickHandler } = useBookCallModal();
+
+ return (
+
+ {modal}
+
+
Ready to get started?
+
+ Ready to transform your software project? Schedule your code audit with LaunchWare today.
+
+
+
+ Book Your Launch Call
+
+
+
+ );
+};
diff --git a/apps/gatsby/src/components/code-audit/CodeAuditHero.tsx b/apps/gatsby/src/components/code-audit/CodeAuditHero.tsx
new file mode 100644
index 0000000..97910f8
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/CodeAuditHero.tsx
@@ -0,0 +1,16 @@
+// STATUS: complete
+import React from "react";
+
+import "./css/custom-development-hero.css";
+
+export const CodeAuditHero = () => (
+
+
+
Turn Code Chaos into Seamless Success
+
+ Discover the power of expert code audits with LaunchWare. We help you navigate your software
+ challenges and set the stage for success.
+
+
+
+);
diff --git a/apps/gatsby/src/components/code-audit/EmbraceLaunchWare.tsx b/apps/gatsby/src/components/code-audit/EmbraceLaunchWare.tsx
new file mode 100644
index 0000000..570b80e
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/EmbraceLaunchWare.tsx
@@ -0,0 +1,22 @@
+import React from "react";
+import { StaticImage } from "gatsby-plugin-image";
+
+import "./css/embrace-launchware.css";
+
+export const EmbraceLaunchWare = () => (
+
+
+
+ Unlock your project’s potential with LaunchWare
+
+
With LaunchWare, you can:
+
+ Identify and tackle software bottlenecks head-on
+ Make informed decisions with transparent reporting
+ Enhance your software’s performance for a superior user experience
+ Recapture missed opportunities and steer your project towards success
+ Enjoy the peace of mind that comes with expert guidance
+
+
+
+);
diff --git a/apps/gatsby/src/components/code-audit/ExpertGuidance.tsx b/apps/gatsby/src/components/code-audit/ExpertGuidance.tsx
new file mode 100644
index 0000000..21d5426
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/ExpertGuidance.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+import { TextImageBlock } from "../general/TextImageBlock.tsx";
+import { StaticImage } from "gatsby-plugin-image";
+
+import "./css/we-are-with-you.css";
+
+export const ExpertGuidance = () => (
+
+
+ }
+ headingText="Expert guidance, in plain language"
+ text="We believe that you don’t need to be a tech whizz to understand your software. Our team speaks your language, simplifying complex tech terms and guiding you every step of the way."
+ webViewImagePosition="right"
+ />
+
+);
diff --git a/apps/gatsby/src/components/code-audit/HeroBullets.tsx b/apps/gatsby/src/components/code-audit/HeroBullets.tsx
new file mode 100644
index 0000000..432038c
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/HeroBullets.tsx
@@ -0,0 +1,44 @@
+import { faCheckCircle } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import React from "react";
+import { ThreeCardSection } from "../general/ThreeCardSection.tsx";
+
+import "./css/highlight-bullets.css";
+
+export const HeroBullets = () => {
+ const sectionContents = {
+ cards: [
+ {
+ heading: "Unlock code clarity",
+ icon: (
+
+ ),
+ },
+ {
+ heading: "Propel project progress",
+ icon: (
+
+ ),
+ },
+ {
+ heading: "Get momentum",
+ icon: (
+
+ ),
+ },
+ ],
+ };
+
+ return (
+
+ );
+};
diff --git a/apps/gatsby/src/components/code-audit/InformedDecisions.tsx b/apps/gatsby/src/components/code-audit/InformedDecisions.tsx
new file mode 100644
index 0000000..ea85cba
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/InformedDecisions.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+import { TextImageBlock } from "../general/TextImageBlock.tsx";
+import { StaticImage } from "gatsby-plugin-image";
+
+import "./css/partner-with-experts.css";
+
+export const InformedDecisions = () => (
+
+
+ }
+ headingText="Make informed decisions with clear insights"
+ text="We don’t just identify bottlenecks in your software, we illuminate the path forward. Our code audits equip you with a detailed roadmap to optimize your software, giving you the clarity you need to make confident decisions."
+ webViewImagePosition="left"
+ />
+
+);
diff --git a/apps/gatsby/src/components/code-audit/SeamlessSoftware.tsx b/apps/gatsby/src/components/code-audit/SeamlessSoftware.tsx
new file mode 100644
index 0000000..912913b
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/SeamlessSoftware.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+import { TextImageBlock } from "../general/TextImageBlock.tsx";
+import { StaticImage } from "gatsby-plugin-image";
+
+import "./css/hassle-free-solutions.css";
+
+export const SeamlessSoftware = () => (
+
+
+ }
+ headingText="Envision a world of seamless software"
+ text="Imagine your software humming along like a finely tuned engine, each line of code contributing to a perfectly synchronized rhythm. With LaunchWare’s code audits, that vision becomes your reality."
+ webViewImagePosition="right"
+ />
+
+);
diff --git a/apps/gatsby/src/components/code-audit/StruggleEndsHere.tsx b/apps/gatsby/src/components/code-audit/StruggleEndsHere.tsx
new file mode 100644
index 0000000..99c191e
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/StruggleEndsHere.tsx
@@ -0,0 +1,22 @@
+import { StaticImage } from "gatsby-plugin-image";
+import React from "react";
+import { TextImageBlock } from "../general/TextImageBlock.tsx";
+
+import "./css/no-more-juggling.css";
+
+export const StruggleEndsHere = () => (
+
+ }
+ headingText="Your software struggles end here"
+ text="We know the frustration of dealing with software projects that veer off course. Delayed timelines, budget overruns, and subpar functionality can feel like a tangled mess, hindering your progress."
+ webViewImagePosition="left"
+ />
+);
diff --git a/apps/gatsby/src/components/code-audit/css/application-steps.css b/apps/gatsby/src/components/code-audit/css/application-steps.css
new file mode 100644
index 0000000..d83a97c
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/application-steps.css
@@ -0,0 +1,21 @@
+.application-steps {
+ @apply parent-section;
+ @apply bg-launch-black;
+
+ & .three-card-section__heading-container {
+ @apply max-w-none flex-grow;
+ }
+
+ & .three-card-section__heading {
+ @apply text-white text-left w-full;
+ }
+}
+
+.application-steps__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.application-steps__image {
+ @apply h-16 w-14 items-center;
+}
diff --git a/apps/gatsby/src/components/code-audit/css/code-audit-hero.css b/apps/gatsby/src/components/code-audit/css/code-audit-hero.css
new file mode 100644
index 0000000..e0fdba7
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/code-audit-hero.css
@@ -0,0 +1,19 @@
+@import "../../../css/index.css";
+
+.code-audit-hero {
+ @apply parent-section;
+ @apply bg-launch-neutral-20;
+}
+
+.code-audit-hero__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.code-audit-hero__heading {
+ @apply text-5xl text-left md:text-center max-w-xl lg:max-w-3xl;
+}
+
+.code-audit-hero__text {
+ @apply text-left md:text-center text-launch-black-80 max-w-xl lg:max-w-3xl;
+}
diff --git a/apps/gatsby/src/components/code-audit/css/custom-development-call-to-action.css b/apps/gatsby/src/components/code-audit/css/custom-development-call-to-action.css
new file mode 100644
index 0000000..1cb133a
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/custom-development-call-to-action.css
@@ -0,0 +1,23 @@
+@import "../../../css/index.css";
+
+.custom-development-call-to-action {
+ @apply parent-section;
+ @apply bg-launch-neutral-20;
+}
+
+.custom-development-call-to-action__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.custom-development-call-to-action__heading {
+ @apply text-5xl text-center max-w-xl lg:max-w-3xl;
+}
+
+.custom-development-call-to-action__uppercase {
+ @apply uppercase;
+}
+
+.custom-development-call-to-action__text {
+ @apply text-center text-launch-black-80;
+}
diff --git a/apps/gatsby/src/components/code-audit/css/embrace-launchware.css b/apps/gatsby/src/components/code-audit/css/embrace-launchware.css
new file mode 100644
index 0000000..66529d1
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/embrace-launchware.css
@@ -0,0 +1,20 @@
+@import "../../../css/index.css";
+
+.embrace-launchware {
+ @apply parent-section;
+ @apply bg-launch-neutral-30;
+}
+
+.embrace-launchware__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.embrace-launchware__icon {
+ @apply inline;
+ @apply float-left;
+}
+
+.embrace-launchware__list {
+ /* @apply red-checkmark */
+}
diff --git a/apps/gatsby/src/components/code-audit/css/hassle-free-solutions.css b/apps/gatsby/src/components/code-audit/css/hassle-free-solutions.css
new file mode 100644
index 0000000..42943a8
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/hassle-free-solutions.css
@@ -0,0 +1,20 @@
+@import "../../../css/index.css";
+
+.hassle-free-solutions {
+ @apply parent-section;
+ @apply bg-launch-neutral-30;
+}
+
+.hassle-free-solutions__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.hassle-free-solutions__icon {
+ @apply inline;
+ @apply float-left;
+}
+
+.hassle-free-solutions__list {
+ /* @apply red-checkmark */
+}
diff --git a/apps/gatsby/src/components/code-audit/css/highlight-bullets.css b/apps/gatsby/src/components/code-audit/css/highlight-bullets.css
new file mode 100644
index 0000000..437802f
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/highlight-bullets.css
@@ -0,0 +1,23 @@
+@import "../../../css/index.css";
+
+.highlight-bullets {
+ @apply parent-section;
+ @apply bg-launch-neutral-30;
+}
+
+.highlight-bullets__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+
+ > .three-card-section__cards-container {
+ @apply pt-0 pb-0;
+ }
+
+ & .three-card-section__card-heading {
+ @apply pt-0;
+ }
+}
+
+.highlight-bullets__icon {
+ @apply inline w-12 align-middle justify-center;
+}
diff --git a/apps/gatsby/src/components/code-audit/css/no-more-juggling.css b/apps/gatsby/src/components/code-audit/css/no-more-juggling.css
new file mode 100644
index 0000000..a0797f7
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/no-more-juggling.css
@@ -0,0 +1,20 @@
+@import "../../../css/index.css";
+
+.no-more-juggling {
+ /* @apply parent-section;
+ @apply bg-launch-neutral-30 py-0; */
+}
+
+.no-more-juggling__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.no-more-juggling__icon {
+ @apply inline;
+ @apply float-left;
+}
+
+.no-more-juggling__list {
+ /* @apply red-checkmark */
+}
diff --git a/apps/gatsby/src/components/code-audit/css/partner-with-experts.css b/apps/gatsby/src/components/code-audit/css/partner-with-experts.css
new file mode 100644
index 0000000..949a6fd
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/partner-with-experts.css
@@ -0,0 +1,20 @@
+@import "../../../css/index.css";
+
+.partner-with-experts {
+ @apply parent-section;
+ @apply bg-launch-neutral-30;
+}
+
+.partner-with-experts__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.partner-with-experts__icon {
+ @apply inline;
+ @apply float-left;
+}
+
+.partner-with-experts__list {
+ /* @apply red-checkmark */
+}
diff --git a/apps/gatsby/src/components/code-audit/css/testimonials.css b/apps/gatsby/src/components/code-audit/css/testimonials.css
new file mode 100644
index 0000000..29583df
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/testimonials.css
@@ -0,0 +1,61 @@
+@import "../../../css/index.css";
+
+.testimonials {
+ @apply parent-section;
+ @apply bg-white relative z-30 md:overflow-clip;
+}
+
+.testimonials__contents {
+ @apply contents-container;
+ @apply relative;
+}
+
+div.testimonials__decorative-square {
+ @apply absolute -z-10 -right-64 md:-top-72 hidden md:inline;
+}
+
+.testimonials__text-container {
+ @apply flex flex-col md:items-start md:pr-4;
+ @apply text-left;
+}
+
+.testimonials__heading-container {
+ @apply text-center mx-auto;
+}
+
+.testimonials__heading {
+ @apply text-4xl mb-6 px-6 md:px-0;
+}
+
+.testimonials__cards-container {
+ @apply w-full max-w-2xl grid grid-cols-1 md:grid-cols-2;
+ @apply lg:space-x-6 space-y-4 lg:space-y-0 items-start;
+}
+
+.testimonials__text {
+ @apply text-base text-launch-black-80 px-6 md:px-0;
+}
+
+.testimonials__card {
+ @apply flex flex-col space-y-4 p-6 bg-launch-neutral-20 rounded-md;
+}
+
+.testimonials__name {
+ @apply flex flex-row space-x-1;
+}
+
+.testimonials__icon {
+ @apply w-10 shrink-0;
+}
+
+.testimonials__semibold {
+ @apply font-semibold;
+}
+
+.testimonials__image-container {
+ @apply py-8 md:p-0;
+}
+
+.testimonials__image {
+ @apply rounded-image;
+}
diff --git a/apps/gatsby/src/components/code-audit/css/we-are-with-you.css b/apps/gatsby/src/components/code-audit/css/we-are-with-you.css
new file mode 100644
index 0000000..06e4aeb
--- /dev/null
+++ b/apps/gatsby/src/components/code-audit/css/we-are-with-you.css
@@ -0,0 +1,23 @@
+@import "../../../css/index.css";
+
+.we-are-with-you {
+ @apply parent-section;
+ @apply bg-launch-neutral-20;
+}
+
+.we-are-with-you__contents {
+ @apply contents-container;
+ @apply flex-col space-y-6;
+}
+
+.we-are-with-you__heading {
+ @apply text-5xl text-center max-w-xl lg:max-w-3xl;
+}
+
+.we-are-with-you__uppercase {
+ @apply uppercase;
+}
+
+.we-are-with-you__text {
+ @apply text-center text-launch-black-80;
+}
diff --git a/apps/gatsby/src/pages/services/code-audit.tsx b/apps/gatsby/src/pages/services/code-audit.tsx
new file mode 100644
index 0000000..bde64ed
--- /dev/null
+++ b/apps/gatsby/src/pages/services/code-audit.tsx
@@ -0,0 +1,46 @@
+import React from "react";
+import { PageProps } from "gatsby";
+
+import { Layout } from "../../components/layout/Layout.tsx";
+import { HeadDefaults } from "../../components/layout/HeadDefaults.tsx";
+import { CodeAuditHero } from "../../components/code-audit/CodeAuditHero.tsx";
+import { HeroBullets } from "../../components/code-audit/HeroBullets.tsx";
+import { StruggleEndsHere } from "../../components/code-audit/StruggleEndsHere.tsx";
+import { SeamlessSoftware } from "../../components/code-audit/SeamlessSoftware.tsx";
+import { InformedDecisions } from "../../components/code-audit/InformedDecisions.tsx";
+import { ExpertGuidance } from "../../components/code-audit/ExpertGuidance.tsx";
+import { ApplicationSteps } from "../../components/code-audit/ApplicationSteps.tsx";
+import { EmbraceLaunchWare } from "../../components/code-audit/EmbraceLaunchWare.tsx";
+import { CallToAction } from "../../components/code-audit/CallToAction.tsx";
+
+export const Head = () => (
+ <>
+ LaunchWare Services: Custom Development & Staff Augmentation
+
+
+
+ >
+);
+const CodeAuditPage = (pageProps: PageProps) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default CodeAuditPage;