Closed slimsag closed 1 year ago
This is very painful. I wish we would stop committing images here.
$ git pull remote: Enumerating objects: 1347, done. remote: Counting objects: 100% (1347/1347), done. remote: Compressing objects: 100% (66/66), done. remote: Total 4533 (delta 1306), reused 1298 (delta 1281), pack-reused 3186 Receiving objects: 100% (4533/4533), 23.10 MiB | 124 KiB/s, done. Resolving deltas: 100% (3185/3185), completed with 292 local objects. From github.com:sourcegraph/about 1134335..cc98bf9 master -> origin/master * [new branch] 3.15-livestream -> origin/3.15-livestream * [new branch] Update-mql-definition -> origin/Update-mql-definition * [new branch] a-guide-to-lsif -> origin/a-guide-to-lsif * [new branch] aa/interesting-inquiry -> origin/aa/interesting-inquiry * [new branch] aa/search-console-changes-2 -> origin/aa/search-console-changes-2 * [new branch] aa/seo-title -> origin/aa/seo-title * [new branch] aa/track-signup-clicks -> origin/aa/track-signup-clicks * [new branch] bl/lfs -> origin/bl/lfs * [new branch] campaign-noun -> origin/campaign-noun * [new branch] campaigns -> origin/campaigns * [new branch] ce -> origin/ce * [new branch] christinaforney-patch-1 -> origin/christinaforney-patch-1 * [new branch] dan-pronunciation -> origin/dan-pronunciation * [new branch] debugging-pings -> origin/debugging-pings * [new branch] direct-communication -> origin/direct-communication * [new branch] editing-faq -> origin/editing-faq * [new branch] garo/go-and-typescript-lsif-indexing -> origin/garo/go-and-typescript-lsif-indexing * [new branch] jargon-file -> origin/jargon-file * [new branch] jc/fix-style -> origin/jc/fix-style * [new branch] jc/update-cheatsheet -> origin/jc/update-cheatsheet * [new branch] juliasourceress-patch-1 -> origin/juliasourceress-patch-1 * [new branch] juliasourceress-patch-2 -> origin/juliasourceress-patch-2 * [new branch] juliasourceress-patch-3 -> origin/juliasourceress-patch-3 * [new branch] kpsource-patch-1 -> origin/kpsource-patch-1 * [new branch] mercadon-patch-1 -> origin/mercadon-patch-1 * [new branch] mercadon-patch-2 -> origin/mercadon-patch-2 * [new branch] mercadon-patch-3 -> origin/mercadon-patch-3 * [new branch] mercadon-patch-4 -> origin/mercadon-patch-4 * [new branch] mercadon-patch-5 -> origin/mercadon-patch-5 * [new branch] mercadon-patch-6 -> origin/mercadon-patch-6 * [new branch] offboarding -> origin/offboarding * [new branch] offboarding-1 -> origin/offboarding-1 * [new branch] okrs -> origin/okrs * [new branch] okrs-1 -> origin/okrs-1 * [new branch] rb-remove-top-5-logo -> origin/rb-remove-top-5-logo * [new branch] rb/fullscreen-fix -> origin/rb/fullscreen-fix * [new branch] rb/lyft-case-study -> origin/rb/lyft-case-study * [new branch] renovate/mdi-react-7.x -> origin/renovate/mdi-react-7.x * [new branch] renovate/react-helmet-6.x -> origin/renovate/react-helmet-6.x * [new branch] renovate/ts-loader-7.x -> origin/renovate/ts-loader-7.x * [new branch] rvt/handbook-worksite -> origin/rvt/handbook-worksite * [new branch] ryan-blunden-patch-1 -> origin/ryan-blunden-patch-1 * [new branch] sales-legal -> origin/sales-legal * [new branch] sg/security -> origin/sg/security * [new branch] sg/spreading-sourcegraph -> origin/sg/spreading-sourcegraph * [new branch] slack -> origin/slack * [new branch] sqs-patch-1 -> origin/sqs-patch-1 * [new branch] sqs-patch-2 -> origin/sqs-patch-2 * [new branch] update-adding-pings -> origin/update-adding-pings * [new branch] update-core-okrs -> origin/update-core-okrs * [new branch] vo/convoy-quick-change -> origin/vo/convoy-quick-change * [new branch] webinar-lead-gen -> origin/webinar-lead-gen Updating 1134335..cc98bf9 Fast-forward .github/CODEOWNERS | 23 +- .github/workflows/lsif.yml | 13 + .vscode/settings.json | 3 + README.md | 85 +- bin/generate_contributors.go | 8 +- blogposts/{ => 2016}/5-easy-ways-to-start-contributing-to-docker-using-sourcegraph.md | 6 +- blogposts/{ => 2016}/5-short-stories-from-open-source-pains-in-gains.md | 4 +- blogposts/{ => 2016}/announcing-checkup-simple-self-hosted-health-checks.md | 0 blogposts/{ => 2016}/appdash-an-open-source-perf-tracing-suite.md | 6 +- blogposts/{ => 2016}/browse-review-code-on-github-like-in-an-ide-with-the-sourcegraph-chrome-extension.md | 2 +- blogposts/{ => 2016}/building-a-product-one-user-interview-at-a-time.md | 2 +- blogposts/{ => 2016}/clarence-wardell.md | 0 blogposts/{ => 2016}/getting-started-with-sourcegraph.md | 6 +- blogposts/{ => 2016}/google-i-o-talk-building-sourcegraph.md | 4 +- blogposts/{ => 2016}/how-to-make-your-open-source-project-thrive-with-andrey-petrov.md | 24 +- blogposts/{ => 2016}/ipfs-the-permanent-web-by-juan-benet.md | 2 +- blogposts/{ => 2016}/poetically-simple-code-review.md | 0 blogposts/{ => 2016}/some-challenges-that-startup-development-teams-face.md | 4 +- blogposts/{ => 2016}/sourcegraph-the-best-way-to-read-code-just-got-better.md | 16 +- blogposts/{ => 2016}/the-ibm-system-360-the-first-modular-general-purpose-computer.md | 0 blogposts/{ => 2016}/the-pain-of-code-review-how-different-teams-manage-scale-and-perform-code-reviews.md | 0 blogposts/{ => 2016}/the-sourcegraph-developer-release-a-better-way-to-discover-and-understand-code.md | 2 +- blogposts/{ => 2016}/the-sourcegraph-test-v0-9-12-more-steps-to-better-code.md | 4 +- blogposts/{ => 2016}/thyme-a-simple-cli-to-measure-human-time-and-focus.md | 4 +- blogposts/{ => 2016}/toward-a-url-for-every-function-in-the-world.md | 2 +- blogposts/{ => 2016}/why-vacation-at-tech-companies-should-be-mandatory-better-code-happier-people.md | 0 blogposts/{ => 2016}/why-we-open-sourced-our-uptime-monitoring-system.md | 10 +- blogposts/{ => 2017}/announcing-sourcegraph-2.md | 6 +- blogposts/{ => 2017}/building-a-high-performance-key-value-store.md | 2 +- blogposts/{ => 2017}/building-toward-the-sourcegraph-master-plan.md | 8 +- blogposts/{ => 2017}/code-intelligence-for-java-now-available-on-sourcegraph.md | 8 +- blogposts/{ => 2017}/code-intelligence-now-available-for-java-on-sourcegraph-com.md | 2 +- blogposts/{ => 2017}/code-intelligence-on-github-embedded-code-snippets.md | 0 blogposts/{ => 2017}/faster-smoother-github-code-browsing.md | 0 blogposts/{ => 2017}/file-tree-navigation-on-github-yes-please.md | 0 blogposts/{ => 2017}/go-code-intelligence-on-sourcegraph-now-in-general-availability-ga.md | 4 +- blogposts/{ => 2017}/great-code-search-bad-code-search.md | 0 blogposts/{ => 2017}/great-code-search-for-aws-codecommit.md | 0 blogposts/{ => 2017}/grpc-in-production-alan-shreve.md | 2 +- blogposts/{ => 2017}/how-caddy-auto-detects-https-interception.md | 0 blogposts/{ => 2017}/introducing-code-search-in-sourcegraph.md | 0 blogposts/{ => 2017}/introducing-sourcegraph-server-2-3.md | 0 blogposts/{ => 2017}/jp-robinson-of-nytimes-on-go-kit-gizmo-and-marvin.md | 2 +- blogposts/{ => 2017}/more-powerful-code-search-on-sourcegraph.md | 2 +- blogposts/{ => 2017}/part-1-how-sourcegraph-scales-with-the-language-server-protocol.md | 8 +- blogposts/{ => 2017}/part-2-how-sourcegraph-scales-with-the-language-server-protocol.md | 8 +- blogposts/{ => 2017}/regexp-queries-directories-openid-connect-and-more-updates-to-sourcegraph.md | 0 blogposts/{ => 2017}/see-how-many-people-use-a-java-library-with-sourcegraph-badges.md | 8 +- blogposts/{ => 2017}/see-how-many-people-use-your-library-with-sourcegraph-badges.md | 0 blogposts/{ => 2017}/sourcegraph-code-intelligence-and-the-language-server-protocol.md | 2 +- blogposts/{ => 2017}/sourcegraph-founders-featured-on-forbes-30-under-30-list.md | 2 +- blogposts/{ => 2017}/why-chris-joined-sourcegraph.md | 2 +- blogposts/{ => 2018}/announcing_sourcegraph_2.13.md | 4 +- blogposts/{ => 2018}/code-intelligence-for-more-languages-and-lsp-language-server-protocol-support.md | 2 +- blogposts/{ => 2018}/code-intelligence-in-vim.md | 0 blogposts/{ => 2018}/dotcom-new-language-support.md | 2 +- blogposts/{ => 2018}/go-when-is-it-ok-to-recover.md | 0 blogposts/{ => 2018}/graphql-sourcegraph-extension.md | 0 blogposts/{ => 2018}/hack-time-at-sourcegraph.md | 0 blogposts/{ => 2018}/how-companies-buy-software-for-developers.md | 0 blogposts/{ => 2018}/how-sourcegraph-builds-sourcegraph.md | 0 blogposts/{ => 2018}/how-to-support-your-employee-through-pregnancy-maternity-leave-and-the.md | 0 blogposts/{ => 2018}/how-we-run-end-to-end-e2e-tests-in-buildkite-ci.md | 0 blogposts/{ => 2018}/introducing-sourcegraph-2-7.md | 0 blogposts/{ => 2018}/introducing-sourcegraph-server-2-4.md | 0 blogposts/{ => 2018}/introducing-sourcegraph-server-2-5.md | 0 blogposts/{ => 2018}/introducing-sourcegraph-server-2-6.md | 0 blogposts/{ => 2018}/our-project-based-interview-experiment-for-hiring-engineers.md | 0 blogposts/{ => 2018}/powerful-code-search-for-bitbucket-server.md | 0 blogposts/{ => 2018}/sourcegraph-2-10.md | 0 blogposts/{ => 2018}/sourcegraph-2-11-release-notes.md | 0 blogposts/{ => 2018}/sourcegraph-2-12-release-notes.md | 4 +- blogposts/{ => 2018}/sourcegraph-2-8-19-languages-ridiculously-huge-monorepos-lsp-a-graphql-api.md | 2 +- blogposts/{ => 2018}/sourcegraph-2-9-announcement-code-search-user-rollout-in-large-organizations.md | 0 blogposts/{ => 2018}/sourcegraph-browser-extensions-are-now-open-source.md | 2 +- blogposts/{ => 2018}/sourcegraph-future-coding-podcast-episode-32.md | 2 +- blogposts/{ => 2018}/the-august-2018-docker-hub-outage-and-the-impact-on-kubernetes-deployments.md | 0 blogposts/{ => 2018}/the-pain-that-minimal-version-selection-solves.md | 2 +- blogposts/{ => 2019}/announcing-sourcegraph-3.0-beta.md | 0 blogposts/{ => 2019}/announcing-sourcegraph-3.0.md | 18 +- blogposts/{ => 2019}/announcing-sourcegraph-3.1.md | 2 +- blogposts/{ => 2019}/announcing-sourcegraph-3.10.md | 6 +- blogposts/2019/announcing-sourcegraph-3.11.md | 204 +++ blogposts/{ => 2019}/announcing-sourcegraph-3.2.md | 2 +- blogposts/{ => 2019}/announcing-sourcegraph-3.3.md | 4 +- blogposts/{ => 2019}/announcing-sourcegraph-3.4.md | 0 blogposts/{ => 2019}/announcing-sourcegraph-3.5.md | 0 blogposts/{ => 2019}/announcing-sourcegraph-3.8.md | 12 +- blogposts/{ => 2019}/announcing-sourcegraph-3.9.md | 15 +- blogposts/2019/code-navigation-in-github-pull-requests.md | 52 + blogposts/{ => 2019}/convoy-improved-their-developer-on-boarding-with-sourcegraph.md | 0 blogposts/{ => 2019}/convoy-software-engineers-and-data-scientists-work-better-together.md | 0 blogposts/{ => 2019}/digitalocean-marketplace.md | 0 blogposts/2019/felix-becker-fully-type-safe-web-workers-with-zero-boilerplate.md | 20 + blogposts/{ => 2019}/felix-fosdem.md | 0 blogposts/{ => 2019}/from-saas-to-on-prem.md | 6 +- blogposts/{ => 2019}/gitlab-integrates-sourcegraph-code-navigation-and-code-intelligence.md | 10 +- blogposts/{ => 2019}/improving-language-support-in-2019.md | 2 +- blogposts/{ => 2019}/live-blogging-strange-loop-2019.md | 4 +- blogposts/{ => 2019}/lsif-indexer.md | 23 +- blogposts/{ => 2019}/press-release-sourcegraph-announces-new-gitlab-native-integration.md | 16 +- blogposts/2019/production-stability-at-lyft-during-their-monolith-to-microservices-decomposition.md | 23 + blogposts/{ => 2019}/quantcast-large-scale-refactoring-with-sourcegraph.md | 0 blogposts/{ => 2019}/sofi-moves-fast-on-hundreds-of-microservices-with-sourcegraph.md | 0 blogposts/{ => 2019}/sourcegraph-circleci-2.0-migration.md | 0 blogposts/{ => 2019}/thorn-sunsets-legacy-applications-with-sourcegraph.md | 0 blogposts/2020/announcing-sourcegraph-3.12.md | 189 +++ blogposts/2020/announcing-sourcegraph-3.13.md | 260 +++ blogposts/2020/announcing-sourcegraph-3.14.md | 255 +++ blogposts/2020/announcing-sourcegraph-3.15.md | 294 ++++ blogposts/2020/code-intelligence-on-sourcegraph-com.md | 17 + blogposts/2020/enable-gitlab-native-intelligence-sourcegraph-integration.md | 48 + blogposts/2020/find-and-replace.md | 651 ++++++++ blogposts/2020/going-beyond-regular-expressions-with-structural-code-search.md | 323 ++++ blogposts/2020/home-offices-of-sourcegraph.md | 109 ++ blogposts/2020/our-abcs-always-be-coding-childrens-book.md | 52 + blogposts/2020/our-journey-to-all-remote.md | 82 + blogposts/2020/press-release-our-abcs-childrens-book.md | 48 + blogposts/2020/press-release-sourcegraph-secures-series-b.md | 65 + blogposts/2020/remote-software-development-made-easier.md | 15 + blogposts/2020/series-b-universal-code-search.md | 19 + blogposts/2020/universal-code-intelligence-and-navigation-github.md | 43 + blogposts/2020/universal-code-search-github.md | 27 + blogposts/2020/universal-code-search-gitlab.md | 29 + blogposts/{ => liveblogs/dotgo}/behaviors-of-channels.md | 0 blogposts/{ => liveblogs/dotgo}/debuggers-from-scratch.md | 0 blogposts/{ => liveblogs/dotgo}/go-lift.md | 0 blogposts/{ => liveblogs/dotgo}/gos-work-stealing-scheduler.md | 0 blogposts/{ => liveblogs/dotgo}/lightning-talks-1.md | 0 blogposts/{ => liveblogs/dotgo}/machine-learning-and-go.md | 0 blogposts/{ => liveblogs/dotgo}/preparing-for-the-next-wave.md | 0 blogposts/{ => liveblogs/dotgo}/simulating-a-real-world-system-in-go.md | 0 blogposts/{ => liveblogs/dotgo}/the-art-of-testing.md | 0 blogposts/{ => liveblogs/dotgo}/the-functional-design-of-dep-and-package-managers-in-general.md | 0 blogposts/{ => liveblogs/dotgo}/thunder-talks.md | 0 blogposts/{ => liveblogs/dotgo}/unmasking-netpoll-go.md | 0 blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-alvind-salehi-federal-government.md | 8 +- blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-bret-taylor-quip.md | 0 blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-ceos-keynote.md | 0 blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-ian-lee-lawrence-livermore-national-laboratory.md | 4 +- blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-innersource.md | 2 +- blogposts/{ => liveblogs/github-universe}/liveblogging-github-universe.md | 0 blogposts/{ => liveblogs/gophercon}/a-go-guide-to-syscalls.md | 0 blogposts/{ => liveblogs/gophercon}/advanced-testing-in-go.md | 2 +- blogposts/{ => liveblogs/gophercon}/an-introduction-to-go-tool-trace-rhys-hiltner.md | 0 blogposts/{ => liveblogs/gophercon}/announcing-sourcegraph-3.6.md | 4 +- blogposts/{ => liveblogs/gophercon}/announcing-sourcegraph-3.7.md | 4 +- blogposts/{ => liveblogs/gophercon}/code-intelligence-with-lsif.md | 0 blogposts/{ => liveblogs/gophercon}/creating-a-custom-serialization-format.md | 2 +- blogposts/{ => liveblogs/gophercon}/encrypting-the-internet-with-go-tutorial.md | 0 blogposts/{ => liveblogs/gophercon}/evolutionary-optimization-peter-bourgon.md | 0 blogposts/{ => liveblogs/gophercon}/fallacies-of-distributed-gomputing.md | 0 blogposts/{ => liveblogs/gophercon}/forward-compatible-go-code.md | 0 blogposts/{ => liveblogs/gophercon}/functional-programming-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/generating-better-machine-code-with-ssa.md | 0 blogposts/{ => liveblogs/gophercon}/go-at-the-darpa-cyber-grand-challenge-will-hawkins.md | 0 blogposts/{ => liveblogs/gophercon}/go-reliability-and-durability-at-dropbox-tammy-butow.md | 0 blogposts/{ => liveblogs/gophercon}/gophecon-2018-writing-accessible-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-5-mistakes-c-c-devs-make-writing-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-adventures-in-cgo-performance.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-allocator-wrestling.md | 7 +- blogposts/{ => liveblogs/gophercon}/gophercon-2018-an-over-engineering-disaster-with-macaroons.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-asynchronous-networking-patterns.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-becoming-a-go-contributor.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-binary-search-tree-algorithms.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-c-l-eye-catching-user-interfaces.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-computer-vision-using-go-and-opencv-3.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-from-prototype-to-production-lessons-from-building-and.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-for-information-displays.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-in-debian.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-says-wat.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-going-serverless.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-grpc-reflection-and-grpcurl.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-grpc-state-machines-and-testing.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-how-do-you-structure-your-go-apps.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-how-to-write-a-parser-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-implementing-a-network-protocol-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-machine-learning-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-micro-optimizing-go-code.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-painting-with-light.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-rethinking-classical-concurrency-patterns.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-go-programmers-guide-to-secure-connections.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-importance-of-beginners.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-scheduler-saga.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-better-x86-assembly-generation-from-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-contributing-to-the-os-package-how-deep-do-you-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-controlling-the-go-runtime.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-death-by-three-thousand-timers-streaming-video-on-demand-for-cable-tv.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-design-command-line-tools-people-love.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-detecting-incompatible-api-changes.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-dynamically-instrumenting-go-programs.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-generics-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-get-going-with-webassembly.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-linters-myths-and-best-practices.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-module-proxy-life-of-a-query.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-pls-stop-breaking-my-editor.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-handling-go-errors.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-how-i-write-http-web-services-after-eight-years.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-how-uber-go-es.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-on-the-road-to-go-2.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-optimization-for-number-of-goroutines-using-feedback-control.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-optimizing-go-code-without-a-blindfold.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-os-contributions-how-deep-do-you-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-pki-for-gophers.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-simple-portable-efficient-graphical-interfaces-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-small-is-going-big-go-on-microcontrollers.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-socket-to-me-where-do-sockets-live-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-the-athens-project-a-proxy-server-for-go-modules.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-the-gopher-s-manual-of-style.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-tracking-inter-process-dependencies-using-static-analysis.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-two-go-programs-three-different-profiling-techniques-in-50-minutes.md | 0 blogposts/{ => liveblogs/gophercon}/gophercon-2019-what-got-us-here-won-t-get-us-there.md | 2 +- blogposts/{ => liveblogs/gophercon}/gophercon-2019-you-can-t-go-your-own-way-the-standardization-of-go-at-github.md | 0 blogposts/{ => liveblogs/gophercon}/idiomatic-go.md | 0 blogposts/{ => liveblogs/gophercon}/liveblog-articles-from-gophercon-2017.md | 0 blogposts/{ => liveblogs/gophercon}/livebloggig-gophercon-2019.md | 2 +- blogposts/{ => liveblogs/gophercon}/liveblogging-dotgo-2017.md | 0 blogposts/{ => liveblogs/gophercon}/liveblogging-gophercon-2017.md | 0 blogposts/{ => liveblogs/gophercon}/my-journey-to-go.md | 0 blogposts/{ => liveblogs/gophercon}/operability-in-go.md | 0 blogposts/{ => liveblogs/gophercon}/peter-bourgon-on-the-history-of-go-kit-and-whats-next.md | 0 blogposts/{ => liveblogs/gophercon}/runtime-generated-typesafe-and-declarative-pick-any-three.md | 0 blogposts/{ => liveblogs/gophercon}/self-deploying-kubernetes-applications-kelsey-hightower.md | 0 blogposts/{ => liveblogs/gophercon}/sourcegraph-liveblogging-at-gophercon-2018.md | 0 blogposts/{ => liveblogs/gophercon}/the-future-of-go.md | 0 blogposts/{ => liveblogs/gophercon}/the-new-era-of-go-package-management.md | 0 blogposts/{ => liveblogs/gophercon}/understanding-channels-kavya-joshi.md | 0 blogposts/{ => liveblogs/gophercon}/valuable-lessons-in-over-engineering-the-core-of-kubernetes-kops.md | 2 +- blogposts/{ => liveblogs/gophercon}/writing-a-go-tool-to-parse-and-modify-struct-tags.md | 0 blogposts/{ => liveblogs/gophercon}/writing-network-clients-in-go-the-design-and-implementation-of-the-nats-client.md | 0 blogposts/{ => liveblogs/graphql-summit}/building-a-large-scale-multi-branded-web-app-on-gql-foundation.md | 0 blogposts/{ => liveblogs/graphql-summit}/building-graphql-native-microservices.md | 2 +- blogposts/{ => liveblogs/graphql-summit}/building-native-mobile-apps-with-graphql.md | 0 blogposts/{ => liveblogs/graphql-summit}/designing-with-graphql.md | 0 blogposts/{ => liveblogs/graphql-summit}/extending-the-limits-of-graphql-syrus-akbary.md | 0 blogposts/{ => liveblogs/graphql-summit}/full-stack-subscriptions.md | 0 blogposts/{ => liveblogs/graphql-summit}/getting-buy-in-a-recipe-for-graphql-adoption.md | 0 blogposts/{ => liveblogs/graphql-summit}/graphql-at-massive-scale-graphql-as-the-glue-in-a-microservice-architecture.md | 0 blogposts/{ => liveblogs/graphql-summit}/graphql-at-twitter.md | 0 blogposts/{ => liveblogs/graphql-summit}/graphql-client-driven-development.md | 2 +- blogposts/{ => liveblogs/graphql-summit}/graphql-on-the-edge.md | 0 blogposts/{ => liveblogs/graphql-summit}/graphql-productivity.md | 0 blogposts/{ => liveblogs/graphql-summit}/graphql-under-the-hood.md | 0 blogposts/{ => liveblogs/graphql-summit}/handling-authentication-and-authorization-in-graphql.md | 0 blogposts/{ => liveblogs/graphql-summit}/lee-byron-kicks-things-off.md | 0 blogposts/{ => liveblogs/graphql-summit}/liveblogging-graphql-summit-2017.md | 0 blogposts/{ => liveblogs/graphql-summit}/managing-massive-schemas-with-codegen.md | 0 blogposts/{ => liveblogs/graphql-summit}/setting-up-graphql-in-complicated-apis.md | 0 blogposts/{ => liveblogs/graphql-summit}/supercharge-your-graphql-development.md | 0 blogposts/{ => liveblogs/graphql-summit}/teaching-graphql.md | 0 blogposts/{ => liveblogs/graphql-summit}/the-graphql-stack-how-everything-fits-together.md | 0 blogposts/{ => liveblogs/graphql-summit}/twitch-our-graphql-transformation.md | 0 blogposts/{ => liveblogs/graphql-summit}/universal-graphql.md | 0 blogposts/{ => liveblogs/graphql-summit}/what-went-wrong-best-practices-for-surfacing-error-messages-in-a-graphql-api.md | 0 blogposts/{ => liveblogs/graphql-summit}/wordpress-graphql-bringing-graphql-to-28-of-the-internet.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-better-story-for-kubernetes-secrets.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-robot-poet-goes-for-a-walk-in-the-park.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-stitch-in-time-the-future-of-oss-sustainability.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-alda-s-dynamic-relationship-with-clojure.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-apache-pulsar-and-the-legacy-of-telegraphy.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-assistive-augmentation-lip-reading-with-ai.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-astriagraph-monitoring-global-traffic-in-space.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-automating-operations-of-a-global-cdn.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-behind-the-new-york-times-crossword.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-better-integration-tests-for-performance-monitoring.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-better-spotify-playlists-through-discrete-optimization.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-beyond-alt-text-trends-in-online-accessibility.md | 10 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-beyond-traces-the-insights-in-trace-aggregates.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-a-unified-cancer-immunotherapy-data-library.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-an-open-source-artificial-pancreas.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-haskell-programs-with-fused-effects.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-can-androids-conceive-of-electric-sheep.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-closing-keynote.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-community-driven-development.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-compacting-the-uncompactable.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-complexities-of-color-in-computing.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-computer-vision-and-nlp-for-multi-task-fashion-modeling.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-correctness-proofs-of-distributed-systems-with-isabelle.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-css-algorithms.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-declarative-apis-in-an-imperative-world.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-designing-systems-against-domestic-violence.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-deterministic-docker-images-with-go-microservices.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-digital-and-social-resilience-through-the-nyc-mesh.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-dive-into-streams-with-brooklin.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-easy-abstract-interpretation-with-sparta.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-empowering-people-to-build-a-digital-bank.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-enhancing-angklung-music-rehearsals-with-modern-tech.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-escuincla-babosa-a-python-deep-learning-telenovela.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-everything-you-wanted-to-know-about-distributed-tracing.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-explainable-ai-the-apex-of-human-and-machine-learning.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-federated-learning-private-distributed-ml.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-finding-bugs-without-running-or-even-looking-at-code.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-formal-specification-and-taming-other-people-s-tech.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-from-video-games-to-fashion-a-machine-learning-journey.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-computers-misunderstand-the-world.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-not-to-read-the-room-creating-wearables-with-ml.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-build-with-data-trust-and-privacy-as-a-baseline.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-fix-ai-solutions-to-ml-bias-and-why-they-don-t-matter.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-teach-programming-and-other-things.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-we-tell-stories-in-code.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-your-company-can-help-sustain-open-source.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-improving-law-interpretability-using-nlp.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-inferenceql-ai-for-data-engineers-without-the-math.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-jagged-ragged-awkward-arrays.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-lang-wishful-thinking.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-learning-to-love-javascript.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-machine-learning-to-interpret-sign-language.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-makings-of-a-modern-acid-compliant-distributed-database.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-meander-declarative-explorations-at-the-limits-of-fp.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-minimalist-piano-forever.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-myths-and-metaphors-of-open-source.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-networking-and-go-an-engineer-s-journey.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-new-programming-constructs-for-probabilistic-ai.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-observability-superpowers-for-developers.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-parser-parser-combinators-for-program-transformation.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-pattern-matching-scale-using-finite-state-machine.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-performance-matters.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-privacy-governance-explainability-in-ml-ai.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-probabilistic-scripts-for-automating-common-sense-tasks.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-realtime-hybrid-reinforcement-learning-at-scale.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-recreating-forgotten-programming-languages-for-art.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-rgb-to-xyz-the-science-and-history-of-color.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-rhapsody-in-zero-knowledge-proving-without-revealing.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-riding-the-stream-processing-wave.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-ruby-on-the-apple-ii-adventures-in-retro-programming.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-safety-in-chaos-forming-realistic-failure-hypotheses.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-securing-cloud-applications-and-their-credentials.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-temporal-databases-for-streaming-architectures.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-the-idea-becomes-a-machine-that-makes-the-art-that.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-the-strange-loop-making-parasitic-insects-our-friends.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-towards-an-open-reason-ml-able-web.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-tweet-my-wedding-dress.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-typing-the-untyped-soundness-in-gradual-type-systems.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-unison-a-new-distributed-programming-language.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-uptime-15364-days-the-computers-of-voyager.md | 2 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-voice-driven-development-who-needs-a-keyboard-anyway.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-watch-the-watcher-facial-recognition-police-oversight.md | 4 +- blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-why-do-tree-ensembles-work.md | 0 blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-zipline-a-declarative-feature-engineering-library.md | 0 community/faq.md | 6 +- company/index.md | 3 + company/okrs/2019_q3.md | 14 +- company/okrs/2019_q4.md | 18 +- company/okrs/2020_q1.md | 154 ++ company/okrs/2020_q2.md | 123 ++ company/okrs/index.md | 42 +- company/open_source_open_company.md | 2 +- company/remote/index.md | 63 +- company/strategy.md | 126 +- company/team/index.md | 170 +- company/team/locations.geojson | 213 +++ company/team/nick.md | 13 +- direction/index.md | 64 +- docs/codeofconduct.md | 4 +- docs/master-plan.md | 117 -- docs/privacy.md | 34 +- docs/security.md | 79 +- docs/terms-dotcom.md | 43 +- docs/terms-gov.md | 12 +- docs/terms-private.md | 48 +- docs/terms.md | 4 - docsite.json | 4 +- go.mod | 8 +- go.sum | 92 +- handbook/bizops/customer_data_policy.md | 15 + handbook/bizops/index.md | 107 +- handbook/ceo/index.md | 6 +- handbook/communication/clean_escalation.md | 17 + handbook/communication/company_meeting.md | 68 +- handbook/communication/conflict_resolution.md | 55 + handbook/communication/decisions.md | 37 + handbook/communication/index.md | 75 +- handbook/communication/rfcs/index.md | 17 +- handbook/communication/style_guide.md | 39 +- handbook/communication/team_chat.md | 43 +- handbook/design/design-execution.md | 81 + handbook/design/index.md | 65 + handbook/editing.md | 1 + handbook/engineering/adding_buildkite_secrets.md | 9 + handbook/engineering/adding_ping_data.md | 54 + handbook/engineering/automation/index.md | 7 - handbook/engineering/campaigns/index.md | 37 + handbook/engineering/code-intelligence/index.md | 43 +- handbook/engineering/code_reviews.md | 62 +- handbook/engineering/commit_messages.md | 14 +- handbook/engineering/continuous_releasability.md | 64 + handbook/engineering/core-services/index.md | 28 +- handbook/engineering/deployments.md | 315 ++++ handbook/engineering/distribution/gitlab_native_local.md | 65 + handbook/engineering/distribution/index.md | 122 +- handbook/engineering/distribution/internal_infrastructure.md | 35 + handbook/engineering/distribution/k8s_admin_custom_policy.md | 101 ++ handbook/engineering/distribution/recurring_processes.md | 150 ++ handbook/engineering/distribution/update_sourcegraph_website.md | 31 + handbook/engineering/distribution/use_metrics_dump.md | 17 + handbook/engineering/external_contributions.md | 30 + handbook/engineering/github-notifications/custom-routing.png | Bin 0 -> 24770 bytes handbook/engineering/github-notifications/gmail-apply-filter-to-matching-conversations.png | Bin 0 -> 14553 bytes handbook/engineering/github-notifications/gmail-filter-github-label.png | Bin 0 -> 23514 bytes handbook/engineering/github-notifications/gmail-filter-skip-inbox.png | Bin 0 -> 27264 bytes handbook/engineering/github-notifications/index.md | 56 + handbook/engineering/github-notifications/participating.png | Bin 0 -> 39714 bytes handbook/engineering/github-notifications/real-time.png | Bin 0 -> 112607 bytes handbook/engineering/github-notifications/watching.png | Bin 0 -> 31946 bytes handbook/engineering/incident_dotcom_deleted_entirely.md | 62 + handbook/engineering/incidents.md | 1 + handbook/engineering/index.md | 35 +- handbook/engineering/{go_style_guide.md => languages/go.md} | 9 +- handbook/engineering/languages/index.md | 6 + handbook/engineering/languages/typescript.md | 147 ++ handbook/engineering/on_call/index.md | 12 +- handbook/engineering/onboarding.md | 39 + handbook/engineering/organization.md | 36 + handbook/{documentation/index.md => engineering/product_documentation.md} | 25 +- handbook/engineering/prometheus.md | 27 + handbook/engineering/releases/index.md | 43 +- handbook/engineering/releases/patch_release_issue_template.md | 32 +- handbook/engineering/releases/release_issue_template.md | 26 +- handbook/engineering/roles.md | 86 +- handbook/engineering/search/index.md | 27 + handbook/engineering/security/index.md | 41 + handbook/engineering/testing-pyramid.svg | 17 + handbook/engineering/testing.md | 94 ++ handbook/engineering/tracking_issues.md | 92 ++ handbook/engineering/web/index.md | 40 +- handbook/index.md | 15 +- handbook/marketing/developer-relations/index.md | 2 +- handbook/marketing/editing_blog_posts.md | 12 + handbook/marketing/index.md | 33 +- handbook/marketing/livestream.md | 127 ++ handbook/marketing/marketing_operations.md | 43 + handbook/marketing/messaging.md | 106 ++ handbook/people-ops/benefits-and-perks.md | 22 +- handbook/people-ops/compensation.md | 20 +- handbook/people-ops/from-graphbook/glossary.md | 2 +- handbook/people-ops/from-graphbook/holidays.md | 17 - handbook/people-ops/from-graphbook/index.md | 3 +- handbook/people-ops/from-graphbook/onboarding_engineers.md | 35 - handbook/people-ops/from-graphbook/onboarding_remote_non_us.md | 79 +- handbook/people-ops/from-graphbook/onboarding_remote_us.md | 54 +- handbook/people-ops/from-graphbook/onboarding_san_francisco.md | 4 +- handbook/people-ops/hiring-flow.md | 3 + handbook/people-ops/hiring.md | 48 +- handbook/people-ops/holidays.md | 15 + handbook/people-ops/index.md | 40 +- handbook/people-ops/interview_process.md | 64 + handbook/people-ops/leaving.md | 15 + handbook/people-ops/onboarding/index.md | 10 +- handbook/people-ops/performance-reviews.md | 3 - handbook/people-ops/review-cycles.md | 61 + handbook/people-ops/spending-company-money.md | 76 +- handbook/people-ops/teammate_philosophy.md | 5 +- handbook/people-ops/travel.md | 19 +- handbook/product/delivery_plans.md | 55 + handbook/product/index.md | 28 +- handbook/product/planning.md | 12 +- handbook/product/prioritizing.md | 63 + handbook/product/release_blog_post_template.md | 24 +- handbook/{marketing/developer-relations => product}/release_issue_template.md | 30 +- handbook/product/roles.md | 33 +- handbook/product/user_feedback.md | 28 + handbook/sales/common_customer_questions.md | 44 +- handbook/sales/index.md | 58 +- handbook/sales/interviews/index.md | 20 +- handbook/sales/interviews/mock_customer_call.md | 7 +- handbook/sales/license_keys.md | 44 + handbook/sales/onboarding/index.md | 12 +- handbook/sales/onboarding/quiz.md | 2 +- handbook/sales/records.md | 6 + handbook/support/filing_customer_issues.md | 36 + handbook/support/index.md | 38 +- handbook/usage.md | 7 +- index.md | 9 +- netlify.toml | 8 +- renovate.json | 7 + website/.nvmrc | 2 +- website/.vscode/settings.json | 4 +- website/.vscode/tasks.json | 10 +- website/gatsby-browser.js | 4 +- website/gatsby-config.js | 42 +- website/gatsby-node.js | 84 +- website/package.json | 103 +- website/src/EventLogger.tsx | 223 --- website/src/components/BlogHeadLinks.tsx | 16 +- website/src/components/BlogPosts.tsx | 83 +- website/src/components/Dropdown.tsx | 119 -- website/src/components/EventsList.tsx | 47 + website/src/components/FeaturedBlogPosts.tsx | 37 + website/src/components/Footer.tsx | 188 ++- website/src/components/Header.tsx | 51 +- website/src/components/HubSpot.tsx | 21 + website/src/components/NewsList.tsx | 52 + website/src/components/PricingPlan.tsx | 86 - website/src/components/ProductPopover.tsx | 12 +- website/src/components/Subscribe.tsx | 28 + website/src/components/TestimonialCarousel.tsx | 10 +- website/src/components/Tweets.tsx | 13 +- website/src/components/Vimeo.tsx | 38 - website/src/components/YouTube.tsx | 35 + website/src/components/content/CaseStudyPage.tsx | 17 +- website/src/components/content/ContentSection.tsx | 5 +- website/src/components/content/WhitePaperPage.tsx | 99 ++ website/src/components/{ => pricing}/PricingFreeTierPopover.tsx | 4 +- website/src/components/pricing/PricingPlan.tsx | 202 +++ website/src/components/pricing/PricingPlanFeature.tsx | 45 + website/src/components/pricing/PricingPlanProperty.tsx | 16 + website/src/components/{ => pricing}/PricingTable.tsx | 30 +- website/src/components/product/CustomerLogosSection.tsx | 98 +- website/src/components/product/GitLabIntegrationSection.tsx | 12 +- website/src/components/product/IntegratesWithSection.tsx | 32 +- website/src/components/product/OpenSourcePrivacyFeatureItem.tsx | 4 +- website/src/components/product/SupportedProgrammingLanguagesLink.tsx | 2 +- website/src/css/components/PricingPlan.scss | 18 - website/src/css/components/_Cookiebot.scss | 45 + website/src/css/components/_Events.scss | 7 + website/src/css/components/_Footer.scss | 86 +- website/src/css/components/_PricingTable.scss | 12 - website/src/css/components/_TestimonialCarousel.scss | 6 + website/src/css/components/_Vimeo.scss | 2 - website/src/css/components/actions/RequestDemoAction.tsx | 16 +- website/src/css/components/actions/SubmitEmailForm.tsx | 10 +- website/src/css/components/actions/ViewDeveloperDocumentationAction.tsx | 2 +- website/src/css/components/pricing/_PricingPlan.scss | 9 + website/src/css/components/pricing/_PricingPlanFeature.scss | 18 + website/src/css/components/pricing/index.scss | 2 + website/src/css/components/product/_CustomerLogosSection.scss | 9 +- website/src/css/pages/__case_studies.scss | 7 + website/src/css/pages/__white_papers.scss | 82 + website/src/css/pages/_blog-post.scss | 40 +- website/src/css/pages/_blog.scss | 137 +- website/src/css/pages/_events.scss | 5 + website/src/css/pages/_index.scss | 24 +- website/src/css/pages/_landing-page.scss | 6 + website/src/css/pages/_news.scss | 15 + website/src/css/pages/_plan.scss | 179 --- website/src/css/pages/_universal-code-search.scss | 11 + website/src/css/pages/product/{_automation.scss => _code-change-management.scss} | 12 +- website/src/css/styles.scss | 53 +- website/src/data/events-listing.json | 17 + website/src/data/news-listing.json | 237 +++ website/src/html.tsx | 3 +- website/src/images/about/david-sacks.jpg | Bin 0 -> 44106 bytes website/src/images/about/sg-craftventures.png | Bin 0 -> 1324 bytes website/src/pages/about.tsx | 39 +- website/src/pages/blog.tsx | 24 +- website/src/pages/case-studies/convoy-improved-on-boarding.tsx | 4 +- website/src/pages/case-studies/convoy-software-engineers-and-data-scientists-work-better-together.tsx | 5 +- website/src/pages/case-studies/lyft-monolith-to-microservices.tsx | 102 ++ website/src/pages/case-studies/quantcast-large-scale-refactoring.tsx | 4 +- website/src/pages/case-studies/sofi-moves-fast-on-hundreds-of-microservices.tsx | 4 +- website/src/pages/case-studies/we-are-thorn.tsx | 4 +- website/src/pages/contact/index.tsx | 4 +- website/src/pages/contact/{request-automation-demo.tsx => request-code-change-management-demo.tsx} | 19 +- website/src/pages/contact/request-demo.tsx | 4 +- website/src/pages/contact/request-info.tsx | 61 + website/src/pages/contact/request-trial.tsx | 60 + website/src/pages/contact/sales.tsx | 25 +- website/src/pages/dotgo.tsx | 4 - website/src/pages/events.tsx | 74 + website/src/pages/go.tsx | 50 +- website/src/pages/graphql.tsx | 13 +- website/src/pages/hackathons.tsx | 4 - website/src/pages/index.tsx | 197 ++- website/src/pages/news.tsx | 132 ++ website/src/pages/pricing.tsx | 247 ++- website/src/pages/privacy/cookie-policy.tsx | 39 + website/src/pages/product/browser.tsx | 179 --- website/src/pages/product/{automation.tsx => code-change-management.tsx} | 156 +- website/src/pages/product/{code-search-navigation.tsx => code-discovery.tsx} | 335 ++-- website/src/pages/product/code-intelligence.tsx | 173 ++ website/src/pages/product/code-review.tsx | 36 +- website/src/pages/product/index.tsx | 91 +- website/src/pages/resources/abcs-book.tsx | 112 ++ website/src/pages/resources/universal-code-search-ebook.tsx | 67 + website/src/pages/sl.tsx | 4 - website/src/pages/solutions/developer-onboarding.tsx | 25 - website/src/pages/solutions/developer-workflow-tooling-integrations.tsx | 25 - website/src/pages/solutions/incident-response.tsx | 25 - website/src/pages/strange-loop.tsx | 55 +- website/src/pages/universal-code-search.tsx | 234 +++ website/src/pages/webinars/signup-webinar-jan2020.tsx | 37 + website/src/pages/white-papers/remote-work-easier.tsx | 275 ++++ website/src/templates/blogPostTemplate.tsx | 69 +- website/static/_redirects | 155 +- website/static/bg-home-universe.jpg | Bin 0 -> 152443 bytes website/static/blog/3-11-lyft.png | Bin 0 -> 113152 bytes website/static/blog/3-11-monitoring-alerts.png | Bin 0 -> 313873 bytes website/static/blog/3-11-monitoring-overview.png | Bin 0 -> 333643 bytes website/static/blog/3-12-code-intel-indicator.png | Bin 0 -> 246330 bytes website/static/blog/3-12-faster-permissions.png | Bin 0 -> 19633 bytes website/static/blog/3-13-language-extensions.png | Bin 0 -> 262210 bytes website/static/blog/3-14-extension-sign-in.gif | Bin 0 -> 3489239 bytes website/static/blog/3-14-go-hovertext.png | Bin 0 -> 192496 bytes website/static/blog/3-14-monitoring_improvements.gif | Bin 0 -> 1449642 bytes website/static/blog/3-14-resource-estimator.png | Bin 0 -> 72107 bytes website/static/blog/3-15-getting-started.png | Bin 0 -> 42240 bytes website/static/blog/3-15-user-event-log.png | Bin 0 -> 156897 bytes website/static/blog/3.14-release-blog-img.jpg | Bin 0 -> 54931 bytes website/static/blog/3.14-release-blog-social-img.jpg | Bin 0 -> 104328 bytes website/static/blog/3.15-release-blog-img.jpg | Bin 0 -> 373041 bytes {blogposts/images => website/static/blog}/3.6-gophercon-hoodie.jpg | Bin {blogposts/images => website/static/blog}/3.6-search-latency.png | Bin {blogposts/images => website/static/blog}/3.7-extension-icons.png | Bin {blogposts/images => website/static/blog}/3.7-symbol-search-comparison.png | Bin {blogposts/images => website/static/blog}/3.8-benchmarks.png | Bin {blogposts/images => website/static/blog}/3.8-lsif.png | Bin {blogposts/images => website/static/blog}/3.9-grafana-dashboard.png | Bin {blogposts/images => website/static/blog}/3.9-lsif-multi-project-code-intel.gif | Bin {blogposts => website/static/blog}/announcing-sourcegraph-3.0/basic_code_intel.png | Bin {blogposts => website/static/blog}/announcing-sourcegraph-3.0/datadog_metrics.png | Bin {blogposts => website/static/blog}/announcing-sourcegraph-3.0/management_console.png | Bin {blogposts => website/static/blog}/announcing-sourcegraph-3.0/management_console_password.png | Bin {blogposts => website/static/blog}/announcing-sourcegraph-3.0/search_query_cheatsheet.png | Bin website/static/blog/blog-code-intelligence.png | Bin 0 -> 123640 bytes website/static/blog/blog-fromberger-joining.jpg | Bin 0 -> 104171 bytes website/static/blog/campaigns-branch-name.png | Bin 0 -> 147334 bytes website/static/blog/felix-avatar.jpg | Bin 0 -> 25496 bytes website/static/blog/find-replace/brain1.jpg | Bin 0 -> 6679 bytes website/static/blog/find-replace/brain2.jpg | Bin 0 -> 8709 bytes website/static/blog/find-replace/brain3.jpg | Bin 0 -> 7074 bytes website/static/blog/find-replace/brain4.jpg | Bin 0 -> 10837 bytes website/static/blog/find-replace/campaign-publish.gif | Bin 0 -> 3645219 bytes website/static/blog/find-replace/codemod.png | Bin 0 -> 165110 bytes website/static/blog/find-replace/find-replace-word.gif | Bin 0 -> 7083 bytes website/static/blog/find-replace/macro.gif | Bin 0 -> 549683 bytes website/static/blog/find-replace/multiselect.gif | Bin 0 -> 2303468 bytes website/static/blog/find-replace/new-campaign.png | Bin 0 -> 130616 bytes {blogposts/images => website/static/blog}/gophercon-2019-uber-code-structure.jpg | Bin {blogposts/images => website/static/blog}/gophercon-2019-uber-consistency.jpg | Bin {blogposts/images => website/static/blog}/gophercon-2019-uber-dependency-injection.jpg | Bin {blogposts/images => website/static/blog}/gophercon-2019-uber-monorepo.jpg | Bin {blogposts/images => website/static/blog}/gophercon2019-amdahls-law.jpg | Bin {blogposts/images => website/static/blog}/gophercon2019-profiling-01.jpg | Bin {blogposts/images => website/static/blog}/gophercon2019-tracing-01.jpg | Bin {blogposts/images => website/static/blog}/gophercon2019-tracing-02.jpg | Bin website/static/blog/home-offices-sourcegraph-thumbnail.jpg | Bin 0 -> 51967 bytes {blogposts => website/static/blog}/lsif-indexer-files/ast.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/def-graph.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/listingOne.jsonnet | 0 {blogposts => website/static/blog}/lsif-indexer-files/listingOne.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/lsif-snippet.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/scopes.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/scopes_tree.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/snippet.png | Bin {blogposts => website/static/blog}/lsif-indexer-files/use-graph.png | Bin website/static/blog/lyft-logo.png | Bin 0 -> 14091 bytes {blogposts/images => website/static/blog}/on-prem-customerWAUs.jpg | Bin {blogposts/images => website/static/blog}/on-prem-customerversions.jpg | Bin website/static/blog/our-abcs-hero.png | Bin 0 -> 169186 bytes website/static/blog/our-abcs.png | Bin 0 -> 207948 bytes website/static/blog/remote-easier.jpg | Bin 0 -> 79190 bytes website/static/blog/sf-office-mural.jpg | Bin 0 -> 120738 bytes website/static/blog/structural-search-hero.png | Bin 0 -> 7206 bytes website/static/blog/structural-search-linux-cleanup-patch.png | Bin 0 -> 38276 bytes website/static/blog/structural-search-nested-expressions.png | Bin 0 -> 122628 bytes {blogposts/images => website/static/blog}/temporal-arch-img-3.png | Bin {blogposts/images => website/static/blog}/temporal-arch-img1.jpg | Bin {blogposts/images => website/static/blog}/temporal-arch-img2.jpg | Bin website/static/blog/universal-code-search-hero.jpg | Bin 0 -> 72636 bytes website/static/case-studies/justin-phillips-lyft.jpg | Bin 0 -> 19880 bytes website/static/case-studies/lyft-sourcegraph-case-study-og-embed.jpg | Bin 0 -> 110752 bytes website/static/external-logos/adidas-running-logo.svg | 1 + website/static/external-logos/anchor-logo.png | Bin 0 -> 6521 bytes website/static/external-logos/apex-clearing-logo.png | Bin 0 -> 4068 bytes website/static/external-logos/app-developer-magazine-sq-logo.svg | 43 + website/static/external-logos/cloudflare-color-logo.svg | 1 + website/static/external-logos/collective-health-logo.svg | 51 + website/static/external-logos/databasetrendsapp-logo.jpg | Bin 0 -> 37621 bytes website/static/external-logos/dataversity-sq-logo.svg | 1 + website/static/external-logos/devclass-sq-logo.svg | 1 + website/static/external-logos/devops-com-logo.png | Bin 0 -> 14252 bytes website/static/external-logos/devops-digest-logo.png | Bin 0 -> 7641 bytes website/static/external-logos/enterprisers-project-logo.png | Bin 0 -> 6034 bytes website/static/external-logos/expanse-logo.svg | 20 + website/static/external-logos/f5-logo.svg | 1 + website/static/external-logos/finsmes-logo.svg | 1 + website/static/external-logos/fortune-2016-logo.png | Bin 0 -> 4600 bytes website/static/external-logos/gitlab-commit-logo.png | Bin 0 -> 79873 bytes website/static/external-logos/gitlab-mark.svg | 1 + website/static/external-logos/ieee-spectrum-logo.png | Bin 0 -> 7144 bytes website/static/external-logos/indeed-logo.svg | 1 + website/static/external-logos/infoq-logo.png | Bin 0 -> 8831 bytes website/static/external-logos/infoworld-sq-logo.png | Bin 0 -> 3931 bytes website/static/external-logos/insidebigdata-logo.svg | 1 + website/static/external-logos/kmworld-logo.svg | 1 + website/static/external-logos/medium-logo.svg | 1 + website/static/external-logos/podcast-init.png | Bin 0 -> 17237 bytes website/static/external-logos/pulse2.0-logo.png | Bin 0 -> 4087 bytes website/static/external-logos/qualtrics-logo.svg | 31 + website/static/external-logos/quantcast-logo.svg | 188 +-- website/static/external-logos/rxjs-live-london-logo.svg | 1 + website/static/external-logos/sd-times-sq-logo.svg | 1 + website/static/external-logos/sdx-central-logo.svg | 1 + website/static/external-logos/security-boulevard-sq-logo.svg | 1 + website/static/external-logos/serverside-logo.png | Bin 0 -> 5641 bytes website/static/external-logos/silicon-angle-logo.svg | 1 + website/static/external-logos/sofi-logo.svg | 36 + website/static/external-logos/sourcegraph-universal-code-search-ebook-v1.jpg | Bin 0 -> 86457 bytes website/static/external-logos/svbj-logo.png | Bin 0 -> 15774 bytes website/static/external-logos/techrepublic-sq-logo.png | Bin 0 -> 21160 bytes website/static/external-logos/techrepublic-sq-logo.svg | 1 + website/static/external-logos/techstrong-tv-logo.png | Bin 0 -> 12397 bytes website/static/external-logos/the-new-stack-sq-logo.svg | 1 + website/static/external-logos/thorn-logo.svg | 1 + website/static/external-logos/thought-machine-logo.svg | 53 + website/static/external-logos/tsconf-eu-logo.svg | 1 + website/static/external-logos/tsconf-js-logo.svg | 1 + website/static/external-logos/vatortv.svg | 1 + website/static/external-logos/venturebeat-logo.svg | 1 + website/static/external-logos/workiva-logo.svg | 1 + website/static/external-logos/zdnet-logo.svg | 1 + website/static/other/abcs-book/our-abcs-hero.png | Bin 0 -> 169186 bytes website/static/other/abcs-book/our-abcs.png | Bin 0 -> 207948 bytes website/static/white-papers/remote-easier-bg_1680x300.png | Bin 0 -> 246882 bytes website/static/white-papers/remote-easier.jpg | Bin 0 -> 79190 bytes website/static/white-papers/remotework_codelinksharing.png | Bin 0 -> 70015 bytes website/static/white-papers/remotework_codereview.png | Bin 0 -> 132511 bytes website/static/white-papers/remotework_commithistory.png | Bin 0 -> 354006 bytes website/tsconfig.json | 4 +- website/yarn.lock | 10627 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------- workflow/index.md | 273 ++++ workflow/tools/hound_vs_sourcegraph.md | 2 +- workflow/tools/opengrok_vs_sourcegraph.md | 2 +- 723 files changed, 18483 insertions(+), 8077 deletions(-) create mode 100644 .github/workflows/lsif.yml create mode 100644 .vscode/settings.json rename blogposts/{ => 2016}/5-easy-ways-to-start-contributing-to-docker-using-sourcegraph.md (98%) rename blogposts/{ => 2016}/5-short-stories-from-open-source-pains-in-gains.md (97%) rename blogposts/{ => 2016}/announcing-checkup-simple-self-hosted-health-checks.md (100%) rename blogposts/{ => 2016}/appdash-an-open-source-perf-tracing-suite.md (98%) rename blogposts/{ => 2016}/browse-review-code-on-github-like-in-an-ide-with-the-sourcegraph-chrome-extension.md (98%) rename blogposts/{ => 2016}/building-a-product-one-user-interview-at-a-time.md (99%) rename blogposts/{ => 2016}/clarence-wardell.md (100%) rename blogposts/{ => 2016}/getting-started-with-sourcegraph.md (90%) rename blogposts/{ => 2016}/google-i-o-talk-building-sourcegraph.md (99%) rename blogposts/{ => 2016}/how-to-make-your-open-source-project-thrive-with-andrey-petrov.md (91%) rename blogposts/{ => 2016}/ipfs-the-permanent-web-by-juan-benet.md (97%) rename blogposts/{ => 2016}/poetically-simple-code-review.md (100%) rename blogposts/{ => 2016}/some-challenges-that-startup-development-teams-face.md (97%) rename blogposts/{ => 2016}/sourcegraph-the-best-way-to-read-code-just-got-better.md (93%) rename blogposts/{ => 2016}/the-ibm-system-360-the-first-modular-general-purpose-computer.md (100%) rename blogposts/{ => 2016}/the-pain-of-code-review-how-different-teams-manage-scale-and-perform-code-reviews.md (100%) rename blogposts/{ => 2016}/the-sourcegraph-developer-release-a-better-way-to-discover-and-understand-code.md (98%) rename blogposts/{ => 2016}/the-sourcegraph-test-v0-9-12-more-steps-to-better-code.md (95%) rename blogposts/{ => 2016}/thyme-a-simple-cli-to-measure-human-time-and-focus.md (98%) rename blogposts/{ => 2016}/toward-a-url-for-every-function-in-the-world.md (98%) rename blogposts/{ => 2016}/why-vacation-at-tech-companies-should-be-mandatory-better-code-happier-people.md (100%) rename blogposts/{ => 2016}/why-we-open-sourced-our-uptime-monitoring-system.md (96%) rename blogposts/{ => 2017}/announcing-sourcegraph-2.md (90%) rename blogposts/{ => 2017}/building-a-high-performance-key-value-store.md (98%) rename blogposts/{ => 2017}/building-toward-the-sourcegraph-master-plan.md (93%) rename blogposts/{ => 2017}/code-intelligence-for-java-now-available-on-sourcegraph.md (96%) rename blogposts/{ => 2017}/code-intelligence-now-available-for-java-on-sourcegraph-com.md (98%) rename blogposts/{ => 2017}/code-intelligence-on-github-embedded-code-snippets.md (100%) rename blogposts/{ => 2017}/faster-smoother-github-code-browsing.md (100%) rename blogposts/{ => 2017}/file-tree-navigation-on-github-yes-please.md (100%) rename blogposts/{ => 2017}/go-code-intelligence-on-sourcegraph-now-in-general-availability-ga.md (92%) rename blogposts/{ => 2017}/great-code-search-bad-code-search.md (100%) rename blogposts/{ => 2017}/great-code-search-for-aws-codecommit.md (100%) rename blogposts/{ => 2017}/grpc-in-production-alan-shreve.md (99%) rename blogposts/{ => 2017}/how-caddy-auto-detects-https-interception.md (100%) rename blogposts/{ => 2017}/introducing-code-search-in-sourcegraph.md (100%) rename blogposts/{ => 2017}/introducing-sourcegraph-server-2-3.md (100%) rename blogposts/{ => 2017}/jp-robinson-of-nytimes-on-go-kit-gizmo-and-marvin.md (96%) rename blogposts/{ => 2017}/more-powerful-code-search-on-sourcegraph.md (98%) rename blogposts/{ => 2017}/part-1-how-sourcegraph-scales-with-the-language-server-protocol.md (95%) rename blogposts/{ => 2017}/part-2-how-sourcegraph-scales-with-the-language-server-protocol.md (98%) rename blogposts/{ => 2017}/regexp-queries-directories-openid-connect-and-more-updates-to-sourcegraph.md (100%) rename blogposts/{ => 2017}/see-how-many-people-use-a-java-library-with-sourcegraph-badges.md (90%) rename blogposts/{ => 2017}/see-how-many-people-use-your-library-with-sourcegraph-badges.md (100%) rename blogposts/{ => 2017}/sourcegraph-code-intelligence-and-the-language-server-protocol.md (99%) rename blogposts/{ => 2017}/sourcegraph-founders-featured-on-forbes-30-under-30-list.md (87%) rename blogposts/{ => 2017}/why-chris-joined-sourcegraph.md (94%) rename blogposts/{ => 2018}/announcing_sourcegraph_2.13.md (98%) rename blogposts/{ => 2018}/code-intelligence-for-more-languages-and-lsp-language-server-protocol-support.md (91%) rename blogposts/{ => 2018}/code-intelligence-in-vim.md (100%) rename blogposts/{ => 2018}/dotcom-new-language-support.md (96%) rename blogposts/{ => 2018}/go-when-is-it-ok-to-recover.md (100%) rename blogposts/{ => 2018}/graphql-sourcegraph-extension.md (100%) rename blogposts/{ => 2018}/hack-time-at-sourcegraph.md (100%) rename blogposts/{ => 2018}/how-companies-buy-software-for-developers.md (100%) rename blogposts/{ => 2018}/how-sourcegraph-builds-sourcegraph.md (100%) rename blogposts/{ => 2018}/how-to-support-your-employee-through-pregnancy-maternity-leave-and-the.md (100%) rename blogposts/{ => 2018}/how-we-run-end-to-end-e2e-tests-in-buildkite-ci.md (100%) rename blogposts/{ => 2018}/introducing-sourcegraph-2-7.md (100%) rename blogposts/{ => 2018}/introducing-sourcegraph-server-2-4.md (100%) rename blogposts/{ => 2018}/introducing-sourcegraph-server-2-5.md (100%) rename blogposts/{ => 2018}/introducing-sourcegraph-server-2-6.md (100%) rename blogposts/{ => 2018}/our-project-based-interview-experiment-for-hiring-engineers.md (100%) rename blogposts/{ => 2018}/powerful-code-search-for-bitbucket-server.md (100%) rename blogposts/{ => 2018}/sourcegraph-2-10.md (100%) rename blogposts/{ => 2018}/sourcegraph-2-11-release-notes.md (100%) rename blogposts/{ => 2018}/sourcegraph-2-12-release-notes.md (90%) rename blogposts/{ => 2018}/sourcegraph-2-8-19-languages-ridiculously-huge-monorepos-lsp-a-graphql-api.md (99%) rename blogposts/{ => 2018}/sourcegraph-2-9-announcement-code-search-user-rollout-in-large-organizations.md (100%) rename blogposts/{ => 2018}/sourcegraph-browser-extensions-are-now-open-source.md (96%) rename blogposts/{ => 2018}/sourcegraph-future-coding-podcast-episode-32.md (91%) rename blogposts/{ => 2018}/the-august-2018-docker-hub-outage-and-the-impact-on-kubernetes-deployments.md (100%) rename blogposts/{ => 2018}/the-pain-that-minimal-version-selection-solves.md (99%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.0-beta.md (100%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.0.md (95%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.1.md (99%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.10.md (96%) create mode 100644 blogposts/2019/announcing-sourcegraph-3.11.md rename blogposts/{ => 2019}/announcing-sourcegraph-3.2.md (99%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.3.md (99%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.4.md (100%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.5.md (100%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.8.md (91%) rename blogposts/{ => 2019}/announcing-sourcegraph-3.9.md (91%) create mode 100644 blogposts/2019/code-navigation-in-github-pull-requests.md rename blogposts/{ => 2019}/convoy-improved-their-developer-on-boarding-with-sourcegraph.md (100%) rename blogposts/{ => 2019}/convoy-software-engineers-and-data-scientists-work-better-together.md (100%) rename blogposts/{ => 2019}/digitalocean-marketplace.md (100%) create mode 100644 blogposts/2019/felix-becker-fully-type-safe-web-workers-with-zero-boilerplate.md rename blogposts/{ => 2019}/felix-fosdem.md (100%) rename blogposts/{ => 2019}/from-saas-to-on-prem.md (94%) rename blogposts/{ => 2019}/gitlab-integrates-sourcegraph-code-navigation-and-code-intelligence.md (92%) rename blogposts/{ => 2019}/improving-language-support-in-2019.md (91%) rename blogposts/{ => 2019}/live-blogging-strange-loop-2019.md (95%) rename blogposts/{ => 2019}/lsif-indexer.md (93%) rename blogposts/{ => 2019}/press-release-sourcegraph-announces-new-gitlab-native-integration.md (74%) create mode 100644 blogposts/2019/production-stability-at-lyft-during-their-monolith-to-microservices-decomposition.md rename blogposts/{ => 2019}/quantcast-large-scale-refactoring-with-sourcegraph.md (100%) rename blogposts/{ => 2019}/sofi-moves-fast-on-hundreds-of-microservices-with-sourcegraph.md (100%) rename blogposts/{ => 2019}/sourcegraph-circleci-2.0-migration.md (100%) rename blogposts/{ => 2019}/thorn-sunsets-legacy-applications-with-sourcegraph.md (100%) create mode 100644 blogposts/2020/announcing-sourcegraph-3.12.md create mode 100644 blogposts/2020/announcing-sourcegraph-3.13.md create mode 100644 blogposts/2020/announcing-sourcegraph-3.14.md create mode 100644 blogposts/2020/announcing-sourcegraph-3.15.md create mode 100644 blogposts/2020/code-intelligence-on-sourcegraph-com.md create mode 100644 blogposts/2020/enable-gitlab-native-intelligence-sourcegraph-integration.md create mode 100644 blogposts/2020/find-and-replace.md create mode 100644 blogposts/2020/going-beyond-regular-expressions-with-structural-code-search.md create mode 100644 blogposts/2020/home-offices-of-sourcegraph.md create mode 100644 blogposts/2020/our-abcs-always-be-coding-childrens-book.md create mode 100644 blogposts/2020/our-journey-to-all-remote.md create mode 100644 blogposts/2020/press-release-our-abcs-childrens-book.md create mode 100644 blogposts/2020/press-release-sourcegraph-secures-series-b.md create mode 100644 blogposts/2020/remote-software-development-made-easier.md create mode 100644 blogposts/2020/series-b-universal-code-search.md create mode 100644 blogposts/2020/universal-code-intelligence-and-navigation-github.md create mode 100644 blogposts/2020/universal-code-search-github.md create mode 100644 blogposts/2020/universal-code-search-gitlab.md rename blogposts/{ => liveblogs/dotgo}/behaviors-of-channels.md (100%) rename blogposts/{ => liveblogs/dotgo}/debuggers-from-scratch.md (100%) rename blogposts/{ => liveblogs/dotgo}/go-lift.md (100%) rename blogposts/{ => liveblogs/dotgo}/gos-work-stealing-scheduler.md (100%) rename blogposts/{ => liveblogs/dotgo}/lightning-talks-1.md (100%) rename blogposts/{ => liveblogs/dotgo}/machine-learning-and-go.md (100%) rename blogposts/{ => liveblogs/dotgo}/preparing-for-the-next-wave.md (100%) rename blogposts/{ => liveblogs/dotgo}/simulating-a-real-world-system-in-go.md (100%) rename blogposts/{ => liveblogs/dotgo}/the-art-of-testing.md (100%) rename blogposts/{ => liveblogs/dotgo}/the-functional-design-of-dep-and-package-managers-in-general.md (100%) rename blogposts/{ => liveblogs/dotgo}/thunder-talks.md (100%) rename blogposts/{ => liveblogs/dotgo}/unmasking-netpoll-go.md (100%) rename blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-alvind-salehi-federal-government.md (88%) rename blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-bret-taylor-quip.md (100%) rename blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-ceos-keynote.md (100%) rename blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-ian-lee-lawrence-livermore-national-laboratory.md (97%) rename blogposts/{ => liveblogs/github-universe}/github-universe-liveblog-innersource.md (99%) rename blogposts/{ => liveblogs/github-universe}/liveblogging-github-universe.md (100%) rename blogposts/{ => liveblogs/gophercon}/a-go-guide-to-syscalls.md (100%) rename blogposts/{ => liveblogs/gophercon}/advanced-testing-in-go.md (99%) rename blogposts/{ => liveblogs/gophercon}/an-introduction-to-go-tool-trace-rhys-hiltner.md (100%) rename blogposts/{ => liveblogs/gophercon}/announcing-sourcegraph-3.6.md (98%) rename blogposts/{ => liveblogs/gophercon}/announcing-sourcegraph-3.7.md (98%) rename blogposts/{ => liveblogs/gophercon}/code-intelligence-with-lsif.md (100%) rename blogposts/{ => liveblogs/gophercon}/creating-a-custom-serialization-format.md (99%) rename blogposts/{ => liveblogs/gophercon}/encrypting-the-internet-with-go-tutorial.md (100%) rename blogposts/{ => liveblogs/gophercon}/evolutionary-optimization-peter-bourgon.md (100%) rename blogposts/{ => liveblogs/gophercon}/fallacies-of-distributed-gomputing.md (100%) rename blogposts/{ => liveblogs/gophercon}/forward-compatible-go-code.md (100%) rename blogposts/{ => liveblogs/gophercon}/functional-programming-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/generating-better-machine-code-with-ssa.md (100%) rename blogposts/{ => liveblogs/gophercon}/go-at-the-darpa-cyber-grand-challenge-will-hawkins.md (100%) rename blogposts/{ => liveblogs/gophercon}/go-reliability-and-durability-at-dropbox-tammy-butow.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophecon-2018-writing-accessible-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-5-mistakes-c-c-devs-make-writing-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-adventures-in-cgo-performance.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-allocator-wrestling.md (99%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-an-over-engineering-disaster-with-macaroons.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-asynchronous-networking-patterns.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-becoming-a-go-contributor.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-binary-search-tree-algorithms.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-c-l-eye-catching-user-interfaces.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-computer-vision-using-go-and-opencv-3.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-from-prototype-to-production-lessons-from-building-and.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-for-information-displays.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-in-debian.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-go-says-wat.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-going-serverless.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-grpc-reflection-and-grpcurl.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-grpc-state-machines-and-testing.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-how-do-you-structure-your-go-apps.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-how-to-write-a-parser-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-implementing-a-network-protocol-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-machine-learning-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-micro-optimizing-go-code.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-painting-with-light.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-rethinking-classical-concurrency-patterns.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-go-programmers-guide-to-secure-connections.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-importance-of-beginners.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2018-the-scheduler-saga.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-better-x86-assembly-generation-from-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-contributing-to-the-os-package-how-deep-do-you-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-controlling-the-go-runtime.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-death-by-three-thousand-timers-streaming-video-on-demand-for-cable-tv.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-design-command-line-tools-people-love.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-detecting-incompatible-api-changes.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-dynamically-instrumenting-go-programs.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-generics-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-get-going-with-webassembly.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-linters-myths-and-best-practices.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-module-proxy-life-of-a-query.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-go-pls-stop-breaking-my-editor.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-handling-go-errors.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-how-i-write-http-web-services-after-eight-years.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-how-uber-go-es.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-on-the-road-to-go-2.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-optimization-for-number-of-goroutines-using-feedback-control.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-optimizing-go-code-without-a-blindfold.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-os-contributions-how-deep-do-you-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-pki-for-gophers.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-simple-portable-efficient-graphical-interfaces-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-small-is-going-big-go-on-microcontrollers.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-socket-to-me-where-do-sockets-live-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-the-athens-project-a-proxy-server-for-go-modules.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-the-gopher-s-manual-of-style.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-tracking-inter-process-dependencies-using-static-analysis.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-two-go-programs-three-different-profiling-techniques-in-50-minutes.md (100%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-what-got-us-here-won-t-get-us-there.md (99%) rename blogposts/{ => liveblogs/gophercon}/gophercon-2019-you-can-t-go-your-own-way-the-standardization-of-go-at-github.md (100%) rename blogposts/{ => liveblogs/gophercon}/idiomatic-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/liveblog-articles-from-gophercon-2017.md (100%) rename blogposts/{ => liveblogs/gophercon}/livebloggig-gophercon-2019.md (96%) rename blogposts/{ => liveblogs/gophercon}/liveblogging-dotgo-2017.md (100%) rename blogposts/{ => liveblogs/gophercon}/liveblogging-gophercon-2017.md (100%) rename blogposts/{ => liveblogs/gophercon}/my-journey-to-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/operability-in-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/peter-bourgon-on-the-history-of-go-kit-and-whats-next.md (100%) rename blogposts/{ => liveblogs/gophercon}/runtime-generated-typesafe-and-declarative-pick-any-three.md (100%) rename blogposts/{ => liveblogs/gophercon}/self-deploying-kubernetes-applications-kelsey-hightower.md (100%) rename blogposts/{ => liveblogs/gophercon}/sourcegraph-liveblogging-at-gophercon-2018.md (100%) rename blogposts/{ => liveblogs/gophercon}/the-future-of-go.md (100%) rename blogposts/{ => liveblogs/gophercon}/the-new-era-of-go-package-management.md (100%) rename blogposts/{ => liveblogs/gophercon}/understanding-channels-kavya-joshi.md (100%) rename blogposts/{ => liveblogs/gophercon}/valuable-lessons-in-over-engineering-the-core-of-kubernetes-kops.md (99%) rename blogposts/{ => liveblogs/gophercon}/writing-a-go-tool-to-parse-and-modify-struct-tags.md (100%) rename blogposts/{ => liveblogs/gophercon}/writing-network-clients-in-go-the-design-and-implementation-of-the-nats-client.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/building-a-large-scale-multi-branded-web-app-on-gql-foundation.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/building-graphql-native-microservices.md (98%) rename blogposts/{ => liveblogs/graphql-summit}/building-native-mobile-apps-with-graphql.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/designing-with-graphql.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/extending-the-limits-of-graphql-syrus-akbary.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/full-stack-subscriptions.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/getting-buy-in-a-recipe-for-graphql-adoption.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-at-massive-scale-graphql-as-the-glue-in-a-microservice-architecture.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-at-twitter.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-client-driven-development.md (99%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-on-the-edge.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-productivity.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/graphql-under-the-hood.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/handling-authentication-and-authorization-in-graphql.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/lee-byron-kicks-things-off.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/liveblogging-graphql-summit-2017.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/managing-massive-schemas-with-codegen.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/setting-up-graphql-in-complicated-apis.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/supercharge-your-graphql-development.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/teaching-graphql.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/the-graphql-stack-how-everything-fits-together.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/twitch-our-graphql-transformation.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/universal-graphql.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/what-went-wrong-best-practices-for-surfacing-error-messages-in-a-graphql-api.md (100%) rename blogposts/{ => liveblogs/graphql-summit}/wordpress-graphql-bringing-graphql-to-28-of-the-internet.md (98%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-better-story-for-kubernetes-secrets.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-robot-poet-goes-for-a-walk-in-the-park.md (98%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-a-stitch-in-time-the-future-of-oss-sustainability.md (95%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-alda-s-dynamic-relationship-with-clojure.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-apache-pulsar-and-the-legacy-of-telegraphy.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-assistive-augmentation-lip-reading-with-ai.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-astriagraph-monitoring-global-traffic-in-space.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-automating-operations-of-a-global-cdn.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-behind-the-new-york-times-crossword.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-better-integration-tests-for-performance-monitoring.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-better-spotify-playlists-through-discrete-optimization.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-beyond-alt-text-trends-in-online-accessibility.md (92%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-beyond-traces-the-insights-in-trace-aggregates.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-a-unified-cancer-immunotherapy-data-library.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-an-open-source-artificial-pancreas.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-building-haskell-programs-with-fused-effects.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-can-androids-conceive-of-electric-sheep.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-closing-keynote.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-community-driven-development.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-compacting-the-uncompactable.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-complexities-of-color-in-computing.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-computer-vision-and-nlp-for-multi-task-fashion-modeling.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-correctness-proofs-of-distributed-systems-with-isabelle.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-css-algorithms.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-declarative-apis-in-an-imperative-world.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-designing-systems-against-domestic-violence.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-deterministic-docker-images-with-go-microservices.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-digital-and-social-resilience-through-the-nyc-mesh.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-dive-into-streams-with-brooklin.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-easy-abstract-interpretation-with-sparta.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-empowering-people-to-build-a-digital-bank.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-enhancing-angklung-music-rehearsals-with-modern-tech.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-escuincla-babosa-a-python-deep-learning-telenovela.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-everything-you-wanted-to-know-about-distributed-tracing.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-explainable-ai-the-apex-of-human-and-machine-learning.md (98%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-federated-learning-private-distributed-ml.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-finding-bugs-without-running-or-even-looking-at-code.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-formal-specification-and-taming-other-people-s-tech.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-from-video-games-to-fashion-a-machine-learning-journey.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-computers-misunderstand-the-world.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-not-to-read-the-room-creating-wearables-with-ml.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-build-with-data-trust-and-privacy-as-a-baseline.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-fix-ai-solutions-to-ml-bias-and-why-they-don-t-matter.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-to-teach-programming-and-other-things.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-we-tell-stories-in-code.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-how-your-company-can-help-sustain-open-source.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-improving-law-interpretability-using-nlp.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-inferenceql-ai-for-data-engineers-without-the-math.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-jagged-ragged-awkward-arrays.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-lang-wishful-thinking.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-learning-to-love-javascript.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-machine-learning-to-interpret-sign-language.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-makings-of-a-modern-acid-compliant-distributed-database.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-meander-declarative-explorations-at-the-limits-of-fp.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-minimalist-piano-forever.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-myths-and-metaphors-of-open-source.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-networking-and-go-an-engineer-s-journey.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-new-programming-constructs-for-probabilistic-ai.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-observability-superpowers-for-developers.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-parser-parser-combinators-for-program-transformation.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-pattern-matching-scale-using-finite-state-machine.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-performance-matters.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-privacy-governance-explainability-in-ml-ai.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-probabilistic-scripts-for-automating-common-sense-tasks.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-realtime-hybrid-reinforcement-learning-at-scale.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-recreating-forgotten-programming-languages-for-art.md (99%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-rgb-to-xyz-the-science-and-history-of-color.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-rhapsody-in-zero-knowledge-proving-without-revealing.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-riding-the-stream-processing-wave.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-ruby-on-the-apple-ii-adventures-in-retro-programming.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-safety-in-chaos-forming-realistic-failure-hypotheses.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-securing-cloud-applications-and-their-credentials.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-temporal-databases-for-streaming-architectures.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-the-idea-becomes-a-machine-that-makes-the-art-that.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-the-strange-loop-making-parasitic-insects-our-friends.md (97%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-towards-an-open-reason-ml-able-web.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-tweet-my-wedding-dress.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-typing-the-untyped-soundness-in-gradual-type-systems.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-unison-a-new-distributed-programming-language.md (98%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-uptime-15364-days-the-computers-of-voyager.md (98%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-voice-driven-development-who-needs-a-keyboard-anyway.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-watch-the-watcher-facial-recognition-police-oversight.md (97%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-why-do-tree-ensembles-work.md (100%) rename blogposts/{ => liveblogs/strange-loop}/strange-loop-2019-zipline-a-declarative-feature-engineering-library.md (100%) create mode 100644 company/okrs/2020_q1.md create mode 100644 company/okrs/2020_q2.md create mode 100644 company/team/locations.geojson delete mode 100644 docs/master-plan.md create mode 100644 handbook/bizops/customer_data_policy.md create mode 100644 handbook/communication/clean_escalation.md create mode 100644 handbook/communication/conflict_resolution.md create mode 100644 handbook/communication/decisions.md create mode 100644 handbook/design/design-execution.md create mode 100644 handbook/design/index.md create mode 100644 handbook/engineering/adding_buildkite_secrets.md create mode 100644 handbook/engineering/adding_ping_data.md delete mode 100644 handbook/engineering/automation/index.md create mode 100644 handbook/engineering/campaigns/index.md create mode 100644 handbook/engineering/continuous_releasability.md create mode 100644 handbook/engineering/deployments.md create mode 100644 handbook/engineering/distribution/gitlab_native_local.md create mode 100644 handbook/engineering/distribution/internal_infrastructure.md create mode 100644 handbook/engineering/distribution/k8s_admin_custom_policy.md create mode 100644 handbook/engineering/distribution/recurring_processes.md create mode 100644 handbook/engineering/distribution/update_sourcegraph_website.md create mode 100644 handbook/engineering/distribution/use_metrics_dump.md create mode 100644 handbook/engineering/external_contributions.md create mode 100644 handbook/engineering/github-notifications/custom-routing.png create mode 100644 handbook/engineering/github-notifications/gmail-apply-filter-to-matching-conversations.png create mode 100644 handbook/engineering/github-notifications/gmail-filter-github-label.png create mode 100644 handbook/engineering/github-notifications/gmail-filter-skip-inbox.png create mode 100644 handbook/engineering/github-notifications/index.md create mode 100644 handbook/engineering/github-notifications/participating.png create mode 100644 handbook/engineering/github-notifications/real-time.png create mode 100644 handbook/engineering/github-notifications/watching.png create mode 100644 handbook/engineering/incident_dotcom_deleted_entirely.md rename handbook/engineering/{go_style_guide.md => languages/go.md} (89%) create mode 100644 handbook/engineering/languages/index.md create mode 100644 handbook/engineering/languages/typescript.md create mode 100644 handbook/engineering/onboarding.md create mode 100644 handbook/engineering/organization.md rename handbook/{documentation/index.md => engineering/product_documentation.md} (50%) create mode 100644 handbook/engineering/search/index.md create mode 100644 handbook/engineering/security/index.md create mode 100644 handbook/engineering/testing-pyramid.svg create mode 100644 handbook/engineering/testing.md create mode 100644 handbook/engineering/tracking_issues.md create mode 100644 handbook/marketing/editing_blog_posts.md create mode 100644 handbook/marketing/livestream.md create mode 100644 handbook/marketing/marketing_operations.md create mode 100644 handbook/marketing/messaging.md delete mode 100644 handbook/people-ops/from-graphbook/holidays.md delete mode 100644 handbook/people-ops/from-graphbook/onboarding_engineers.md create mode 100644 handbook/people-ops/hiring-flow.md create mode 100644 handbook/people-ops/holidays.md create mode 100644 handbook/people-ops/interview_process.md create mode 100644 handbook/people-ops/leaving.md delete mode 100644 handbook/people-ops/performance-reviews.md create mode 100644 handbook/people-ops/review-cycles.md create mode 100644 handbook/product/delivery_plans.md create mode 100644 handbook/product/prioritizing.md rename handbook/{marketing/developer-relations => product}/release_issue_template.md (81%) create mode 100644 handbook/product/user_feedback.md create mode 100644 handbook/sales/license_keys.md create mode 100644 handbook/sales/records.md create mode 100644 handbook/support/filing_customer_issues.md create mode 100644 renovate.json delete mode 100644 website/src/EventLogger.tsx delete mode 100644 website/src/components/Dropdown.tsx create mode 100644 website/src/components/EventsList.tsx create mode 100644 website/src/components/FeaturedBlogPosts.tsx create mode 100644 website/src/components/HubSpot.tsx create mode 100644 website/src/components/NewsList.tsx delete mode 100644 website/src/components/PricingPlan.tsx create mode 100644 website/src/components/Subscribe.tsx delete mode 100644 website/src/components/Vimeo.tsx create mode 100644 website/src/components/YouTube.tsx create mode 100644 website/src/components/content/WhitePaperPage.tsx rename website/src/components/{ => pricing}/PricingFreeTierPopover.tsx (90%) create mode 100644 website/src/components/pricing/PricingPlan.tsx create mode 100644 website/src/components/pricing/PricingPlanFeature.tsx create mode 100644 website/src/components/pricing/PricingPlanProperty.tsx rename website/src/components/{ => pricing}/PricingTable.tsx (94%) delete mode 100644 website/src/css/components/PricingPlan.scss create mode 100644 website/src/css/components/_Cookiebot.scss create mode 100644 website/src/css/components/_Events.scss delete mode 100644 website/src/css/components/_PricingTable.scss delete mode 100644 website/src/css/components/_Vimeo.scss create mode 100644 website/src/css/components/pricing/_PricingPlan.scss create mode 100644 website/src/css/components/pricing/_PricingPlanFeature.scss create mode 100644 website/src/css/components/pricing/index.scss create mode 100644 website/src/css/pages/__white_papers.scss create mode 100644 website/src/css/pages/_events.scss create mode 100644 website/src/css/pages/_landing-page.scss create mode 100644 website/src/css/pages/_news.scss delete mode 100644 website/src/css/pages/_plan.scss create mode 100644 website/src/css/pages/_universal-code-search.scss rename website/src/css/pages/product/{_automation.scss => _code-change-management.scss} (70%) create mode 100644 website/src/data/events-listing.json create mode 100644 website/src/data/news-listing.json create mode 100644 website/src/images/about/david-sacks.jpg create mode 100644 website/src/images/about/sg-craftventures.png create mode 100644 website/src/pages/case-studies/lyft-monolith-to-microservices.tsx rename website/src/pages/contact/{request-automation-demo.tsx => request-code-change-management-demo.tsx} (74%) create mode 100644 website/src/pages/contact/request-info.tsx create mode 100644 website/src/pages/contact/request-trial.tsx create mode 100644 website/src/pages/events.tsx create mode 100644 website/src/pages/news.tsx create mode 100644 website/src/pages/privacy/cookie-policy.tsx delete mode 100644 website/src/pages/product/browser.tsx rename website/src/pages/product/{automation.tsx => code-change-management.tsx} (58%) rename website/src/pages/product/{code-search-navigation.tsx => code-discovery.tsx} (71%) create mode 100644 website/src/pages/product/code-intelligence.tsx create mode 100644 website/src/pages/resources/abcs-book.tsx create mode 100644 website/src/pages/resources/universal-code-search-ebook.tsx delete mode 100644 website/src/pages/solutions/developer-onboarding.tsx delete mode 100644 website/src/pages/solutions/developer-workflow-tooling-integrations.tsx delete mode 100644 website/src/pages/solutions/incident-response.tsx create mode 100644 website/src/pages/universal-code-search.tsx create mode 100644 website/src/pages/webinars/signup-webinar-jan2020.tsx create mode 100644 website/src/pages/white-papers/remote-work-easier.tsx create mode 100644 website/static/bg-home-universe.jpg create mode 100644 website/static/blog/3-11-lyft.png create mode 100644 website/static/blog/3-11-monitoring-alerts.png create mode 100644 website/static/blog/3-11-monitoring-overview.png create mode 100644 website/static/blog/3-12-code-intel-indicator.png create mode 100644 website/static/blog/3-12-faster-permissions.png create mode 100644 website/static/blog/3-13-language-extensions.png create mode 100644 website/static/blog/3-14-extension-sign-in.gif create mode 100644 website/static/blog/3-14-go-hovertext.png create mode 100644 website/static/blog/3-14-monitoring_improvements.gif create mode 100644 website/static/blog/3-14-resource-estimator.png create mode 100644 website/static/blog/3-15-getting-started.png create mode 100644 website/static/blog/3-15-user-event-log.png create mode 100644 website/static/blog/3.14-release-blog-img.jpg create mode 100644 website/static/blog/3.14-release-blog-social-img.jpg create mode 100644 website/static/blog/3.15-release-blog-img.jpg rename {blogposts/images => website/static/blog}/3.6-gophercon-hoodie.jpg (100%) rename {blogposts/images => website/static/blog}/3.6-search-latency.png (100%) rename {blogposts/images => website/static/blog}/3.7-extension-icons.png (100%) rename {blogposts/images => website/static/blog}/3.7-symbol-search-comparison.png (100%) rename {blogposts/images => website/static/blog}/3.8-benchmarks.png (100%) rename {blogposts/images => website/static/blog}/3.8-lsif.png (100%) rename {blogposts/images => website/static/blog}/3.9-grafana-dashboard.png (100%) rename {blogposts/images => website/static/blog}/3.9-lsif-multi-project-code-intel.gif (100%) rename {blogposts => website/static/blog}/announcing-sourcegraph-3.0/basic_code_intel.png (100%) rename {blogposts => website/static/blog}/announcing-sourcegraph-3.0/datadog_metrics.png (100%) rename {blogposts => website/static/blog}/announcing-sourcegraph-3.0/management_console.png (100%) rename {blogposts => website/static/blog}/announcing-sourcegraph-3.0/management_console_password.png (100%) rename {blogposts => website/static/blog}/announcing-sourcegraph-3.0/search_query_cheatsheet.png (100%) create mode 100644 website/static/blog/blog-code-intelligence.png create mode 100644 website/static/blog/blog-fromberger-joining.jpg create mode 100644 website/static/blog/campaigns-branch-name.png create mode 100644 website/static/blog/felix-avatar.jpg create mode 100644 website/static/blog/find-replace/brain1.jpg create mode 100644 website/static/blog/find-replace/brain2.jpg create mode 100644 website/static/blog/find-replace/brain3.jpg create mode 100644 website/static/blog/find-replace/brain4.jpg create mode 100644 website/static/blog/find-replace/campaign-publish.gif create mode 100644 website/static/blog/find-replace/codemod.png create mode 100644 website/static/blog/find-replace/find-replace-word.gif create mode 100644 website/static/blog/find-replace/macro.gif create mode 100644 website/static/blog/find-replace/multiselect.gif create mode 100644 website/static/blog/find-replace/new-campaign.png rename {blogposts/images => website/static/blog}/gophercon-2019-uber-code-structure.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon-2019-uber-consistency.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon-2019-uber-dependency-injection.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon-2019-uber-monorepo.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon2019-amdahls-law.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon2019-profiling-01.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon2019-tracing-01.jpg (100%) rename {blogposts/images => website/static/blog}/gophercon2019-tracing-02.jpg (100%) create mode 100644 website/static/blog/home-offices-sourcegraph-thumbnail.jpg rename {blogposts => website/static/blog}/lsif-indexer-files/ast.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/def-graph.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/listingOne.jsonnet (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/listingOne.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/lsif-snippet.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/scopes.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/scopes_tree.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/snippet.png (100%) rename {blogposts => website/static/blog}/lsif-indexer-files/use-graph.png (100%) create mode 100644 website/static/blog/lyft-logo.png rename {blogposts/images => website/static/blog}/on-prem-customerWAUs.jpg (100%) rename {blogposts/images => website/static/blog}/on-prem-customerversions.jpg (100%) create mode 100644 website/static/blog/our-abcs-hero.png create mode 100644 website/static/blog/our-abcs.png create mode 100644 website/static/blog/remote-easier.jpg create mode 100644 website/static/blog/sf-office-mural.jpg create mode 100644 website/static/blog/structural-search-hero.png create mode 100644 website/static/blog/structural-search-linux-cleanup-patch.png create mode 100644 website/static/blog/structural-search-nested-expressions.png rename {blogposts/images => website/static/blog}/temporal-arch-img-3.png (100%) rename {blogposts/images => website/static/blog}/temporal-arch-img1.jpg (100%) rename {blogposts/images => website/static/blog}/temporal-arch-img2.jpg (100%) create mode 100644 website/static/blog/universal-code-search-hero.jpg create mode 100644 website/static/case-studies/justin-phillips-lyft.jpg create mode 100644 website/static/case-studies/lyft-sourcegraph-case-study-og-embed.jpg create mode 100644 website/static/external-logos/adidas-running-logo.svg create mode 100644 website/static/external-logos/anchor-logo.png create mode 100755 website/static/external-logos/apex-clearing-logo.png create mode 100644 website/static/external-logos/app-developer-magazine-sq-logo.svg create mode 100644 website/static/external-logos/cloudflare-color-logo.svg create mode 100755 website/static/external-logos/collective-health-logo.svg create mode 100644 website/static/external-logos/databasetrendsapp-logo.jpg create mode 100644 website/static/external-logos/dataversity-sq-logo.svg create mode 100644 website/static/external-logos/devclass-sq-logo.svg create mode 100644 website/static/external-logos/devops-com-logo.png create mode 100644 website/static/external-logos/devops-digest-logo.png create mode 100644 website/static/external-logos/enterprisers-project-logo.png create mode 100755 website/static/external-logos/expanse-logo.svg create mode 100644 website/static/external-logos/f5-logo.svg create mode 100644 website/static/external-logos/finsmes-logo.svg create mode 100644 website/static/external-logos/fortune-2016-logo.png create mode 100644 website/static/external-logos/gitlab-commit-logo.png create mode 100644 website/static/external-logos/gitlab-mark.svg create mode 100644 website/static/external-logos/ieee-spectrum-logo.png create mode 100644 website/static/external-logos/indeed-logo.svg create mode 100644 website/static/external-logos/infoq-logo.png create mode 100644 website/static/external-logos/infoworld-sq-logo.png create mode 100644 website/static/external-logos/insidebigdata-logo.svg create mode 100644 website/static/external-logos/kmworld-logo.svg create mode 100644 website/static/external-logos/medium-logo.svg create mode 100644 website/static/external-logos/podcast-init.png create mode 100644 website/static/external-logos/pulse2.0-logo.png create mode 100755 website/static/external-logos/qualtrics-logo.svg create mode 100644 website/static/external-logos/rxjs-live-london-logo.svg create mode 100644 website/static/external-logos/sd-times-sq-logo.svg create mode 100644 website/static/external-logos/sdx-central-logo.svg create mode 100644 website/static/external-logos/security-boulevard-sq-logo.svg create mode 100644 website/static/external-logos/serverside-logo.png create mode 100644 website/static/external-logos/silicon-angle-logo.svg create mode 100755 website/static/external-logos/sofi-logo.svg create mode 100644 website/static/external-logos/sourcegraph-universal-code-search-ebook-v1.jpg create mode 100644 website/static/external-logos/svbj-logo.png create mode 100644 website/static/external-logos/techrepublic-sq-logo.png create mode 100644 website/static/external-logos/techrepublic-sq-logo.svg create mode 100644 website/static/external-logos/techstrong-tv-logo.png create mode 100644 website/static/external-logos/the-new-stack-sq-logo.svg create mode 100644 website/static/external-logos/thorn-logo.svg create mode 100755 website/static/external-logos/thought-machine-logo.svg create mode 100644 website/static/external-logos/tsconf-eu-logo.svg create mode 100644 website/static/external-logos/tsconf-js-logo.svg create mode 100644 website/static/external-logos/vatortv.svg create mode 100644 website/static/external-logos/venturebeat-logo.svg create mode 100755 website/static/external-logos/workiva-logo.svg create mode 100644 website/static/external-logos/zdnet-logo.svg create mode 100644 website/static/other/abcs-book/our-abcs-hero.png create mode 100644 website/static/other/abcs-book/our-abcs.png create mode 100644 website/static/white-papers/remote-easier-bg_1680x300.png create mode 100644 website/static/white-papers/remote-easier.jpg create mode 100644 website/static/white-papers/remotework_codelinksharing.png create mode 100644 website/static/white-papers/remotework_codereview.png create mode 100755 website/static/white-papers/remotework_commithistory.png
Has been a lot better over the last couple years
This is very painful. I wish we would stop committing images here.