{"id":19215179,"url":"https://github.com/arcjet/arcjet-challenges","last_synced_at":"2025-04-20T19:32:31.841Z","repository":{"id":249687198,"uuid":"831217840","full_name":"arcjet/arcjet-challenges","owner":"arcjet","description":"Your mission is to implement rate limiting using Arcjet in one (or more!) of these skeleton apps.","archived":true,"fork":false,"pushed_at":"2024-09-21T23:12:09.000Z","size":444,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-20T13:51:19.651Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":null,"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-07-20T00:27:27.000Z","updated_at":"2024-09-30T12:50:26.000Z","dependencies_parsed_at":"2024-07-22T19:43:08.230Z","dependency_job_id":null,"html_url":"https://github.com/arcjet/arcjet-challenges","commit_stats":null,"previous_names":["arcjet/arcjet-challenges"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-challenges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-challenges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-challenges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arcjet%2Farcjet-challenges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arcjet","download_url":"https://codeload.github.com/arcjet/arcjet-challenges/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249951424,"owners_count":21350457,"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":[],"created_at":"2024-11-09T14:12:56.031Z","updated_at":"2025-04-20T19:32:31.514Z","avatar_url":"https://github.com/arcjet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛡️ Arcjet Security Challenges\n\nWelcome to the Arcjet Security Challenges repository! This project contains skeleton apps for four popular web frameworks, each designed to help you learn about implementing rate limiting with Arcjet.\n\n## 🖥️ Frameworks\n\nThis repository includes challenges for the following frameworks:\n\n1. [Next.js](./nextjs)\n2. [Node.js with Express](./express)\n3. [Bun](./bun)\n4. [SvelteKit](./sveltekit)\n\n## 🎯 The Challenge\n\nYour mission is to implement rate limiting using Arcjet in one (or more!) of these skeleton apps.\n\n## 🚀 How to Participate\n\n### 1. Clone this repository to your local machine\n\n```sh\ngit clone https://github.com/arcjet/arcjet-challenges.git\n```\n\n### 2. Choose your framework\n\nAll four example directories contain a working, idiomatic skeleton application written in TypeScript for you to build upon.\n\n### 3. Set up the skeleton app\n\nFollow the specific instructions in the `README.md` file within each framework's directory:\n\n- [README for Next.js](./nextjs/README.md)\n- [README for Node.js with Express](./express/README.md)\n- [README for Bun](./bun/README.md)\n- [README for SvelteKit](./sveltekit/README.md)\n\n### 4. Implement rate limiting\n\n- [Sign up for a free Arcjet account](https://app.arcjet.com/),\n- Find the file in your chosen skeleton app that contains the text `// Arcjet code goes here`,\n- Implemnent Arcjet rate-limiting to set the value of `rateLimited` value to `true` when the user has been rate limited.\n\nUse our [documentation](https://docs.arcjet.com) to help you get started, in particular, the Rate limiting section for your chosen framework.\n\n\u003e 💡 **Tip:** Select a low threshold to easily trigger rate-limiting. For example:\n\u003e\n\u003e - [Fixed window](https://docs.arcjet.com/rate-limiting/algorithms#fixed-window-example) with a `window` of `60s` and a `max` of `5` requests\n\u003e - [Sliding window](https://docs.arcjet.com/rate-limiting/algorithms#sliding-window-example) with an `interval` of `60s` and a `max` of `5` requests\n\u003e - [Token bucket](https://docs.arcjet.com/rate-limiting/algorithms#token-bucket-example) with a `capacity` of `10`, an `interval` of `60s`, and a `refillRate` of `10`\n\n\u003e 🗂️ The file you're looking for is:\n\u003e\n\u003e - Next.js: `src/pages/arcjet-challenge-accepted/index.tsx`\n\u003e - Node.js + Express: `src/pages/arcjet-challenge-accepted/index.ts`\n\u003e - Bun: `src/pages/arcjet-challenge-accepted.ts`\n\u003e - SvelteKit: `src/routes/arcjet-challenge-accepted/+page.server.ts`\n\n### 5. Share feedback (optional)\n\nWe value your insights! 📣 Help shape the future of Arcjet:\n\n📋 [Take our quick survey](https://forms.gle/hn8uWDNjsPeX9Dx18) to share your challenge experience, product feedback, and potentially become an Arcjet ambassador. Your input directly influences our roadmap and community initiatives.\n\n📥 Want to give us general feedback? We'd love to hear your suggestions! Fill in our [general fee3back form](https://forms.gle/).vhpb4myy84APztte8\n\n## 🆘 Need Help?\n\nIf you run into issues or have questions:\n\n- Check the [Arcjet documentation](https://docs.arcjet.com)\n- Join our [Discord community](https://discord.gg/TPra6jqZDC) for support\n- Open an issue in this repository for potential bugs in the skeleton apps\n\n## 🍀 Good Luck!\n\nWe're excited to see your implementations. Happy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcjet%2Farcjet-challenges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcjet%2Farcjet-challenges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcjet%2Farcjet-challenges/lists"}