Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

2 changes: 1 addition & 1 deletion .prettierrc → .prettierrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
export default config = {
"printWidth": 100,
"semi": true
}
5 changes: 5 additions & 0 deletions apps/gatsby/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
node_modules
public
.cache
static/fonts
tailwind.config.js
41 changes: 33 additions & 8 deletions .estlintrc.ts → apps/gatsby/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,48 @@
export default {
root: true,
// import rootConfig from "../../.eslintrc";

// export default {
// ...rootConfig,
// };

// basic .eslintrc.js compatible with react prettier and typescript
module.exports = {
overrides: [
{
files: ["*.ts", "*.tsx"],
processor: "@graphql-eslint/graphql",

// Specifies the ESLint parser for TypeScript
parser: "@typescript-eslint/parser",
extends: [
"@launchware/eslint-config-react",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"@tanstack/query",
],
settings: {
react: {
version: "detect",
},
},
env: {
browser: true,
node: true,
es6: true,
},
settings: {
react: {
version: 'detect'
}
plugins: ["@typescript-eslint", "react", "@tanstack/query"],
parserOptions: {
ecmaFeatures: {
jsx: true,
},
// Allows for the parsing of modern ECMAScript features
ecmaVersion: 2018,
// Allows for the use of imports
sourceType: "module",
},
rules: {
// Disable prop-types as we use TypeScript for type checking
"react/prop-types": "off",
"react/jsx-uses-vars": "error",
"react/jsx-uses-react": "error",
"react/require-default-props": "off",
},
},
{
Expand Down
5 changes: 5 additions & 0 deletions apps/gatsby/.prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// This file exists to facilitate development in VSCode with the Prettier extension
// and the gatsby dir as the project root (the extension cannot read outside the root dir)
import config from "../../.prettierrc.js";

export default config
3 changes: 2 additions & 1 deletion apps/gatsby/gatsby-browser.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
console.log("in gatsby browser")
import "./src/css/index.css";
// eslint-disable-next-line no-console
console.log("in gatsby browser");
8 changes: 8 additions & 0 deletions apps/gatsby/gatsby-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,14 @@ const config: GatsbyConfig = {
icon: `src/images/launchware-favicon.png`, // This path is relative to the root of the site.
},
},
{
resolve: "gatsby-plugin-eslint",
options: {
extensions: ["js", "jsx", "ts", "tsx"],
exclude: ["node_modules", ".cache", "public"],
stages: ["develop"],
},
},
// {
// resolve: `gatsby-plugin-feed`,
// options: {
Expand Down
3 changes: 3 additions & 0 deletions apps/gatsby/gatsby-node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
* See: https://www.gatsbyjs.com/docs/reference/config-files/gatsby-node/
*/


// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require(`path`);
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { createFilePath } = require(`gatsby-source-filesystem`);

// Define the template for blog post
Expand Down
6 changes: 2 additions & 4 deletions apps/gatsby/gatsby-ssr.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,13 @@ const fonts = [
// "/fonts/Inter/Inter-Thin.ttf",
]
export const onRenderBody = ({ setHeadComponents, setHtmlAttributes }) => {
const links = fonts.map((font) => {
return <link
const links = fonts.map((font) => <link
rel="preload"
href={font}
as="font"
crossOrigin="anonymous"
key={font}
/>
})
/>)

const userCentricLinks = [
<link rel="preconnect" href="//app.usercentrics.eu" key="usercentrics-app" />,
Expand Down
6 changes: 3 additions & 3 deletions apps/gatsby/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
"develop": "netlify dev",
"develop:gatsby": "gatsby develop",
"lint": "pnpm run lint:syntax && pnpm run lint:style",
"lint:syntax": "eslint",
"lint:style": "prettier -u -c ./src/**/*.**",
"lint:syntax": "eslint .",
"lint:style": "prettier -u -c ./src",
"start": "gatsby develop",
"serve": "gatsby serve",
"typecheck": "tsc --noEmit"
Expand Down Expand Up @@ -70,7 +70,7 @@
"devDependencies": {
"@graphql-eslint/eslint-plugin": "^3.18.0",
"@launchware/eslint-config-react": "0.0.3",
"@tanstack/eslint-plugin-query": "^4.34.1",
"@tanstack/eslint-plugin-query": "^4.38.0",
"@types/node": "^18.15.8",
"@types/react": "^18.0.29",
"@types/react-dom": "^18.0.11",
Expand Down
1 change: 1 addition & 0 deletions apps/gatsby/src/api-client/getApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import axios, { AxiosInstance } from "axios";

export class ApiClient {
private _client: AxiosInstance;

static instance: ApiClient;

private constructor() {
Expand Down
6 changes: 2 additions & 4 deletions apps/gatsby/src/api-client/hooks/useApiClient.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import { ApiClient } from "../getApiClient"
import { ApiClient } from "../getApiClient";

export const useApiClient = () => {
return ApiClient.getInstance().client
}
export const useApiClient = () => ApiClient.getInstance().client;
6 changes: 3 additions & 3 deletions apps/gatsby/src/components/about-page/AboutHero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import React from "react";

import "./css/about-hero.css";

export const AboutHero = () => (
<div className="about-hero">
export function AboutHero() {
return <div className="about-hero">
<div className="about-hero__contents">
<h1 className="about-hero__heading">Too many software projects fail.</h1>
<p className="about-hero__text">Your vision deserves to see the light of day</p>
</div>
</div>
);
}
16 changes: 8 additions & 8 deletions apps/gatsby/src/components/about-page/BetterWay.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import React from "react";

import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faCheck } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { StaticImage } from "gatsby-plugin-image";

import { useBookCallModal } from "../book-call/hooks/useBookCallModal";
import "./css/better-way.css";

export const BetterWay = () => {
export function BetterWay() {
const { modal, clickHandler } = useBookCallModal();

return (
Expand All @@ -22,18 +22,18 @@ export const BetterWay = () => {
<h2 className="better-way__heading">LaunchWare has found a better way.</h2>
<p className="better-way__text">
Years ago, we had enough with seeing audacious visions unrealized. For the past 22
years, we've helped dozens of people just like you cure what's ailing their software
years, we&rsquo;ve helped dozens of people just like you cure what&rsquo;s ailing their software
development process and get their software shipped.
</p>

<figure className="better-way__list">
<figcaption>Imagine what's possible for your software:</figcaption>
<figcaption>Imagine what&rsquo;s possible for your software:</figcaption>
<ul>
<li className="better-way__list-item">
<FontAwesomeIcon height="1rem" className="better-way__check" icon={faCheck} />
<span>
Clear, written understanding of product objectives and how it contributes to the
company's strategy
company&rsquo;s strategy
</span>
</li>
<li className="better-way__list-item">
Expand All @@ -43,7 +43,7 @@ export const BetterWay = () => {
<li className="better-way__list-item">
<FontAwesomeIcon height="1rem" className="better-way__check" icon={faCheck} />
<span>
Consistent backlog refinement so that engineers have clarity on what they're
Consistent backlog refinement so that engineers have clarity on what they&rsquo;re
building
</span>
</li>
Expand All @@ -65,7 +65,7 @@ export const BetterWay = () => {
</figure>

<p className="better-way__text">
At LaunchWare, that's the reality we're creating for all of our clients. We're committed
At LaunchWare, that&rsquo;s the reality we&rsquo;re creating for all of our clients. We&rsquo;re committed
to doing the same for you, so that you can{" "}
<span className="better-way__semibold">stop stressing and start shipping.</span>
</p>
Expand All @@ -86,4 +86,4 @@ export const BetterWay = () => {
{modal}
</div>
);
};
}
16 changes: 9 additions & 7 deletions apps/gatsby/src/components/about-page/Leaders.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
import React from "react";

import { faLinkedin } from "@fortawesome/free-brands-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { StaticImage } from "gatsby-plugin-image";

import { useBookCallModal } from "../book-call/hooks/useBookCallModal";

import "./css/leaders.css";
import { StaticImage } from "gatsby-plugin-image";

export const Leaders = () => {
export function Leaders() {
const { modal, clickHandler } = useBookCallModal();

return (
<div className="leaders">
{modal}
<div className="leaders__contents">
<div className="leaders__heading-container">
<h2 className="leaders__heading">Meet LaunchWare's Founder</h2>
<p></p>
<h2 className="leaders__heading">Meet LaunchWare&rsquo;s Founder</h2>
<p />
</div>
<div className="leaders__grid">
<div className="leaders__card">
Expand Down Expand Up @@ -50,11 +52,11 @@ export const Leaders = () => {
non-technical individuals face when navigating these challenges.
</p>
<p className="leaders__text">
However, Dan isn’t just an empathetic ear. He's a solutions architect. Equipped with
However, Dan isn’t just an empathetic ear. He&rsquo;s a solutions architect. Equipped with
a Computer Science degree from Worcester Polytechnic Institute, his resume includes
a role as a Director of Engineering and 15 rich years of consulting. He’s also a
teacher at heart, having helped train over 1000 Software Engineers via Launch
Academy. Partnering with Dan means you aren't merely crafting software; you're
Academy. Partnering with Dan means you aren&rsquo;t merely crafting software; you&rsquo;re
making dreams become tangible realities.
</p>
<p className="leaders__text">
Expand All @@ -81,4 +83,4 @@ export const Leaders = () => {
</div>
</div>
);
};
}
26 changes: 13 additions & 13 deletions apps/gatsby/src/components/about-page/OurBeliefs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { StaticImage } from "gatsby-plugin-image";

import "./css/our-beliefs.css";

export const OurBeliefs = () => (
<div className="our-beliefs">
export function OurBeliefs() {
return <div className="our-beliefs">
<div className="our-beliefs__contents">
<div className="our-beliefs__image-container">
<StaticImage
Expand All @@ -18,32 +18,32 @@ export const OurBeliefs = () => (
</div>
<h2 className="our-beliefs__section-heading">What We Believe</h2>
<p className="our-beliefs__text_center">
At LaunchWare, we're driven by a set of foundational beliefs that guide every project we
undertake. These are more than just talking points. They're the principles that shape our
At LaunchWare, we&rsquo;re driven by a set of foundational beliefs that guide every project we
undertake. These are more than just talking points. They&rsquo;re the principles that shape our
approach, influence our decisions, and define who we are as a team.
</p>
<ul className="our-beliefs__grid">
<li>
<h3 className="our-beliefs__paragraph-heading">Technology is a Force for Good</h3>
<p className="our-beliefs__text">
We're adamant that technology should enhance the well-being of its users. If a project's
intent is deceptive or ethically questionable, it doesn't just merit reconsideration—it
simply won't be built by us.
We&rsquo;re adamant that technology should enhance the well-being of its users. If a project&rsquo;s
intent is deceptive or ethically questionable, it doesn&rsquo;t just merit reconsideration—it
simply won&rsquo;t be built by us.
</p>
</li>
<li>
<h3 className="our-beliefs__paragraph-heading">Every Project is Unique</h3>
<p className="our-beliefs__text">
We understand that each client and each technological hurdle is singular in its
complexities and opportunities. There's no one-size-fits-all solution, which is why we
value custom approaches tailored to each project's unique demands.
complexities and opportunities. There&rsquo;s no one-size-fits-all solution, which is why we
value custom approaches tailored to each project&rsquo;s unique demands.
</p>
</li>
<li>
<h3 className="our-beliefs__paragraph-heading">Evolution Over Stagnation</h3>
<p className="our-beliefs__text">
In our eyes, software development is not a linear process but an evolutionary journey.
Adaptability and flexibility aren't mere 'nice-to-haves'. They're essential traits for
Adaptability and flexibility aren&rsquo;t mere &apos;nice-to-haves&apos;. They&rsquo;re essential traits for
navigating the unpredictable landscape of software innovation.
</p>
</li>
Expand All @@ -69,11 +69,11 @@ export const OurBeliefs = () => (
<li>
<p className="our-beliefs__text">
By staying true to these core beliefs, we aim to foster partnerships that are not just
profitable, but also meaningful and enduring. If these beliefs resonate with you, you're
likely the kind of partner we're looking to collaborate with.
profitable, but also meaningful and enduring. If these beliefs resonate with you, you&rsquo;re
likely the kind of partner we&rsquo;re looking to collaborate with.
</p>
</li>
</ul>
</div>
</div>
);
}
8 changes: 5 additions & 3 deletions apps/gatsby/src/components/about-page/VisionToReality.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import React from "react";

import { StaticImage } from "gatsby-plugin-image";

import { useBookCallModal } from "../book-call/hooks/useBookCallModal";
import { ThreeCardSection } from "../general/ThreeCardSection";
import { HiFiveIcon } from "../icons/HiFiveIcon";
import { LaptopStackIcon } from "../icons/LaptopStackIcon";
import { SendMessagesIcon } from "../icons/SendMessagesIcon";

import "./css/vision-to-reality.css";
import { StaticImage } from "gatsby-plugin-image";

export const VisionToReality = () => {
export function VisionToReality() {
const { modal, clickHandler } = useBookCallModal();

const sectionContents = {
Expand Down Expand Up @@ -54,4 +56,4 @@ export const VisionToReality = () => {
{modal}
</div>
);
};
}
Loading