Weighs the soul of incoming HTTP requests to stop AI crawlers

docs: remove proof of work branding (#763)

* docs(index): start cleanup, remove proof of work from core branding

Signed-off-by: Xe Iaso <me@xeiaso.net>

* docs(index): rewrite copy, add CELPHASE illustrations

Signed-off-by: Xe Iaso <me@xeiaso.net>

* chore: spelling

Signed-off-by: Xe Iaso <me@xeiaso.net>

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>

authored by Xe Iaso and committed by GitHub c2f46907 6fa5b8e4

Changed files
+37 -44
.devcontainer
.github
actions
spelling
docs
+2 -1
.devcontainer/devcontainer.json
··· 7 7 "workspaceFolder": "/workspace/anubis", 8 8 "postStartCommand": "npm ci && go mod download", 9 9 "features": { 10 - "ghcr.io/xe/devcontainer-features/ko:1.1.0": {} 10 + "ghcr.io/xe/devcontainer-features/ko:1.1.0": {}, 11 + "ghcr.io/devcontainers/features/github-cli:1": {} 11 12 }, 12 13 "initializeCommand": "mkdir -p ${localEnv:HOME}${localEnv:USERPROFILE}/.local/share/atuin", 13 14 "customizations": {
+1 -1
.github/actions/spelling/expect.txt
··· 22 22 bingbot 23 23 Bitcoin 24 24 bitrate 25 - blogging 26 25 Bluesky 27 26 blueskybot 28 27 boi ··· 71 70 Debian 72 71 debrpm 73 72 decaymap 73 + devcontainers 74 74 Diffbot 75 75 discordapp 76 76 discordbot
+17 -19
docs/docusaurus.config.ts
··· 6 6 7 7 const config: Config = { 8 8 title: 'Anubis', 9 - tagline: 'Weigh the soul of incoming HTTP requests using proof-of-work to stop AI crawlers', 9 + tagline: 'Weigh the soul of incoming HTTP requests to protect your website!', 10 10 favicon: 'img/favicon.ico', 11 11 12 12 // Set the production url of your site here ··· 40 40 [ 41 41 'classic', 42 42 { 43 - docs: { 44 - sidebarPath: './sidebars.ts', 45 - // Please change this to your repo. 46 - // Remove this to remove the "edit this page" links. 47 - editUrl: 48 - 'https://github.com/TecharoHQ/anubis/tree/main/docs/', 49 - }, 50 43 blog: { 51 44 showReadingTime: true, 52 45 feedOptions: { 53 46 type: ['rss', 'atom', "json"], 54 47 xslt: true, 55 48 }, 56 - // Please change this to your repo. 57 - // Remove this to remove the "edit this page" links. 58 - editUrl: 59 - 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', 60 - // Useful options to enforce blogging best practices 49 + editUrl: 'https://github.com/TecharoHQ/anubis/tree/main/docs/', 61 50 onInlineTags: 'warn', 62 51 onInlineAuthors: 'warn', 63 - onUntruncatedBlogPosts: 'warn', 52 + onUntruncatedBlogPosts: 'throw', 53 + }, 54 + docs: { 55 + sidebarPath: './sidebars.ts', 56 + editUrl: 'https://github.com/TecharoHQ/anubis/tree/main/docs/', 64 57 }, 65 58 theme: { 66 59 customCss: './src/css/custom.css', ··· 74 67 respectPrefersColorScheme: true, 75 68 }, 76 69 // Replace with your project's social card 77 - image: 'img/docusaurus-social-card.jpg', 70 + image: 'img/social-card.jpg', 78 71 navbar: { 79 72 title: 'Anubis', 80 73 logo: { ··· 82 75 src: 'img/favicon.webp', 83 76 }, 84 77 items: [ 78 + { to: '/blog', label: 'Blog', position: 'left' }, 85 79 { 86 80 type: 'docSidebar', 87 81 sidebarId: 'tutorialSidebar', 88 82 position: 'left', 89 83 label: 'Docs', 90 84 }, 91 - { to: '/blog', label: 'Blog', position: 'left' }, 92 85 { 93 - href: 'https://github.com/sponsors/Xe', 94 - label: "Sponsorship", 95 - position: 'left' 86 + to: '/docs/admin/botstopper', 87 + label: "Unbranded Version", 88 + position: "left" 96 89 }, 97 90 { 98 91 href: 'https://github.com/TecharoHQ/anubis', 99 92 label: 'GitHub', 100 93 position: 'right', 94 + }, 95 + { 96 + href: 'https://github.com/sponsors/Xe', 97 + label: "Sponsor the Project", 98 + position: 'right' 101 99 }, 102 100 ], 103 101 },
+15 -14
docs/src/components/HomepageFeatures/index.tsx
··· 5 5 6 6 type FeatureItem = { 7 7 title: string; 8 - Svg: React.ComponentType<React.ComponentProps<"svg">>; 8 + imageURL: string; 9 9 description: ReactNode; 10 10 }; 11 11 12 12 const FeatureList: FeatureItem[] = [ 13 13 { 14 14 title: "Easy to Use", 15 - Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default, 15 + imageURL: require("@site/static/img/anubis/happy.webp").default, 16 16 description: ( 17 17 <> 18 - Anubis is easy to set up, lightweight, and helps get rid of the lowest 19 - hanging fruit so you can sleep at night. 18 + Anubis sits in the background and weighs the risk of incoming requests. 19 + If it asks a client to complete a challenge, no user interaction is 20 + required. 20 21 </> 21 22 ), 22 23 }, 23 24 { 24 25 title: "Lightweight", 25 - Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default, 26 + imageURL: require("@site/static/img/anubis/pensive.webp").default, 26 27 description: ( 27 28 <> 28 - Anubis is efficient and as lightweight as possible, blocking the worst 29 - of the bots on the internet and makes it easy to protect what you host 30 - online. 29 + Anubis is so lightweight you'll forget it's there until you look at your 30 + hosting bill. On average it uses less than 128 MB of ram. 31 31 </> 32 32 ), 33 33 }, 34 34 { 35 - title: "Multi-threaded", 36 - Svg: require("@site/static/img/undraw_docusaurus_react.svg").default, 35 + title: "Block the scrapers", 36 + imageURL: require("@site/static/img/anubis/reject.webp").default, 37 37 description: ( 38 38 <> 39 - Anubis uses a multi-threaded proof of work check to ensure that users 40 - browsers are up to date and support modern standards. 39 + Anubis uses a combination of heuristics to identify and block bots 40 + before they take your website down. You can customize the rules with{" "} 41 + <a href="/docs/admin/policies">your own policies</a>. 41 42 </> 42 43 ), 43 44 }, 44 45 ]; 45 46 46 - function Feature({ title, Svg, description }: FeatureItem) { 47 + function Feature({ title, description, imageURL }: FeatureItem) { 47 48 return ( 48 49 <div className={clsx("col col--4")}> 49 50 <div className="text--center"> 50 - <Svg className={styles.featureSvg} role="img" /> 51 + <img src={imageURL} className={styles.featureSvg} role="img" /> 51 52 </div> 52 53 <div className="text--center padding-horiz--md"> 53 54 <Heading as="h3">{title}</Heading>
+2 -9
docs/src/pages/index.tsx
··· 31 31 const { siteConfig } = useDocusaurusContext(); 32 32 return ( 33 33 <Layout 34 - title={`Anubis: self hostable scraper defense software`} 35 - description="Weigh the soul of incoming HTTP requests using proof-of-work to stop AI crawlers" 34 + title={`Anubis: Web AI Firewall Utility`} 35 + description="Weigh the soul of incoming HTTP requests to protect your website!" 36 36 > 37 37 <HomepageHeader /> 38 38 <main> 39 39 <HomepageFeatures /> 40 - 41 - <center> 42 - <p> 43 - This is all placeholder text. It will be fixed. Give me time. I am 44 - one person and my project has unexpectedly gone viral. 45 - </p> 46 - </center> 47 40 </main> 48 41 </Layout> 49 42 );
docs/static/img/anubis/happy.webp

This is a binary file and will not be displayed.

docs/static/img/anubis/pensive.webp

This is a binary file and will not be displayed.

docs/static/img/anubis/reject.webp

This is a binary file and will not be displayed.

docs/static/img/docusaurus-social-card.jpg

This is a binary file and will not be displayed.

docs/static/img/social-card.jpg

This is a binary file and will not be displayed.