{"id":14959194,"url":"https://github.com/arcjet/arcjet-docs","last_synced_at":"2025-10-24T16:31:35.528Z","repository":{"id":253522954,"uuid":"843741940","full_name":"arcjet/arcjet-docs","owner":"arcjet","description":"Arcjet's documentation.","archived":false,"fork":false,"pushed_at":"2025-02-05T15:57:47.000Z","size":8378,"stargazers_count":9,"open_issues_count":27,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-06T12:42:11.768Z","etag":null,"topics":["arcjet","astro","devtools","docs","markdown","security-tools"],"latest_commit_sha":null,"homepage":"https://docs.arcjet.com","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arcjet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-17T09:26:11.000Z","updated_at":"2025-02-05T15:56:10.000Z","dependencies_parsed_at":"2024-09-05T23:51:04.170Z","dependency_job_id":"7c090ca8-e789-459c-b8ff-ea9ae9e57283","html_url":"https://github.com/arcjet/arcjet-docs","commit_stats":{"total_commits":64,"total_committers":6,"mean_commits":"10.666666666666666","dds":0.53125,"last_synced_commit":"d95268c9ccb9b1f5c4553a2f3f8c86dbda1aa84b"},"previous_names":["arcjet/arcjet-docs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arcjet","download_url":"https://codeload.github.com/arcjet/arcjet-docs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237999783,"owners_count":19399942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcjet","astro","devtools","docs","markdown","security-tools"],"created_at":"2024-09-24T13:19:04.932Z","updated_at":"2025-10-24T16:31:35.521Z","avatar_url":"https://github.com/arcjet.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://arcjet.com\" target=\"_arcjet-home\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg\"\u003e\n    \u003cimg src=\"https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg\" alt=\"Arcjet Logo\" height=\"128\" width=\"auto\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n# Arcjet Docs\n\n[View the docs](docs).\n\n[Arcjet][arcjet] helps developers protect their apps in just a few lines of\ncode. Bot detection. Rate limiting. Email validation. Attack protection. Data\nredaction. A developer-first approach to security.\n\nTry an Arcjet protected app live at [https://example.arcjet.com][example-url].\n\n## Commands\n\nThese docs are built using [Astro][astro] and [Starlight][starlight]. All commands are run from the\nroot of the project, from a terminal:\n\n| Command                   | Action                                           |\n| :------------------------ | :----------------------------------------------- |\n| `npm install`             | Installs dependencies                            |\n| `npm run dev`             | Starts local dev server at `localhost:4321`      |\n| `npm run build`           | Build your production site to `./dist/`          |\n| `npm run preview`         | Preview your build locally, before deploying     |\n| `npm run astro ...`       | Run CLI commands like `astro add`, `astro check` |\n| `npm run astro -- --help` | Get help using the Astro CLI                     |\n\n## Adding content\n\n### Add a framework\n\n- in `lib/prefs.ts` add the key and label to the `frameworks` array\n- in `src/components/icons/tech/$Framework.tsx` add an icon\n- in `src/components/FrameworkSwitcher.tsx` reference the icon in the\n  `frameworkIcon` object\n- in `src/components/FrameworkLinks.tsx` add a `case \"$framework\"` for the icon\n- in `src/content/docs/get-started.mdx` add to `frameworks` and\n  `titleByFramework`, define steps, and use those steps where appropriate\n- in `src/content/docs/reference/$framework.mdx` write a reference guide\n- in `src/components/SdkReferenceLinkByFramework.mdx` and `src/lib/sidebar.ts`\n  link that reference\n- in `public/llms.txt` under SDKs link that reference\n\n### Add framework options to a page\n\nTo add a framework option to a page such as `src/content/docs/get-started.mdx`:\n\n- Add your framework to the frontmatter `frameworks`\n- Add the page title to the frontmatter `titleByFramework`\n- Use `\u003cSlotByFramework /\u003e` or `\u003cTextByFramework /\u003e` components to display\n  content for the currently selected framework:\n\n  ```mdx\n  \u003cSlotByFramework client:load\u003e\n    ...\n    \u003cSomeContent slot=\"$framework\" /\u003e\n  \u003c/SlotByFramework\u003e\n  ```\n\n  This will make `\u003cSomeContent /\u003e` only visible when the new framework is selected.\n\n### In-page framework links\n\nWe provide a framework selection component for each page including the docs home. However the docs home is the only page that always display the links. The other pages will hide the component if a framework is already selected.\n\nIn home:\n\n```mdx\n\u003cFrameworkLinks\n  title=\"Get started\"\n  path=\"/get-started\"\n  alwaysShow\n  client:load\n/\u003e\n```\n\n## Support\n\n[Join our Discord server][discord-invite] or [reach out for support][support].\n\n## Security\n\nThis repository follows the [Arcjet Security Policy][arcjet-security].\n\n## License\n\nAll content in this repository is licensed under the [Creative Commons\nAttribution 4.0 International License](./LICENSE) and all code is licensed under\nthe [Apache License, Version 2.0](./LICENSE-CODE).\n\n[arcjet]: https://arcjet.com\n[astro]: https://astro.build\n[starlight]: https://starlight.astro.build\n[arcjet-security]: https://docs.arcjet.com/security\n[example-url]: https://example.arcjet.com\n[discord-invite]: https://arcjet.com/discord\n[support]: https://docs.arcjet.com/support\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcjet%2Farcjet-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcjet%2Farcjet-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcjet%2Farcjet-docs/lists"}