From b3c41a391e780178f503d158399ee54d63dd7ec6 Mon Sep 17 00:00:00 2001 From: Tiago <70700766+tiagorangel1@users.noreply.github.com> Date: Fri, 30 May 2025 19:42:17 +0100 Subject: [PATCH] docs: a bunch of improvements --- README.md | 4 +--- assets/banner.png | Bin 36478 -> 83796 bytes docs/.vitepress/config.mjs | 4 ++++ docs/guide/index.md | 31 +++++++++++++++++-------------- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index d2f3d1e..0bb7236 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,4 @@ Cap is licensed under the Apache License 2.0. - - -### Need help? [Ask Devin →](https://deepwiki.com/tiagorangel1/cap) + \ No newline at end of file diff --git a/assets/banner.png b/assets/banner.png index 16083e1201494f3083bc5bdf31f28231c0c2efca..2226ed34c3b9c68745f2c60d7098a624d389f79f 100644 GIT binary patch delta 55317 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 HUSIlemZj7@ delta 7627 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 diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 13bacc1..d060824 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -153,6 +153,7 @@ export default withMermaid({ { text: "Philosophy", link: "/guide/philosophy.md" }, { text: "Modes", + collapsed: false, items: [ { text: "Standalone mode", link: "/guide/standalone.md" }, { text: "Floating mode", link: "/guide/floating.md" }, @@ -161,6 +162,7 @@ export default withMermaid({ }, { text: "Libraries", + collapsed: false, items: [ { text: "@cap.js/server", link: "/guide/server.md" }, { text: "@cap.js/widget", link: "/guide/widget.md" }, @@ -170,6 +172,7 @@ export default withMermaid({ }, { text: "Checkpoints", + collapsed: false, items: [ { text: "About", link: "/guide/middleware/index.md" }, { text: "Elysia", link: "/guide/middleware/elysia.md" }, @@ -178,6 +181,7 @@ export default withMermaid({ }, { text: "Proof-of-work", + collapsed: false, items: [ { text: "Effectiveness", link: "/guide/effectiveness.md" }, { text: "How does it work", link: "/guide/workings.md" }, diff --git a/docs/guide/index.md b/docs/guide/index.md index 5e9e382..97ca12b 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -4,13 +4,20 @@ outline: deep # Quickstart -[[toc]] +Cap is a modern, lightweight, open-source CAPTCHA alternative using SHA-256 proof-of-work. -## Requirements +Unlike traditional CAPTCHAs, Cap: -- **Server-side library:** At least Node 14. Most modern Bun or Deno versions should work too. If you're using Glitch, make sure to set Node 14 or higher in your `engines` field in `package.json`. If you don't use a JavaScript runtime, consider using the [Standalone](standalone.md) server. +- Is fast and unobtrusive +- Uses no tracking or cookies +- Uses proof-of-work instead of intrusive puzzles +- Is fully accessible and self-hostable -- **Client-side widget:** All modern browsers should be supported +## Components + +Cap consists mainly of the **widget** (can be used invisibly) and **server** (you can use the Standalone server instead). Alternatively, M2M is also supported and there's also a checkpoint middleware similar to Cloudflare. + +This guide details how to use the usual setup. You can find guides on using the [Standalone server](./standalone.md), [M2M solver](./solver.md), and [checkpoint middleware](./middleware/index.md) in their respective sections. ## Client-side @@ -58,7 +65,9 @@ Alternatively, you can use `onsolve=""` directly within the widget or wrap the w ## Server-side -Cap is fully self-hosted, so you'll need to start a server with the Cap API running at the same URL as specified in the `data-cap-api-endpoint` attribute. This is easy since we've already pre-made a library to help you generate and validate challenges for you. +Cap is fully self-hosted, so you'll need to start a server exposing an API for Cap's methods running at the same URL as specified in the `data-cap-api-endpoint` attribute. This is easy since we've already pre-made a library to help you generate and validate challenges for you. + +At least Node 14 is required. Most modern Bun or Deno versions should work too. If you don't use JavaScript in your server, consider using the [Standalone](standalone.md) server. Start by installing it: @@ -79,9 +88,7 @@ pnpm i @cap.js/server ::: ::: tip -It is recommended to use at least Node.js 14 or Bun 1.0.0. You might experience multiple issues on older versions of these runtimes. - -Additionally, always assume that Cap might fail to protect you. **Always** add extra security measures such as ratelimits. It's also important to keep in mind that Cap doesn't stop potential vulnerabilities in your app. +Don't use JavaScript on your backend? Try the [Standalone mode](./standalone.md). ::: Now, you'll need to change your server code to add the routes that Cap needs to work. Here's an example: @@ -206,7 +213,7 @@ app.listen(3000, () => { ::: -### Token Validation +### Token validation Once the token is generated and captured, you can use it later to validate the user's identity. You can do this by calling `await cap.validateToken` in your server-side code: @@ -214,8 +221,4 @@ Once the token is generated and captured, you can use it later to validate the u await cap.validateToken("..."); // returns { success: Boolean } ``` -Note that the token will immediately be deleted after this. To prevent this, use `await cap.validateToken("...", { keepToken: true })`. - -## LLMs - -You can use this documentation's [llms.txt](/llms.txt) or [llms-full.txt](/llms-full.txt) (~8k tokens) to give to LLMs. +Note that the token will immediately be deleted after this. To prevent this, use `await cap.validateToken("...", { keepToken: true })`. \ No newline at end of file