Skip to content
This repository has been archived by the owner on Sep 30, 2024. It is now read-only.

Latest commit

 

History

History
78 lines (50 loc) · 3.23 KB

README.md

File metadata and controls

78 lines (50 loc) · 3.23 KB

🛡️ Arcjet Security Challenges

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.

🖥️ Frameworks

This repository includes challenges for the following frameworks:

  1. Next.js
  2. Node.js with Express
  3. Bun
  4. SvelteKit

🎯 The Challenge

Your mission is to implement rate limiting using Arcjet in one (or more!) of these skeleton apps.

🚀 How to Participate

1. Clone this repository to your local machine

git clone https://github.com/arcjet/arcjet-challenges.git

2. Choose your framework

All four example directories contain a working, idiomatic skeleton application written in TypeScript for you to build upon.

3. Set up the skeleton app

Follow the specific instructions in the README.md file within each framework's directory:

4. Implement rate limiting

  • 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 rateLimited value to true when 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 window of 60s and a max of 5 requests
  • Sliding window with an interval of 60s and a max of 5 requests
  • Token bucket with a capacity of 10, an interval of 60s, and a refillRate of 10

🗂️ 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

5. Share feedback (optional)

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

🆘 Need Help?

If you run into issues or have questions:

🍀 Good Luck!

We're excited to see your implementations. Happy coding!