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.", + ], + }, + ], + }} + /> + +
+
+ ); +}; 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. +

+ + +
+
+ ); +}; 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:

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