diff --git a/website/src/components/CaseStudyJumbotron.tsx b/website/src/components/CaseStudyFeature.tsx similarity index 91% rename from website/src/components/CaseStudyJumbotron.tsx rename to website/src/components/CaseStudyFeature.tsx index 0ae0b17ad7a..8d7842a9eb3 100644 --- a/website/src/components/CaseStudyJumbotron.tsx +++ b/website/src/components/CaseStudyFeature.tsx @@ -5,7 +5,7 @@ const COLORS = { purple: 'bg-purple text-light', } -export const CaseStudyJumbotron: React.FunctionComponent<{ +export const CaseStudyFeature: React.FunctionComponent<{ title: string titleClassName?: string quote: string @@ -33,7 +33,7 @@ export const CaseStudyJumbotron: React.FunctionComponent<{
- +
diff --git a/website/src/css/pages/__case_studies.scss b/website/src/css/pages/__case_studies.scss index fd256d5fbf6..d635618fec6 100644 --- a/website/src/css/pages/__case_studies.scss +++ b/website/src/css/pages/__case_studies.scss @@ -76,8 +76,7 @@ img { display: inline-block; width: 100%; - background-color: white; - border: 2px solid lightgrey; + border: 1px solid lightgrey; } @include media-breakpoint-down(sm) { diff --git a/website/src/pages/case-studies/we-are-thorn.tsx b/website/src/pages/case-studies/we-are-thorn.tsx index 1887e505133..9942b744a3c 100644 --- a/website/src/pages/case-studies/we-are-thorn.tsx +++ b/website/src/pages/case-studies/we-are-thorn.tsx @@ -11,28 +11,22 @@ import { ViewDeveloperDocumentationAction } from '../../css/components/actions/V export default ((props: any) => ( - Sourcegraph Case study - Thorn - - + Thorn sunsets legacy applications safely with Sourcegraph + + - + ( ( -

Thorn's mission

+

Thorn defends children

Thorn builds technology to defend children from sexual abuse. Their work focuses on finding victims - of child sex trafficking faster, and eliminating child sexual abuse from the internet.Thorn partners - with tech companies, law enforcement, as well as other NGOs, to build products that provide the - front lines with the latest technology to find the most vulnerable child victims faster. -

-

- Thorn’s life changing work and not-for-profit status made it a simple decision to provide - Sourcegraph’s enterprise features free of charge. For many children, Thorn plays a critical role in - speeding up the time it takes for them to be identified and we’re proud to be supporting them with - their mission. + of child sex trafficking quickly and eliminating child sexual abuse from the internet. Thorn + partners with tech companies, law enforcement, and other NGOs to build products to find vulnerable + child victims faster. Thorn's software has helped law enforcement reduce investigation times by 60%, ensuring that we find more children, faster.

-

- Sunsetting deprecated systems was previously costly and risked production stability -

+

Sunsetting deprecated systems was costly and risked production stability

- As Thorn’s products evolved, it became difficult to trace the impact of code changes to core - application components, as it was difficult to determine what code might rely on legacy - architecture, risking instability and greatly increasing the demand on development and review. + Determining which code relied on legacy architecture was difficult. Developers took too long to + ensure that changes to legacy systems didn’t affect production stability.

- - +

- Over 9,000 officers in 38 countries rely on Thorn’s systems to identify child victims of sexual - abuse. Any downtime of these services has a negative impact on Thorn’s ability to identify children - globally. + Over 9,000 officers in 38 countries rely on Thorn to identify child victims of sexual abuse. Any + downtime reduced Thorn’s ability to identify these children.

Existing tooling was not sufficient

- Tech debt, and the upkeep of legacy code was becoming increasingly problematic. Previous attempts, - such as cloning all repositories locally and using grep to find references, were inadequate, - especially when considering simultaneous development by multiple teams across many different - projects, repositories, and branches. It was costly to determine if all the different microservices - were properly in sync when removing legacy application code. + Tech debt and upkeep of legacy code were problematic. Previous attempts, such as cloning all + repositories locally and using grep to find references, were inadequate when considering + simultaneous development by multiple teams across many different projects, repositories, and + branches. Determining if all the different microservices were properly in sync when removing legacy + application code was painful.

-

- Sourcegraph’s multi-repository code search, was able to prove that no code referencing legacy - systems exists organization-wide -

+

+ Sourcegraph’s multi-repository code search proved that no code referencing legacy systems existed + across the organization +

Thorn Software Engineer Jacob Gillespie deployed Sourcegraph and synced Thorn’s entire list of - repositories within minutes. -

- - - -

- Sourcegraph code search gave Thorn the ability to find references to deprecated systems. But more - importantly, it proved itself to be an invaluable new part of their code review process. + repositories within minutes. With Sourcegraph, Thorn could search over the contents of every + repository, in any or all branches in seconds. Sourcegraph code search gives Thorn the ability to + find references to deprecated systems.

- +

Sourcegraph is now essential to their code review process.

-

As a result, deprecated systems were taken offline without downtime.

-

- Thorn’s developers could then systematically remove or modify deprecated systems, removing huge - amounts of tech debt in the process. This benefited all areas of the architecture, including not - only application code, but also build, deployment, logging, and monitoring systems—any tool that - supported the deployment and uptime of the application. -

- -

- Modern microservice architecture makes the application deprecation process more challenging than - ever.{' '} -

+ +

Deprecated systems were taken offline without downtime

- - Sourcegraph’s code search enables developers and DevOps teams to find dead code, unused - packages, and references to deprecated systems, organization wide across tens of thousands of - repositories. - + Thorn’s developers removed or modified deprecated systems, eliminating huge amounts of tech debt. + This benefited all areas of the architecture, including not only application code, but also build, + deployment, logging, and monitoring systems—any tool that supported the deployment and uptime of the + application.

-

- Being able to take advantage of industry leading solutions like Sourcegraph provides critical - support to Thorn’s mission. Every start-up has to make choices about when to rebuild their systems - and when to move forward accruing technical debt, Thorn is no different, but here at Sourcegraph, - we’re proud that our tools could be used to make the Thorn team a little more successful, a little - faster. +

+ Using Sourcegraph provides critical support to Thorn’s mission. Every start-up has to make choices + about when to rebuild their systems and when to move forward accruing technical debt. Modern + microservice architecture makes the application deprecation process challenging.

diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index c11da303c15..652979a63ce 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -1,6 +1,6 @@ import { Link } from 'gatsby' import * as React from 'react' -import { CaseStudyJumbotron } from '../components/CaseStudyJumbotron' +import { CaseStudyFeature } from '../components/CaseStudyFeature' import { ContentSection } from '../components/content/ContentSection' import { Jumbotron } from '../components/Jumbotron' import Layout from '../components/Layout' @@ -65,12 +65,12 @@ export default ((props: any) => (
-
diff --git a/website/static/case-studies/thorn-logo-square.png b/website/static/case-studies/thorn-logo-square.png index 248da955bd6..5f2d382b218 100644 Binary files a/website/static/case-studies/thorn-logo-square.png and b/website/static/case-studies/thorn-logo-square.png differ diff --git a/website/static/case-studies/thorn-sourcegraph-case-study.png b/website/static/case-studies/thorn-sourcegraph-case-study.png new file mode 100644 index 00000000000..a567be2b15b Binary files /dev/null and b/website/static/case-studies/thorn-sourcegraph-case-study.png differ