Welcome 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.
This repository includes challenges for the following frameworks:
Your mission is to implement rate limiting using Arcjet in one (or more!) of these skeleton apps.
git clone https://github.com/arcjet/arcjet-challenges.gitAll four example directories contain a working, idiomatic skeleton application written in TypeScript for you to build upon.
Follow the specific instructions in the README.md file within each framework's directory:
- Sign up for a free Arcjet account,
- Find the file in your chosen skeleton app that contains the text
// Arcjet code goes here, - Implemnent Arcjet rate-limiting to set the value of
rateLimitedvalue totruewhen the user has been rate limited.
Use our documentation to help you get started, in particular, the Rate limiting section for your chosen framework.
💡 Tip: Select a low threshold to easily trigger rate-limiting. For example:
- Fixed window with a
windowof60sand amaxof5requests- Sliding window with an
intervalof60sand amaxof5requests- Token bucket with a
capacityof10, anintervalof60s, and arefillRateof10
🗂️ The file you're looking for is:
- Next.js:
src/pages/arcjet-challenge-accepted/index.tsx- Node.js + Express:
src/pages/arcjet-challenge-accepted/index.ts- Bun:
src/pages/arcjet-challenge-accepted.ts- SvelteKit:
src/routes/arcjet-challenge-accepted/+page.server.ts
We value your insights! 📣 Help shape the future of Arcjet:
📋 Take our quick survey to share your challenge experience, product feedback, and potentially become an Arcjet ambassador. Your input directly influences our roadmap and community initiatives.
📥 Want to give us general feedback? We'd love to hear your suggestions! Fill in our general fee3back form.vhpb4myy84APztte8
If you run into issues or have questions:
- Check the Arcjet documentation
- Join our Discord community for support
- Open an issue in this repository for potential bugs in the skeleton apps
We're excited to see your implementations. Happy coding!