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

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

Notifications You must be signed in to change notification settings

arcjet/arcjet-challenges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ 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!

About

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

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •