From 0789f04a9f78a6bd2edb0e708ee34de166bf8667 Mon Sep 17 00:00:00 2001 From: Casi Newell <19928431+CassandraNewell@users.noreply.github.com> Date: Fri, 26 Jul 2024 19:55:02 +0200 Subject: [PATCH 1/2] add custom development page --- .../custom-development/ApplicationSteps.tsx | 65 ++++++++++++++++++ .../CustomDevelopmentCallToAction.tsx | 24 +++++++ .../CustomDevelopmentHero.tsx | 20 ++++++ .../custom-development/EmbraceLaunchWare.tsx | 42 +++++++++++ .../HassleFreeSolutions.tsx | 24 +++++++ .../custom-development/HeroBullets.tsx | 44 ++++++++++++ .../custom-development/NoMoreJuggling.tsx | 22 ++++++ .../custom-development/PartnerWithExperts.tsx | 24 +++++++ .../custom-development/Testimonials.tsx | 53 ++++++++++++++ .../custom-development/WeAreWithYou.tsx | 24 +++++++ .../css/application-steps.css | 21 ++++++ .../css/custom-development-call-to-action.css | 23 +++++++ .../css/custom-development-hero.css | 19 +++++ .../css/embrace-launchware.css | 20 ++++++ .../css/hassle-free-solutions.css | 20 ++++++ .../css/highlight-bullets.css | 23 +++++++ .../css/no-more-juggling.css | 20 ++++++ .../css/partner-with-experts.css | 20 ++++++ .../custom-development/css/testimonials.css | 61 ++++++++++++++++ .../css/we-are-with-you.css | 23 +++++++ .../src/components/general/TextImageBlock.tsx | 36 ++++++++++ .../components/general/ThreeCardSection.tsx | 52 +++++++++----- .../general/css/text-image-block.css | 20 ++++++ .../general/css/three-card-section.css | 8 +++ .../gatsby/src/components/icons/chat-icon.png | Bin 0 -> 3423 bytes .../src/components/icons/clipboard-icon.png | Bin 0 -> 2566 bytes .../gatsby/src/components/icons/red-check.png | Bin 0 -> 272 bytes .../components/icons/rocket-blastoff-icon.png | Bin 0 -> 2627 bytes .../components/icons/white-check-on-black.png | Bin 0 -> 500 bytes .../src/pages/services/custom-development.tsx | 48 +++++++++++++ apps/gatsby/tailwind.config.js | 4 ++ 31 files changed, 744 insertions(+), 16 deletions(-) create mode 100644 apps/gatsby/src/components/custom-development/ApplicationSteps.tsx create mode 100644 apps/gatsby/src/components/custom-development/CustomDevelopmentCallToAction.tsx create mode 100644 apps/gatsby/src/components/custom-development/CustomDevelopmentHero.tsx create mode 100644 apps/gatsby/src/components/custom-development/EmbraceLaunchWare.tsx create mode 100644 apps/gatsby/src/components/custom-development/HassleFreeSolutions.tsx create mode 100644 apps/gatsby/src/components/custom-development/HeroBullets.tsx create mode 100644 apps/gatsby/src/components/custom-development/NoMoreJuggling.tsx create mode 100644 apps/gatsby/src/components/custom-development/PartnerWithExperts.tsx create mode 100644 apps/gatsby/src/components/custom-development/Testimonials.tsx create mode 100644 apps/gatsby/src/components/custom-development/WeAreWithYou.tsx create mode 100644 apps/gatsby/src/components/custom-development/css/application-steps.css create mode 100644 apps/gatsby/src/components/custom-development/css/custom-development-call-to-action.css create mode 100644 apps/gatsby/src/components/custom-development/css/custom-development-hero.css create mode 100644 apps/gatsby/src/components/custom-development/css/embrace-launchware.css create mode 100644 apps/gatsby/src/components/custom-development/css/hassle-free-solutions.css create mode 100644 apps/gatsby/src/components/custom-development/css/highlight-bullets.css create mode 100644 apps/gatsby/src/components/custom-development/css/no-more-juggling.css create mode 100644 apps/gatsby/src/components/custom-development/css/partner-with-experts.css create mode 100644 apps/gatsby/src/components/custom-development/css/testimonials.css create mode 100644 apps/gatsby/src/components/custom-development/css/we-are-with-you.css create mode 100644 apps/gatsby/src/components/general/TextImageBlock.tsx create mode 100644 apps/gatsby/src/components/general/css/text-image-block.css create mode 100644 apps/gatsby/src/components/icons/chat-icon.png create mode 100644 apps/gatsby/src/components/icons/clipboard-icon.png create mode 100644 apps/gatsby/src/components/icons/red-check.png create mode 100644 apps/gatsby/src/components/icons/rocket-blastoff-icon.png create mode 100644 apps/gatsby/src/components/icons/white-check-on-black.png create mode 100644 apps/gatsby/src/pages/services/custom-development.tsx diff --git a/apps/gatsby/src/components/custom-development/ApplicationSteps.tsx b/apps/gatsby/src/components/custom-development/ApplicationSteps.tsx new file mode 100644 index 0000000..f47d83f --- /dev/null +++ b/apps/gatsby/src/components/custom-development/ApplicationSteps.tsx @@ -0,0 +1,65 @@ +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 ( +
+ Ready to get started? Let’s schedule a call and begin your journey to software success. +
+ + ++ Unleash the potential of your ideas with LaunchWare, your go-to team for custom software + development. +
++ Ready to transform your software idea into a successful application? Here’s what you can + look forward to when you partner with LaunchWare: +
++ “They showed up and did exactly what I thought they were going to do and + I’m thrilled.” +
+Catherine Headen
+Director, Product & Design
++ “A strong sense of vision about the process [without being] religious about any + specific aspect. They have a strong point of view while remaining open to change their + minds.” ” +
+David Evans
+VP of Product
+{text}
+- {paragraph} -
- ))} -+ {paragraph} +
+ ))} +pXivI{+LMVB+HVt4 zI+%T6JD-n;In_0nRJI;1PlB3b*gt*uS?w|p3ddw=YnX%^*T6^yRT6&I;@M)p?D8@c zVQbCu`#gs%_>EPiqwvbpr4!CnkCjYy$&-?b!26x7pT>@nMyOD72Up}K;!hjHlsil9@e&FRc6`Q z9Z(D&(wm1!lo*rplv4WQd&Bu@&Q%jPn#ogHCDgjjwl5+|*;!A>3L%Xi#dVc&`XO(w zpkq~2ik&@6!lmAdb(YY6?lM_x_*)?wFT308Pjuag&5R9}Kf!&`TW8k{?O~?uv%PCJ z#BAiWN30O#*YEsDh*?7p@GvCY;h_(P-eY_slk~%$gI>jTSXJQJaWX8GdLorl;!9oD zdJ@`U8+^`G;^KF#G#OhZ=MIaB*R0P3UcjuxWx1rggkRpst*!H~fH*u6eKT8wdowdj zw8Yk%WmEjDM?H6T7HeR0RYqYdGM-9kbfC5P?zBXgAdgaEcem;b9C|y)ISW$w9~T!P ze;$0obt2l*CQ3yG(gpUSi ^yJk-7#LQNGz%uB-ZrLdfa?bwb4cy{4&s9xBa*> z?TT2#NFqY3PhSo;49CQk#=9&lB2sXtaH>u18h?mhuO>fGb_{wjI4Iw~`2kGk(zm>A+c=?iQp&28NcYW9z9YXY|43(y+u z;#^7PL{s9ksFsvltB&0Mlhp;>k7++Giy6X)#cp@>388>9K{^n+bE`4u*`=|Yr_%0S zohuCCA{)?B)l48LYDD%uwZqnq1Szt(+ E)r?_CS=q#K8 qHCt Q)Q9? z%p%~X_H6QXVwW7IFqMLsS!^&$x+;|+`4Rc>+3i9D0z0l{As9f607KhN%`+0-ElP+t z@wb!0oYUp=+qJ-933L{Y_a1n6S71-W63DMmKpl&_)5WaYTw(iX64GrduhzEWz5qhJ zVrIhM084n{I^}0GDy>3uM2K%z*|j L(XUOoo*nWFC5F^bxh`WRUXosQQ~ WYA z=~fgT_>yUt_kLSh3A!HiMg3%}jP2X@OahcYLdu7XAucBmJ*t=ESj83ie;ZAn-xS@m z$xuc$OGe9nwYr*r065sk$@Qrzk_6uw$et3G8I}fK`hobR&rU`?1|!!0;s{L=8|0p| z$hn)JYnRny9XO#F8lN6l_P%~xV I}~aPPdwU`KVOq|m==QahQW@y^4;Uco-@QgGAf)geRaQkpkc~)No=xP<@|L} z+HuH6ahwHS{0kBj8zATyWm;VEwe0}kAr(8*xJHmJ&wQ&}(*K8^g&T1I%HL_cr`b_; z%v T&C-2I=(tBQz2 zvVCw)&x-iX@;Y+*HoY#IZwo>&dtZ)-u3hZnjxR$C5}bByj^<*@ge}6U_>MVW^N2DB zn^9#BSFE)-`Hv)JjXzy;WGIEdh1?vOltp5-xxgFI(6zjmXuC>!ajtG}MTbRdp5nnB z%8Kj5VWHh-d2qg~#zm(r-p$c0R*HGC>8~U;SHqK_9(|*D*74q^ZrW_5BN#fpKl|cX zSlzZRJL!rk9u|LW)>aHEYKprhVlmdo(`v@C;D(j)(;1m3E5l;Zjdwtp+6qzRsC>Q> zWg<(h<%(tkC%7?Zh%cwRAa3EdU=b$ZHy 2}wNM|FS5+1d=P z#%N!;k6i4eFQ*4m;Fx9@H{NoZP|G1+JfMw1T}Wj ~hPS!pR?|ukV A?2j p( z3UD>#iZaC&l+(IPsE)nL^Vyy{rs9c0euKyxhDqlU+2Fjxer$@$_R5S^_FJ3}T2oj& zQNRQy3&|k=r`5s0{#3kiU<{ r1Z;7!iYHIf+ZF*KqlEsZ8ICBrM?ip&tw?Sn z4}L R9}&mve)0?Cn1WMaIqEpnAm=G$7d34RMpgV3C%llyk>G z38nECYDGh_&?!-YL~JS4%cEBv#_eiRA)4~jft#$bZo%-oz=qY`?@K=U?MG*%%_|Z4 z%Atv`Dz&KUm$=Hpdm7MW$G^j{jUd;tzEnGL#(DiO#6x1dr+DAVvGcrfaa`L<(*;fX zR)WD#C3p8+ba76%tl=}O?5Qs%5lao)I)Sl&)1Slww;iSHVqivm39n&@ELEQ?Sz&v= z>7bu?n(!`g#iY11{I7V8-eNL+fVENEZydd+yw x0)7=TgP$0N6T{&ZV#W8C0BEqU5w$+-7xN4Z0g<0KVpH|nwJ{H{o6 zbC4Nkb~Dt>@Qv<0y}!o&@lhS2!b%<%WXMK-&DG6@j|sG pB;9N? fIpT>~e~a0dLk=^p+pzof?&KM~pBIMURVDWVZ)>2k zt8jSZcFp>jKgU~jgfP8S_Nme;2FHyec2-P39AqAGCUFaHXirbFR+orBgRXl@>Q9rr zL@SpM`7dm*odqu99rzi?cmfF_RNB*=q8+i_8^ CFJOH{xIx!T>fZNT@|k=AbN3)2N&UnxA$g{j0>p!2hUm5Nd`z2! zeQlgyp_(}1(8Mt+c)^5fNiHTsIASf@^i>0qOL@)UJnbGn7=G#`S}v@mq_^{4Z*)Ug zxJgcpjRl+p9gaQjB~-$ij#V6bH_PH3*Du=cV@09iNG8CA+%Ln(oN~0 QygHanseZ7~hmW8&P5y(4UEpPt!+L0EgwUy1tXmQc@`^Dtfzj^76AVcr(uZ z71qN>x%cyVou?L!)46I`bPYN9{J@BenI zTW4^s7>z PIJr)^ec{+&%AIuE1QpKO23;LJ)7cae<=d zmPMJ8qK|LF(L6>yvcZg(6sh&M3SAcq*&?6kA|V!+AID)pIt|X~TlPnjZsBJNy{onH ztTl0ALdD$3N7nq#Id0kbBRA_2jIML}7E7w>{g oYM+bYL?Lp zfkC?O=S9cgG%tN{Yf^xf`CMv$4ZjjnE3sZO V&$TQe|`UGM&h;KmY19_4W W zY6|sFBYR@t5cm*_Fq0pJ^Ky7-omum1FFs}SM1&;qAimX{)cO@4+hs{GE!Jz;)ISmb zSMg3RG|1d0^qXU2*Nqnk!zQJoS)RR~j36^qgK1EoKR7>r_7PSsl @LK zV!~Flu1clWt~Ztwf_FNi0hsv|`cqPtN_&2!Q1Ag}<^)c1{6SX6^P4G>7O7~^cs5*k zLNw%Hl@D{QpxrRXuUvh)Z=`&a$P)w(Dc3OLISoE9fy7f=K|lWF2!_Zo!jtHRlP%4+ z+nHb c`K<$i}Q zQEl94v_^63 -9t`PzU~my+j|g1+mMHO*4Ri@R(=S5PUnPXP@aU*~6D9N+i?u1{;o*EOkbP}kiTd(v`^SsSc%h=LdufY|B)vmLpHw9kiUhCJ zZHi=eA=74i#>8=j$sVPczzbLp-y+1s8ShmzDZ;T78gxfc3@Aj@9?Z {Hk0E5W 724E z(*wPymA$>!$0L6Tg?9_T)oT$FGxXrs=o6)YP!9L`viH9Q M9N)W#yZpdGU_`{bzTwx~BC(b~_w`r)YHYN3!+ytpL|<9GH1 ifxiUia&Iud@B zOkw;5{kt=gqeG?Sc;fQ?Gu%2|Xmg@*5)~8#f$%uhvPiZlA~_=hc6+UQVtSi8H!0{; zNb3O -@WUbFAd!p== `ezXc^dpRe2K8aSD0 zW4^J9-IKE~`kKRGrEwxPBmLdA(EQ9?^oT^B>s4I6JL$vWJ>jR%Ri?P$T`>)ROR@h? gPyY^6hr8&lJOjtV7P;qKe+M|iS! A z%AO!S!qQrvERCgdP<}1nj!( g8OAhTlVX%1XoJCPY=^njFbteB z1RV;}UW}m>vy5>r>7R~Jic!Wu@CP~N+#vF!nY4a9kuVGHD1)$&W=A0jD^WYh zD7X Bf9G0&D0000 ( + <> + LaunchWare Services: Custom Development & Staff Augmentation + + ++ > +); +const CustomDevelopmentPage = (pageProps: PageProps) => { + return ( + + + ); +}; + +export default CustomDevelopmentPage; diff --git a/apps/gatsby/tailwind.config.js b/apps/gatsby/tailwind.config.js index e039ed4..87f4f17 100644 --- a/apps/gatsby/tailwind.config.js +++ b/apps/gatsby/tailwind.config.js @@ -33,6 +33,10 @@ module.exports = { "launch-neutral-30": "#F5F5F5", "launch-primary-10": "#FFF7F6", }, + // I've tried pointing at the pre- and post-compilation paths, but it doesn't work + // listStyleImage: { + // "red-checkmark": 'url("/apps/gatsby/src/images/red-check.png")', + // }, }, }, fontDisplay: { From 49619d0f6211d1b3c4eb860199934ade18443bae Mon Sep 17 00:00:00 2001 From: Casi Newell <19928431+CassandraNewell@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:52:35 +0200 Subject: [PATCH 2/2] code audit text --- .../code-audit/ApplicationSteps.tsx | 67 +++++++++++++++++++ .../components/code-audit/CallToAction.tsx | 24 +++++++ .../components/code-audit/CodeAuditHero.tsx | 16 +++++ .../code-audit/EmbraceLaunchWare.tsx | 22 ++++++ .../components/code-audit/ExpertGuidance.tsx | 24 +++++++ .../src/components/code-audit/HeroBullets.tsx | 44 ++++++++++++ .../code-audit/InformedDecisions.tsx | 24 +++++++ .../code-audit/SeamlessSoftware.tsx | 24 +++++++ .../code-audit/StruggleEndsHere.tsx | 22 ++++++ .../code-audit/css/application-steps.css | 21 ++++++ .../code-audit/css/code-audit-hero.css | 19 ++++++ .../css/custom-development-call-to-action.css | 23 +++++++ .../code-audit/css/embrace-launchware.css | 20 ++++++ .../code-audit/css/hassle-free-solutions.css | 20 ++++++ .../code-audit/css/highlight-bullets.css | 23 +++++++ .../code-audit/css/no-more-juggling.css | 20 ++++++ .../code-audit/css/partner-with-experts.css | 20 ++++++ .../code-audit/css/testimonials.css | 61 +++++++++++++++++ .../code-audit/css/we-are-with-you.css | 23 +++++++ apps/gatsby/src/pages/services/code-audit.tsx | 46 +++++++++++++ 20 files changed, 563 insertions(+) create mode 100644 apps/gatsby/src/components/code-audit/ApplicationSteps.tsx create mode 100644 apps/gatsby/src/components/code-audit/CallToAction.tsx create mode 100644 apps/gatsby/src/components/code-audit/CodeAuditHero.tsx create mode 100644 apps/gatsby/src/components/code-audit/EmbraceLaunchWare.tsx create mode 100644 apps/gatsby/src/components/code-audit/ExpertGuidance.tsx create mode 100644 apps/gatsby/src/components/code-audit/HeroBullets.tsx create mode 100644 apps/gatsby/src/components/code-audit/InformedDecisions.tsx create mode 100644 apps/gatsby/src/components/code-audit/SeamlessSoftware.tsx create mode 100644 apps/gatsby/src/components/code-audit/StruggleEndsHere.tsx create mode 100644 apps/gatsby/src/components/code-audit/css/application-steps.css create mode 100644 apps/gatsby/src/components/code-audit/css/code-audit-hero.css create mode 100644 apps/gatsby/src/components/code-audit/css/custom-development-call-to-action.css create mode 100644 apps/gatsby/src/components/code-audit/css/embrace-launchware.css create mode 100644 apps/gatsby/src/components/code-audit/css/hassle-free-solutions.css create mode 100644 apps/gatsby/src/components/code-audit/css/highlight-bullets.css create mode 100644 apps/gatsby/src/components/code-audit/css/no-more-juggling.css create mode 100644 apps/gatsby/src/components/code-audit/css/partner-with-experts.css create mode 100644 apps/gatsby/src/components/code-audit/css/testimonials.css create mode 100644 apps/gatsby/src/components/code-audit/css/we-are-with-you.css create mode 100644 apps/gatsby/src/pages/services/code-audit.tsx 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} ++ ); +}; 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 ( ++++ ), + 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.", + ], + }, + ], + }} + /> + + + {modal} ++ ); +}; 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 = () => ( +++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/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 = () => ( +++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/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 = () => ( ++++ 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/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: ( ++ } + 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" + /> + + ), + }, + { + 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 = () => ( ++++ ++); 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="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/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="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" + /> + + } + 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;+ + + + + + + + +