[{"id":"api-with-cdk/README.md","title":"Building an API with CDK and Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n  <h3 align=\"center\">Building an API with CDK and Redis</h3>\n\n  <p align=\"center\">\n   Learn how to utilize Upstash with CDK\n  </p>\n</div>\n\nThis example implements a Serverless Histogram API powered by serverless Redis ([Upstash](https://upstash.com)).\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/histogram) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/api-with-cdk/README.md","author":"noahfschr","platforms":["AWS"]},{"id":"auto-complete-api/README.md","title":"Autocomplete API with Serverless Redis","products":["redis"],"stack":["Node.js"],"useCases":["Autocomplete"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Autocomplete API with Serverless Redis</h3>\n\n  <p align=\"center\">\n    Serverless Upstash Redis-Powered suggestions for country names\n\n  </p>\n</div>\n\n## Autocomplete API with Serverless Redis\n\n### Demo\n\nYou can test the demo version of this project [here](https://auto-complete-example.vercel.app/)\n\n### Project\n\nThis example implements an autocomplete API powered by serverless Redis.\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/auto_complete_with_serverless_redis) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/auto-complete-api/README.md","author":"noahfschr","previewUrl":"https://auto-complete-example.vercel.app/","platforms":["Vercel"]},{"id":"aws-lambda-redis-rest/README.md","title":"Using AWS Lambda with Upstash Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Using AWS Lambda with Upstash Redis</h3>\n\n  <p align=\"center\">\n    Use Serverless Redis with Lambda functions\n\n  </p>\n</div>\n\nThis example showcases a basic AWS Lambda function that utilizes Upstash Redis.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/aws-lambda-redis-rest/README.md","author":"enesakar","platforms":["AWS"]},{"id":"benchmark-with-thundra/readme.md","title":"Benchmark Your Serverless Database with Thundra","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Benchmark Your Serverless Database with Thundra</h3>\n\n  <p align=\"center\">\n    Thundra empowers you to benchmark your serverless database performance effortlessly by integrating Upstash Redis, enabling accurate measurement, analysis, and optimization of your database operations.\n  </p>\n</div>\n\nHere, we benchmarked two AWS Lambda functions which fetch records from two different Serverless databases: AWS DynamoDB and Upstash Redis.\n\nBoth databases are loaded with 7001 sample articles and both functions fetch top 10 articles with a query equivalent to:\n\n```shell\nselect * from news where section = ‘World’ order by view_count desc;\n```\n\n### Redis Results\n\n![](redis.png)\n\n### DynamoDB Results\n\n![](dynamo.png)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/benchmark-with-thundra/readme.md","author":"enesakar","platforms":["AWS"]},{"id":"bull/readme.md","title":"Using Bull with Upstash","products":["redis"],"stack":["Node.js"],"useCases":["Queue"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Using Bull with Upstash</h3>\n\n  <p align=\"center\">   \n    A Bull Queue powered by Redis for processing video transcoding jobs with customizable settings and job management capabilities.\n  </p>\n</div>\n                                                                                \nConfigure `stalledInterval`, `guardInterval` and `drainDelay` for efficient use of bandwidth.\n\nSee [the Bull docs](https://github.com/OptimalBits/bull/blob/master/REFERENCE.md#queue) for details about the advanced configuration parameters.\n\n```javascript\nvar settings = {\n  // lockDuration: 30000, // Key expiration time for job locks.\n  // lockRenewTime: 15000, // Interval on which to acquire the job lock\n  // maxStalledCount: 1, // Max amount of times a stalled job will be re-processed.\n  // retryProcessDelay: 5000, // delay before processing next job in case of internal error.\n  // backoffStrategies: {}, // A set of custom backoff strategies keyed by name.\n  stalledInterval: 300000, // How often check for stalled jobs (use 0 for never checking).\n  guardInterval: 300000, // Poll interval for delayed jobs and added jobs.\n  drainDelay: 300, // A timeout for when the queue is in drained state (empty waiting for jobs).\n};\nvar videoQueue = new Queue(\"video transcoding\", \"YOUR_REDIS_URL\", {\n  settings: settings,\n});\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/bull/readme.md","author":"noahfschr"},{"id":"cloud-run-sessions/README.md","title":"Session Management on Google Cloud Run with Serverless Redis","products":["redis"],"stack":["Node.js"],"useCases":["Session Management"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Session Management on Google Cloud Run with Serverless Redis</h3>\n\n  <p align=\"center\">\n    Efficient session management implemented on Google Cloud Run, utilizing Serverless Redis for seamless storage and retrieval of session data.\n  </p>\n</div>\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/cloud_run_sessions) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/cloud-run-sessions/README.md","author":"enesakar","platforms":["GCP"]},{"id":"cloudflare-websockets/README.md","title":"Serverless WebSocket Chat on CF Workers","products":["redis"],"stack":["React","WebSocket"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Real-time WebSocket Chat</h3>\n\n  <p align=\"center\">\n    Build a real-time chat application using Cloudflare Workers, WebSocket API, and Upstash Redis\n  </p>\n</div>\n\nThis example demonstrates how to create a serverless real-time chat application using Cloudflare Workers WebSocket API for real-time communication and Upstash Redis for message persistence. The frontend is built with React and deployed on Cloudflare Pages.\n\nYou can see the demo [here](https://486e5d1a.client-260.pages.dev)\n\n# Project Details\n\nThe goal of this project is to create a serverless chat application without maintaining any traditional WebSocket servers. To achieve this, we use Cloudflare Workers with its WebSocket API for handling real-time connections, and Upstash Redis sorted sets for message persistence. The frontend is a React application that connects to the Worker via WebSocket.\n\n## Real-time Communication with WebSocket\n\nThe application uses Cloudflare Workers' WebSocket API to handle real-time bidirectional communication. Each client maintains a WebSocket connection to the Worker, which handles message broadcasting and persistence. The system includes:\n\n- Real-time message delivery\n- Automatic reconnection handling\n- Connection status indicators\n- Message history on connection\n\n## Message Storage with Redis\n\nWe use Upstash Redis sorted sets to store chat messages with timestamps as scores. This provides:\n\n- Efficient message storage and retrieval\n- Automatic message ordering by timestamp\n- Easy pagination for message history\n- Message persistence across connections\n\n## Features\n\n- Real-time bidirectional communication\n- Message persistence with Redis sorted sets\n- Automatic reconnection handling\n- Connection status indicators\n- Message history on connection\n- Clean mobile-responsive UI\n- Modern chat bubble interface\n- Typing indicators (optional)\n\n# Deployment\n\n## Prerequisites\n\n1. Upstash Redis database\n2. Cloudflare account\n3. wrangler CLI installed (`npm i -g wrangler`)\n\n## Environment Variables\n\nEdit the environment variables in the `wrangler.toml` file of your `worker` directory:\n\n```toml\nname = \"chat-app\"\nmain = \"src/index.ts\"\ncompatibility_date = \"2024-01-01\"\n\n[vars]\nUPSTASH_REDIS_REST_URL = \"YOUR_REDIS_URL\"\nUPSTASH_REDIS_REST_TOKEN = \"YOUR_REDIS_TOKEN\"\n```\n\n## Deploy the Worker\n\n```bash\ncd worker\npnpm install\nnpm run deploy\n```\n\n## Deploy the Frontend\n\n```bash\ncd client\npnpm install\npnpm run deploy\n```\n\n### Learn More\n\nTo learn more about the technologies used, check out:\n\n- [Upstash Redis Documentation](https://docs.upstash.com/redis)\n- [Cloudflare Workers Documentation](https://developers.cloudflare.com/workers)\n- [Cloudflare WebSocket API](https://developers.cloudflare.com/workers/runtime-apis/websockets)\n- [Upstash Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/cloudflare-websockets/README.md","author":"fahreddinozcan","previewUrl":"https://486e5d1a.client-260.pages.dev","platforms":["Cloudflare"]},{"id":"coin-price-list/README.md","title":"Backendless Coin Price List with GraphQL","products":["redis"],"stack":["Node.js"],"useCases":["GraphQL"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Backendless Coin Price List with GraphQL</h3>\n\n  <p align=\"center\">\n    List coin prices directly accessing the Redis database via GraphQL API.\n\n  </p>\n</div>\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/coin_price_list) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/coin-price-list/README.md","author":"noahfschr","blogUrl":"https://upstash.com/docs/redis/tutorials/coin_price_list"},{"id":"content-moderation-with-kafka/README.md","title":"Content Moderation with Kafka","products":["kafka","redis"],"stack":["Next.js"],"useCases":["Data Storage"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Content Moderation with Kafka</h3>\n\n  <p align=\"center\">\n    Utilize Upstash Redis, Kafka, and Next.js to enable real-time content moderation, ensuring safety and appropriateness of user-generated content on online platforms.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/content-moderation-with-kafka/README.md","author":"enesakar","platforms":["Vercel","AWS"]},{"id":"edge-analytics-with-cloudflare-workers/README.md","title":"Edge Analytics with Cloudflare Workers","products":["redis"],"stack":["Node.js"],"useCases":["Analytics"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Edge Analytics with Cloudflare Workers</h3>\n\n  <p align=\"center\">\nAccess log analytics with CloudFlare Workers and Upstash Redis.\n  </p>\n</div>\n\nThis example erforms edge analytics on access logs using CloudFlare Workers and Upstash Redis, extracting page views, unique visitors, top countries, and top pages for a specified date.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/edge-analytics-with-cloudflare-workers/README.md","author":"noahfschr","platforms":["Cloudflare"]},{"id":"edge-leaderboard/README.md","title":"Leaderboard with Cloudflare and Redis","products":["redis"],"stack":["Node.js"],"useCases":["Leaderboard"],"languages":["js"],"body":"\n\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Leaderboard with Cloudflare and Redis</h3>\n\n  <p align=\"center\">\n    Implement a Leaderboard API At the Edge using Cloudflare Workers and Redis.\n  </p>\n</div>\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/edge_leaderboard).\n\n## Run the Example\n- Copy `wrangler.toml.example` to `wrangler.toml`\n- Replace TOKEN with [Upstash](https://upstash.com) Database REST Token\n- Replace account_id with Cloudflare account id.\n- Run `wrangler dev`\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/edge-leaderboard/README.md","author":"noahfschr","platforms":["Cloudflare"]},{"id":"elixir-with-redis/README.md","title":"Elixir with Redis","products":["redis"],"stack":["Elixir","Phoenix","fly.io"],"useCases":["State Store"],"languages":["elixir"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Elixir with Redis</h3>\n\n  <p align=\"center\">\n    Discover the capabilities of deploying a Phoenix app on Fly with an Upstash Redis database, improving your application's performance and scalability. Harness the power of Redis as a high-performance data store, seamlessly integrated with an Phoenix app.\n  </p>\n</div>\n\nA sample Phoneix app deployed on Fly which uses Redis to store results of requests to an external API.\n\nSee the [tutorial](https://upstash.com/docs/redis/quickstarts/elixir) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n\n\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/elixir-with-redis/README.md","author":"CahidArda"},{"id":"express-session-with-redis/README.md","title":"Express Session with Serverless Redis","products":["redis"],"stack":["Node.js"],"useCases":["Session Management"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Express Session with Serverless Redis</h3>\n\n  <p align=\"center\">\n   Express app with Redis session management for counting and displaying page views on specific routes\n  </p>\n</div>\n\nThis example shows how to use Upstash as the session storage of your Express application.\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/express_session) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/express-session-with-redis/README.md","author":"noahfschr"},{"id":"getstarted-nextjs/README.md","title":"Get Started with Next.js and Upstash Kafka","products":["redis","kafka"],"stack":["Next.js"],"useCases":["Data Storage","Data Streaming"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Get Started with Next.js and Upstash Kafka</h3>\n\n  <p align=\"center\">\n        This project provides a comprehensive guide and code samples for developers to seamlessly integrate Next.js with Upstash Kafka, harnessing the combined power of Next.js's robust frontend framework and Upstash Kafka's real-time messaging capabilities to build highly scalable and efficient applications.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/getstarted-nextjs/README.md","author":"enesakar","platforms":["Vercel"]},{"id":"github-kafka-connect/README.md","title":"Github Kafka Connect","products":["redis","kafka"],"stack":["Node.js"],"useCases":["Data Streaming"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Github Kafka Connect</h3>\n\n  <p align=\"center\">\n    Integrate GitHub and Kafka using Upstash Redis for authentication and Kafka for real-time event streaming, enabling efficient transmission of GitHub events to a Kafka topic.\n  </p>\n</div>\n\nSee the [blog post](https://blog.upstash.com/fastly-compute-edge-with-redis) to learn more.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/github-kafka-connect/README.md","author":"enesakar"},{"id":"histogram-api/readme.md","title":"Serverless Histogram API with Redis","products":["redis"],"stack":["Node.js"],"useCases":["Analytics"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Serverless Histogram API with Redis</h3>\n\n  <p align=\"center\">\n   Node.js functions using Redis for data retrieval, recording, and generating histograms, with error handling and JSON response.\n  </p>\n</div>\n\nThis example implements a Serverless Histogram API powered by serverless Redis ([Upstash](https://upstash.com)).\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/histogram) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/histogram-api/readme.md","author":"noahfschr"},{"id":"kafka-produce-and-consume-for-aiokafka/README.md","title":"Produce and Consume for aiokafka","products":["redis","kafka"],"stack":["Flask"],"useCases":["Data Streaming"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Produce and Consume for aiokafka</h3>\n\n  <p align=\"center\">\n    This project enables seamless production and consumption of messages using Upstash Redis and Kafka, ensuring efficient and reliable real-time communication with the aiokafka library.\n  </p>\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/kafka-produce-and-consume-for-aiokafka/README.md","author":"enesakar"},{"id":"kafka-produce-in-cloudflare-workers/README.md","title":"Kafka in Cloudflare Workers","products":["kafka"],"stack":["Node.js"],"useCases":["Data Streaming"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Kafka in Cloudflare Workers</h3>\n\n  <p align=\"center\">\n        Produce kafka messages for Cloudflare Workers.\n  </p>\n</div>\n\nThis project empowers developers to seamlessly produce messages to Upstash Kafka using Cloudflare Workers, leveraging the power of serverless computing and the robust event streaming capabilities of Kafka, enabling efficient and scalable message production in distributed environments.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/kafka-produce-in-cloudflare-workers/README.md","author":"enesakar","platforms":["Cloudflare"]},{"id":"kafka-produce-in-lambda/README.md","title":"Kafka in AWS Lambda","products":["kafka"],"stack":["Node.js"],"useCases":["Data Streaming"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Kafka in AWS Lambda</h3>\n\n  <p align=\"center\">\n        Use Serverless Kafka to Produce Events in AWS Lambda\n  </p>\n</div>\n\nIn this tutorial, we will produce events to Upstash Kafka from an AWS Lambda function.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/kafka-produce-in-lambda/README.md","author":"enesakar","platforms":["AWS"]},{"id":"nestjs-url-shortener/README.md","title":"NestJS Url Shortener with Upstash Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["ts"],"body":"\n# NestJS Upstash Redis URL Shortener\n\nA simple URL shortener implemented in NestJS using Upstash Redis.\n\n## Overview\n\nThis repo guides you through the process of building a URL shortener with NestJS and utilizing Upstash Redis for efficient storage and retrieval.\n\n## Features\n\n- **Shorten URL**: POST requests to `/shorten` with the original URL to get a shortened version.\n- **Retrieve Shortened URL**: GET requests to `/get-shortened-url/:id` to retrieve the original URL associated with the provided ID.\n- **Retrieve All Shortened URLs**: GET requests to `/get-all-shortened-url/:id` to retrieve all URLs associated with a specific ID.\n\n\nSee the <a href=\"https://upstash.com/blog/nestjs-redis-url-shortener\">tutorial</a> for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nestjs-url-shortener/README.md","author":"ogzhanolguncu"},{"id":"netlify-edge-with-redis/README.md","title":"Netlify Edge with Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Netlify Edge with Redis</h3>\n\n  <p align=\"center\">\n   Deno function utilizing Upstash Redis to increment a counter and return the updated value as a response.\n  </p>\n</div>\n\nExample project which accesses Upstash Redis from Netlify Edge Functions.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/netlify-edge-with-redis/README.md","author":"noahfschr","platforms":["Netlify"]},{"id":"netlify-graph/README.md","title":"Next + Netlify Starter","products":["redis"],"stack":["Next.js"],"useCases":["Analytics"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next + Netlify Starter</h3>\n\n  <p align=\"center\">\n   Next.js example for instant deployment to Netlify, featuring sample components, global stylesheet, and essential build plugin for advanced functionalities.\n  </p>\n</div>\n \n[![Netlify Status](https://api.netlify.com/api/v1/badges/46648482-644c-4c80-bafb-872057e51b6b/deploy-status)](https://app.netlify.com/sites/next-dev-starter/deploys)\n\nThis is a [Next.js](https://nextjs.org/) v12 project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) and set up to be instantly deployed to [Netlify](https://url.netlify.com/SyTBPVamO)!\n\nThis project is a very minimal starter that includes 2 sample components, a global stylesheet, a `netlify.toml` for deployment, and a `jsconfig.json` for setting up absolute imports and aliases. It also includes the [Essential Next.js Build Plugin](https://github.com/netlify/netlify-plugin-nextjs), which will allow for you to implement features like Preview Mode, server-side rendering/incremental static regeneration via Netlify Functions, and internationalized routing.\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/next-netlify-starter&utm_source=github&utm_medium=nextstarter-cs&utm_campaign=devex-cs)\n\n(If you click this button, it will create a new repo for you that looks exactly like this one, and sets that repo up immediately for deployment on Netlify)\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.\n\n### Installation options\n\n**Option one:** One-click deploy\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/next-netlify-starter&utm_source=github&utm_medium=nextstarter-cs&utm_campaign=devex-cs)\n\n**Option two:** Manual clone\n\n1. Clone this repo: `git clone https://github.com/netlify-templates/next-netlify-starter.git`\n2. Navigate to the directory and run `npm install`\n3. Run `npm run dev`\n4. Make your changes\n5. Connect to [Netlify](https://url.netlify.com/Bk4UicocL) manually (the `netlify.toml` file is the one you'll need to make sure stays intact to make sure the export is done and pointed to the right stuff)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/netlify-graph/README.md","author":"chronark","platforms":["Netlify"]},{"id":"next-caching-with-redis/README.md","title":"Caching for Next.js App with Redis","products":["redis"],"stack":["Next.js"],"useCases":["Caching"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Caching for Next.js App with Redis</h3>\n\n  <p align=\"center\">\n   Speed up your Next.js application using Serverless Redis\n  </p>\n</div>\n\nSee [the app](https://next-caching-with-redis.vercel.app/) and see [the blog post](https://blog.upstash.com/nextjs-caching-with-redis)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)","githubUrl":"https://github.com/upstash/examples/blob/main/examples/next-caching-with-redis/README.md","author":"ademilter","previewUrl":"https://next-caching-with-redis.vercel.app/","blogUrl":"https://upstash.com/blog/nextjs-caching-with-redis","platforms":["Vercel"]},{"id":"next-chatapp-with-kafka/README.md","title":"Chat Application with Next.js and Upstash Kafka","products":["redis","kafka"],"stack":["Next.js","WebSocket"],"useCases":["State Store","Caching"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Chat Application with Next.js and Upstash Kafka</h3>\n\n  <p align=\"center\">\n    Create a real-time chat application using Next.js, Upstash Kafka and Upstash Redis. This project enables user to create clients, chat room with scalable performance. Guide also includes deployment to Fly.io\n  </p>\n</div>\n\nWelcome! This example showcases an interactive messaging platform that harnesses the power of Upstash Kafka, Upstash Redis, and Next.js. Through this example, you will gain hands-on experience in utilizing Upstash Redis and Upstash Kafka for a robust real-time communication system and learn to integrate various technologies with Upstash.\n\n## Demo\n\nTo see the demo version of this project, please navigate to [here](https://next-message.fly.dev/).\n\nYou can also build your own demo following the [blogpost of this project](https://upstash.com/blog/next-chatapp-with-kafka). It describes the development and deployment process in detail.\n\n## Project Overview\n\nThe goal of this example is to develop a real-time chat application that allows users to communicate through multiple clients, each with a unique username. The application consists of two main pages: client registration and chat room.\n\n### Client Registration\n\nThe client registration page allows users to create multiple clients, each with a unique username. Upon clicking a client's username, users are directed to a dedicated chat room associated with that specific client.\n\n### Chat Room\n\nThe chat room page enables real-time communication between clients. When users click on a client's username and enter a chat room, they can send and receive messages in real time. Users can also access the history of the chatroom.\n\n### Application Logic\n\nThe chat application's logic is as follows:\n\n- Users create multiple clients on the index page, each with a unique username.\n- Clicking on a client's username opens a new tab with a separate client and a unique path.\n- Each client establishes a WebSocket connection to a message server.\n- Messages sent from a client are directed to the associated message server via WebSocket.\n- Message servers handle the message traffic by routing messages to a Kafka Broker.\n- Each message server runs a Node.js thread to manage incoming messages.\n- Consumed messages from Kafka are sent to clients through WebSocket connections.\n- The react-use-websocket library is used to consume incoming messages on the client side.\n\n### Data Storage\n\nUpstash Redis: The application utilizes Upstash Redis to store message history. Messages produced to Kafka are also persisted in the Redis database. Old messages are retrieved from Upstash Redis upon creating a new client and are displayed in the chat interface.\n\n### Deployment\n\nThe current version of this example is deployed to Fly.io. You can check out the [blogpost](https://upstash.com/blog/next-chatapp-with-kafka) to learn about the deployment process.\n\n## Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/next-chatapp-with-kafka/README.md","author":"fahreddinozcan","previewUrl":"https://next-message.fly.dev","blogUrl":"https://upstash.com/blog/next-chatapp-with-kafka","platforms":["fly.io"]},{"id":"next-edge-api/README.md","title":"Next.js API","products":["redis"],"stack":["Next.js"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js API</h3>\n\n  <p align=\"center\">\n   Boost your Next.js API development with Upstash Redis, integrating powerful caching, efficient data storage, and real-time data processing for scalable and robust applications.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/next-edge-api/README.md","author":"enesakar"},{"id":"next-todo-app-with-redis/README.md","title":"Next.js Todo App with Redis","products":["redis"],"stack":["Next.js"],"useCases":["Data Storage"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js Todo App with Redis</h3>\n\n  <p align=\"center\">\n   Create your todo app with Next.js and Redis\n  </p>\n</div>\n\n### Demo\n\n[Demo](https://next-todo-app-with-redis.vercel.app/)\n\n### Developing\n\nOnce you've created a project and installed dependencies with `yarn` start a\ndevelopment server:\n\n```bash\nyarn run dev\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/next-todo-app-with-redis/README.md","author":"ademilter","previewUrl":"https://next-todo-app-with-redis.vercel.app/","platforms":["Vercel"]},{"id":"nextauth-upstash-redis/README.md","title":"NextAuth.js with Upstash Redis","products":["redis"],"stack":["Next.js","Auth.js"],"useCases":["Authentication","Session Management"],"languages":["ts"],"body":"\nThis is an example of how to do [Next.js](https://nextjs.org/) Authentication with [NextAuth.js](https://next-auth.js.org/) and [Serverless Redis by Upstash](https://upstash.com/).\n\n## Getting Started\n\n- Download or Clone this repository\n\n- Install all dependencies\n\n```bash\nnpm install\n# or\nyarn install\n# or\npnpm install\n```\n\n- Copy `.env.example` to `.env.local` and check the `.env.example` file to fill in the environment variables\n\n- Run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) to see the app.\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextauth-upstash-redis/README.md","author":"moinulmoin","previewUrl":"https://upstash-redis-with-nextauth.vercel.app"},{"id":"nextjs-appdir-todo-app-with-redis/README.md","title":"Next.js Todo App with Redis using app directory","products":["redis"],"stack":["Next.js","Typescript"],"useCases":["Primary Database"],"languages":["ts"],"body":"\n### Demo\n\n[Demo](https://redis-todo-tau.vercel.app/)\n\n### Prerequisites\n\n**Node version 18.x.x**\n\n### Cloning the repository\n\n```shell\ngit clone https://github.com/upstash/examples.git\n```\n\n### Install packages\n\n```shell\nnpm i\n```\n\n### Setup .env file\n\n```\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n```\n\n\n### Start the app\n\n```shell\nnpm run dev\n```\n\n## Available commands\n\nRunning commands with npm `npm run [command]`\n\n| command         | description                              |\n| :-------------- | :--------------------------------------- |\n| `dev`           | Starts a development instance of the app |\n| `build`         | To build your application                |\n| `start`         | Starts a production  instance of the app |\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-appdir-todo-app-with-redis/README.md","author":"trace2798"},{"id":"nextjs-edge/README.md","title":"Next.js Edge Functions","products":["redis"],"stack":["Next.js"],"useCases":["Data Storage"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js Edge Functions</h3>\n\n  <p align=\"center\">\n   Supercharge Next.js Edge Functions with Upstash Redis, integrating caching, efficient data storage, and real-time data processing for lightning-fast and highly responsive edge computing.\n  </p>\n</div>\n\nThis project is an example which uses Serverless Redis with Next.js Edge functions.\n\nSee [the blog post](https://blog.upstash.com/getstarted-nextjs-edge-with-redis) to learn more.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-edge/README.md","author":"chronark","blogUrl":"https://upstash.com/blog/getstarted-nextjs-edge-with-redis"},{"id":"nextjs-feedback-form-ratelimit-resend/README.md","title":"Rate-limiting a feedback form.","products":["redis"],"stack":["Next.js"],"useCases":["Ratelimit"],"languages":["ts"],"body":"\nThis example show a way of how you can implement [rate-limiting](https://github.com/upstash/ratelimit) using Upstash. In this example the feedback form is rate-limited.\n\n### Demo\n\n[Demo]()\n\n### Prerequisites\n\n**Node version 18.x.x**\n\n### Cloning the repository\n\n```shell\ngit clone https://github.com/upstash/examples.git\n```\n\n### Install packages\n\n```shell\nnpm i\n```\n\n### Setup .env file\n\n```\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\nRESEND_API_KEY=\n\n```\n\n### Start the app\n\n```shell\nnpm run dev\n```\n\n## Available commands\n\nRunning commands with npm `npm run [command]`\n\n| command | description                              |\n| :------ | :--------------------------------------- |\n| `dev`   | Starts a development instance of the app |\n| `build` | To build your application                |\n| `start` | Starts a production instance of the app  |\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-feedback-form-ratelimit-resend/README.md","author":"trace2798"},{"id":"nextjs-todo/README.md","title":"Next.js Todo App","products":["redis"],"stack":["Next.js"],"useCases":["Data Storage"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js Todo App</h3>\n\n  <p align=\"center\">\n   Create a functioning todo app with Next.js\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-todo/README.md","author":"enesakar"},{"id":"nextjs-upstash-query/README.md","title":"@upstash/query with Next.js","products":["redis"],"stack":["Next.js","Vercel"],"useCases":["Data Storage"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">@upstash/query with Next.js</h3>\n\n  <p align=\"center\">\n   Using @upstash/query with Next.js server components to build blazing fast filters on your data.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\n1. Create an Upstash database and get the connection url and token.\n2. Add them to your `.env` file\n```env .env\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n```\n\n3. Run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-upstash-query/README.md","author":"chronark","blogUrl":"https://upstash.com/blog/query"},{"id":"nextjs-waiting-room/README.md","title":"Next.js Waiting Room","products":["redis"],"stack":["Next.js"],"useCases":["Queue"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js Waiting Room</h3>\n\n  <p align=\"center\">\n   Next.js project bootstrapped with create-next-app, featuring local development server, API routes, and seamless deployment using Vercel, with resources for learning and documentation.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-waiting-room/README.md","author":"chronark","blogUrl":"https://upstash.com/blog/nextjs-edge-waiting-room","platforms":["Vercel"]},{"id":"nextjs-with-redis/README.md","title":"Next.js with Redis","products":["redis"],"stack":["Next.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Next.js with Redis</h3>\n\n  <p align=\"center\">\n   Transform your Next.js applications with Redis as a state holder, enabling efficient state management, scalability, and real-time updates for an enhanced user experience.\n  </p>\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nextjs-with-redis/README.md","author":"CahidArda"},{"id":"nuxt-with-redis/README.md","title":"Caching for Nuxt App with Redis","products":["redis"],"stack":["Nuxt"],"useCases":["Caching"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Caching for Nuxt App with Redis</h3>\n\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/nuxt-with-redis/README.md","author":"CahidArda","platforms":["Vercel"]},{"id":"pure-javascript-with-redis/README.md","title":"Vanilla JavaScript with Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Vanilla JavaScript with Redis</h3>\n\n  <p align=\"center\">\n   Example of using the Redis Upstash API with Pure Javascript\n  </p>\n</div>\n\nA sample web application which uses Redis with Pure Javascript.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/pure-javascript-with-redis/README.md","author":"ademilter"},{"id":"ratelimit-with-vercel-kv/README.md","title":"Ratelimiting with Vercel KV","products":["redis"],"stack":["Next.js"],"useCases":["Ratelimit"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Ratelimiting with Vercel KV</h3>\n\n  <p align=\"center\">\n    Ratelimit your serverless and edge functions with Vercel KV\n\n  </p>\n</div>\n\nThis example showcases how you can add serverless ratelimiting using [@upstash/ratelimit](https://github.com/upstash/ratelimit) and Vercel KV.\n\n## Demo\n\n[ratelimit-with-vercel-kv.vercel.app](https://ratelimit-with-vercel-kv.vercel.app/)\n\n## Getting Started\n\n### Prerequisites\n\nAll you need is a Vercel account and [Vercel KV database](https://vercel.com/storage/kv)\n\n### Quickstart\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/upstash/examples.git\n   cd examples/examples\n   ```\n2. Install packages\n   ```sh\n   pnpm install\n   ```\n3. Enter your secrets in `.env`\n\n   ```.env\n   KV_URL=\"\"\n   KV_REST_API_URL=\"\"\n   KV_REST_API_TOKEN=\"\"\n   KV_REST_API_READ_ONLY_TOKEN=\"\"\n\n   ```\n\n4. Run the app\n   ```sh\n   pnpm dev\n   ```\n5. Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/ratelimit-with-vercel-kv/README.md","author":"chronark","previewUrl":"https://ratelimit-with-vercel-kv.vercel.app/","platforms":["Vercel"]},{"id":"ratelimiting-python-openai/README.md","title":"Rate Limiting OpenAI Requests","products":["redis"],"stack":["Flask"],"useCases":["Ratelimit","OpenAI"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Ratelimiting OpenAI Requests</h3>\n\n  <p align=\"center\">\n    This Flask project implements a rate-limited OpenAI story generation API using Upstash Redis for rate limiting and OpenAI GPT-3 for generating complete stories.\n\n  </p>\n</div>\n\n## Getting Started\n\n### Prerequisites\n\nIn order to run this locally, you will need python installed and an Upstash Redis database.\nIf you don't have a database ready, you can learn how to do it [here](https://docs.upstash.com/redis)\n\n### Quickstart\n\n1. Clone the repo\n\n   ```sh\n   $ git clone https://github.com/upstash/examples.git\n   $ cd examples/ratelimiting-python-openai\n   ```\n\n2. Install the requirements\n   ```sh\n   $ pip install -r requirements.txt\n   ```\n3. Create the environment variables\n   ```sh\n   $ export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>\n   $ export UPSTASH_REDIS_REST_URL=<YOUR_UPSTASH_REDIS_REST_URL>\n   $ export UPSTASH_REDIS_REST_TOKEN=<YOUR_UPSTASH_REDIS_REST_TOKEN>\n   ```\n4. Run the Flask server\n\n   ```sh\n   $ cd api\n   $ flask --app server run\n   ```\n\n5. Send requests repeatedly and test the rate limit\n   ```sh\n   $ curl http://127.0.0.1:5000/openai\n   ```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/ratelimiting-python-openai/README.md","author":"fahreddinozcan"},{"id":"ratelimiting-python-vercel/README.md","title":"Ratelimiting python serverless functions on Vercel","products":["redis"],"stack":["Flask"],"useCases":["Ratelimit","OpenAI"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Ratelimiting python serverless functions on Vercel</h3>\n\n  <p align=\"center\">\n    Using Upstash Redis to add ratelimiting in python.\n\n  </p>\n</div>\n\n## Demo\n\n[Demo on Vercel](https://examples-ratelimiting-python-vercel.vercel.app)\n\n## Getting Started\n\n### Prerequisites\n\nIn order to run this locally, you will need python installed and an Upstash Redis database.\nIf you don't have a database ready, you can learn how to do it [here](https://docs.upstash.com/redis)\n\n### Quickstart\n\n1. Clone the repo\n   ```sh\n   $ git clone https://github.com/upstash/examples.git\n   $ cd examples/ratelimiting-python-vercel\n   ```\n2. Create the project on Vercel\n\n   ```sh\n   $ vercel\n   ```\n\n3. Enter your secrets in Vercel\n   ```.env\n   UPSTASH_REDIS_REST_URL=\"\"\n   UPSTASH_REDIS_REST_TOKEN=\"\"\n   ```\n4. Deploy to production\n\n   ```sh\n   $ vercel --prod\n   ```\n\n5. Visit the URL provided by Vercel and refresh a few times until you get ratelimited\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/ratelimiting-python-vercel/README.md","author":"chronark","previewUrl":"https://examples-ratelimiting-python-vercel.vercel.app","platforms":["Vercel"]},{"id":"react-native-collecting-logs/README.md","title":"Collecting React Native logs to Upstash Kafka","products":["redis","kafka"],"stack":["React Native"],"useCases":["Logging"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Collecting React Native logs to Upstash Kafka</h3>\n\n  <p align=\"center\">\n        Streamline React Native log collection to Upstash Kafka\n  </p>\n</div>\n\nThis project provides a comprehensive solution for seamlessly capturing, aggregating, and transmitting logs generated by React Native applications to Upstash Kafka. By integrating Upstash Kafka's scalable and reliable messaging system, the project enables efficient log collection and centralized management, empowering developers to streamline debugging, analysis, and monitoring processes for React Native applications.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/react-native-collecting-logs/README.md","author":"omeraytac"},{"id":"react-native-in-app-announcement/README.md","title":"React Native with Upstash","products":["redis"],"stack":["React Native"],"useCases":["Session Management"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">React Native with Upstash</h3>\n\n  <p align=\"center\">\n   \nReact Native app leveraging Upstash Redis for efficient data storage and retrieval, providing seamless integration and enhanced performance.\n  </p>\n</div>\n\nA sample web application which uses Redis with Pure Javascript.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/react-native-in-app-announcement/README.md","author":"omeraytac"},{"id":"react-native-leaderboard/README.md","title":"React Native Leaderboard with Upstash","products":["redis"],"stack":["React Native","Serverless"],"useCases":["Leaderboard"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">React Native Leaderboard with Upstash</h3>\n\n  <p align=\"center\">\n   \nReact Native app leveraging Upstash Redis for efficient data storage and retrieval, providing seamless integration and enhanced performance.\n  </p>\n</div>\n\nA React Native Project with Serverless & Upstash\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/react-native-leaderboard/README.md","author":"omeraytac"},{"id":"redisson/readme.md","title":"Redisson","products":["redis"],"stack":["Redisson"],"useCases":["Data Storage"],"languages":["java"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Redisson</h3>\n\n  <p align=\"center\">\n    Java application using Redisson library to connect to Upstash Redis, creating a map and performing basic operations\n  </p>\n</div>\n\nExample Java code which connect to Upstash with [Redisson](https://github.com/redisson/redisson).\n\nSee the [tutorial](https://upstash.com/docs/redis/tutorials/redisson) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/redisson/readme.md","author":"noahfschr"},{"id":"remix-on-cloudflare-workers/README.md","title":"Blazing fast websites with Remix on Cloudflare Workers and Upstash Redis","products":["redis"],"stack":["Node.js","Remix"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Blazing fast websites with Remix on Cloudflare Workers and Upstash Redis</h3>\n\n  <p align=\"center\">\n    Remix Run app deployed on Cloudflare Workers. \n  </p>\n</div>\n\nThis example showcases how to build a Remix Run app that uses Upstash Redis and is deployed on Cloudflare Workers.\n\nSee the [blog post](https://upstash.com/blog/fast-websites-with-remix-on-cloudflare-and-upstash-redis) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/remix-on-cloudflare-workers/README.md","author":"zunkelty","platforms":["Cloudflare"]},{"id":"remix-todo-app-with-redis/README.md","title":"Remix Todo App with Redis","products":["redis"],"stack":["Node.js","Remix"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Remix Todo App with Redis</h3>\n\n  <p align=\"center\">\n    Remix todo app deployed on Cloudflare Workers. \n  </p>\n</div>\n\n### Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm install\n```\n\n```bash\nnpm run dev\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/remix-todo-app-with-redis/README.md","author":"chronark"},{"id":"serverless-cloud/README.md","title":"Serverless Cloud with Upstash","products":["redis"],"stack":["Next.js"],"useCases":["Session Management"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Serverless Cloud with Upstash</h3>\n\n  <p align=\"center\">\n    Create and deploy a project, that uses Upstash, to cloud.\n  </p>\n</div>\n\n### Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm install\n```\n\n```bash\nnpm run dev\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/serverless-cloud/README.md","author":"enesakar","platforms":["Vercel"]},{"id":"serverless-notification-api/README.md","title":"Serverless Notification API with Redis","products":["redis"],"stack":["React"],"useCases":["Session Management"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Serverless Notification API with Redis</h3>\n\n  <p align=\"center\">\n    Develop a robust Serverless Notification API with Redis, leveraging advanced data storage and retrieval for efficient real-time notifications at scale.\n  </p>\n</div>\n\n# Getting Started with Create React App\n\nThis project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).\n\n## Available Scripts\n\nIn the project directory, you can run:\n\n### `yarn start`\n\nRuns the app in the development mode.\\\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `yarn test`\n\nLaunches the test runner in the interactive watch mode.\\\nSee the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.\n\n### `yarn build`\n\nBuilds the app for production to the `build` folder.\\\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\\\nYour app is ready to be deployed!\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n\n### `yarn eject`\n\n**Note: this is a one-way operation. Once you `eject`, you can’t go back!**\n\nIf you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.\n\nInstead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.\n\nYou don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.\n\n## Learn More\n\nYou can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).\n\nTo learn React, check out the [React documentation](https://reactjs.org/).\n\n### Code Splitting\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)\n\n### Analyzing the Bundle Size\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)\n\n### Making a Progressive Web App\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)\n\n### Advanced Configuration\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)\n\n### Deployment\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)\n\n### `yarn build` fails to minify\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/serverless-notification-api/README.md","author":"enesakar"},{"id":"serverless-rate-limiting/README.md","title":"Rate Limiting AWS Lambda with Redis","products":["redis"],"stack":["Node.js"],"useCases":["Ratelimit"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Rate Limiting AWS Lambda with Redis</h3>\n\n  <p align=\"center\">\n    Efficiently implement rate limiting for AWS Lambda functions using Redis, ensuring optimal performance and scalability while effectively managing and controlling API request rates.\n  </p>\n</div>\n\nThis example showcases how to rate limit your AWS Lambda function using Serverless Redis.\n\nSee [the tutorial](https://upstash.com/docs/redis/tutorials/rate-limiting) for details.\n\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n\n```\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/serverless-rate-limiting/README.md","author":"enesakar","platforms":["AWS"]},{"id":"session-store-with-clerk/README.md","title":"Shopping App","products":["redis","qstash"],"stack":["Next.js"],"useCases":["Session Management"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Shopping App with Clerk</h3>\n\n  <p align=\"center\">\n\t\tThis example shows you how to build a shopping app using Clerk, Next.js, and Upstash Redis. It covers user authentication, shopping cart management, email scheduling via QStash, and rate-limiting with Upstash Ratelimit. We focus on using Redis for real-time, stateful applications, specifically for e-commerce.\n  </p>\n</div>\n\n## Overview\n\nThis repository contains a comprehensive shopping application, built to demonstrate the power of combining several key technologies. It serves as a hands-on guide for integrating Clerk for user authentication, Next.js for frontend UI, Upstash Redis for backend data storage, QStash for email scheduling, and Upstash Ratelimit for rate-limiting.\n\n## Key Technologies\n\n- Clerk: For secure user authentication, including sign-up, sign-in, and sign-out processes.\n- Next.js: As the frontend framework to build a reactive user interface.\n  Upstash Redis: As the backend datastore for managing user sessions and cart data.\n- QStash: For scheduling emails based on user interactions.\n- Upstash Ratelimit: To implement rate-limiting features for preventing misuse.\n\n## Features\n\n### User Authentication\n\n- Securely register new users.\n- Sign in existing users.\n- Sign out from the application.\n\n### Shopping Cart\n\n- Add items to a unique cart for each user.\n- Remove items from the cart.\n- Modify the quantity of items in the cart.\n\n### Email Scheduling\n\n- Schedule emails based on certain user actions using QStash.\n- Emails are dispatched by Resend.\n\n### User Ratings\n\n- Users have the option to rate items.\n- Ratings are stored efficiently in Upstash Redis.\n\n### Rate-Limiting\n\n- Utilizes Upstash Ratelimit to manage the rate of user interactions, such as rating items, to prevent misuse.\n\n## How to Get Started\n\n- Clone the repository.\n- Install dependencies by running npm install.\n- Set up your Clerk, Upstash Redis, QStash, and Upstash Ratelimit accounts.\n- Populate the .env file with your API keys.\n- Run the project locally using npm run dev.\n- Feel free to clone, modify, and deploy this project as per your requirements.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/session-store-with-clerk/README.md","author":"fahreddinozcan","previewUrl":"https://shop.upstash.app","blogUrl":"https://upstash.com/blog/session-store-with-clerk"},{"id":"source-for-lambda/README.md","title":"Lambda Example","products":["kafka"],"stack":["Node.js"],"useCases":["Queue"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Collecting React Native logs to Upstash Kafka</h3>\n\n  <p align=\"center\">\n        Use Serverless Kafka as an Event Source For AWS Lambda\n  </p>\n</div>\n\nCheck the [tutorial](https://docs.upstash.com/kafka/howto/kafka-with-lambda).\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/source-for-lambda/README.md","author":"enesakar","platforms":["AWS"]},{"id":"storing-web3-preferences/README.md","title":"Web3 Preferences","products":["redis"],"stack":["Next.js"],"useCases":["Data Storage","Session Management"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Web3 Preferences</h3>\n\n  <p align=\"center\">\n    Redis-driven Web3 Preferences for dynamic user experiences in decentralized applications.\n  </p>\n</div>\n\nWeb app that users connect to via Metamask. Using public adresses of the wallet, stores cross or in-platform preferences.\n\n## Deploy to Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fupstash%2Fexamples%2Ftree%2Fmaster%2Fexamples%2Fweb3-preferences&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\nOr run manually:\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/upstash/examples.git\n   cd examples/storing-web3-preferences\n   ```\n2. Install NPM packages\n   ```sh\n   pnpm install\n   ```\n3. Enter your secrets in `.env`\n\n   ```.env\n   UPSTASH_REDIS_REST_URL=\"\"\n   UPSTASH_REDIS_REST_TOKEN=\"\"\n   ```\n\n4. Run the app\n   ```sh\n   pnpm dev\n   ```\n5. Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/storing-web3-preferences/README.md","author":"burak-upstash"},{"id":"survey-app/README.md","title":"Build your own survey app with Upstash Redis only","products":["redis"],"stack":["Next.js"],"useCases":["Data Storage"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Build your own survey app with Upstash Redis only</h3>\n\n  <p align=\"center\"> \n    Create your very own survey application powered by Upstash Redis, allowing you to gather and analyze valuable feedback from your users with ease.\n  </p>\n</div>\n\nThis example showcases how to build a Next.js app that uses Upstash Redis as it's only database.\n\nSee the [blog post](https://blog.upstash.com/survey-serverless-redis) for details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/survey-app/README.md","author":"chronark","blogUrl":"https://blog.upstash.com/survey-serverless-redis"},{"id":"sveltekit-edge/README.md","title":"Guest book with Sveltekit Edge","products":["redis"],"stack":["Sveltekit"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Guest book with Sveltekit Edge</h3>\n\n  <p align=\"center\">\n   Build a guest book using SvelteKit and Upstash Redis, with deployment to Vercel Edge Functions.\n  </p>\n</div>\n\n\nDemo for a blog post about building a guest book with SvelteKit and Upstash Redis and deployed to Vercel Edge Functions.\n\nTo run locally, you will need to create an Upstash instance and put the required keys in a `.env` file. See `sample.env` for an example. You can find the required values in the \"REST API\" section of your database settings in the Upstash console.\n\n[Live demo](https://sveltekit-edge-guestbook.vercel.app/)\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nTo create a production version of your app:\n\n```bash\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.\n\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/sveltekit-edge/README.md","author":"geoffrich","platforms":["Vercel"]},{"id":"sveltekit-lucia-redis/README.md","title":"Svelte Example","products":["redis"],"stack":["Sveltekit"],"useCases":["State Store","Session Management"],"languages":["ts"],"body":"\n# create-svelte\n\nEverything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).\n\n## Creating a project\n\nIf you're seeing this, you've probably already done this step. Congrats!\n\n```bash\n# create a new project in the current directory\nnpm create svelte@latest\n\n# create a new project in my-app\nnpm create svelte@latest my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nTo create a production version of your app:\n\n```bash\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/sveltekit-lucia-redis/README.md","author":"geoffrich","platforms":["Vercel"]},{"id":"sveltekit-todo-app-with-redis/README.md","title":"Sveltekit Todo App","products":["redis"],"stack":["Sveltekit"],"useCases":["State Store","Session Management"],"languages":["ts"],"body":"\n# create-svelte\n\nEverything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).\n\n## Creating a project\n\nIf you're seeing this, you've probably already done this step. Congrats!\n\n```bash\n# create a new project in the current directory\nnpm create svelte@latest\n\n# create a new project in my-app\nnpm create svelte@latest my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nTo create a production version of your app:\n\n```bash\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/sveltekit-todo-app-with-redis/README.md","author":"geoffrich","platforms":["Vercel"]},{"id":"sveltekit-trpc-ratelimiting/README.md","title":"SvelteKit Todo App with Redis","products":["redis"],"stack":["Sveltekit"],"useCases":["Ratelimit"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Ratelimting tRPC Requests in SvelteKit - Basic Example</h3>\n\n  <p align=\"center\">\n    This \"high five a cat\" app showcases how you can ratelimit requests in your tRPC routes in SvelteKit using Upstash Redis.\n  </p>\n</div>\n\n### Demo\n\nSoon.\n\n### Developing\n\nOnce you've cloned this project and installed dependencies with your favorite package manager, duplicate the env.example and rename it to .env — set the required variables and start the development server.\n\n```bash\nnpm run dev ## yarn dev or pnpm dev\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/sveltekit-trpc-ratelimiting/README.md","author":"multiplehats"},{"id":"sveltekit-with-redis/README.md","title":"Caching for SvelteKit App with Redis","products":["redis"],"stack":["SvelteKit"],"useCases":["Caching"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Caching for SvelteKit App with Redis</h3>\n\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/sveltekit-with-redis/README.md","author":"CahidArda","platforms":["Vercel"]},{"id":"task-queue/README.md","title":"Task Queue with Bull","products":["redis"],"stack":["Node.js"],"useCases":["Queue"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Task Queue with Bull</h3>\n\n  <p align=\"center\">\n    Bull and Upstash Redis: Empowering efficient task queueing, prioritization, and distributed job processing for streamlined project management.\n  </p>\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/task-queue/README.md","author":"noahfschr"},{"id":"tweet-streaming/README.md","title":"Streaming Tweets to Kafka","products":["kafka"],"stack":["WebSocket"],"useCases":["Data Streaming"],"languages":["java"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Streaming Tweets to Kafka</h3>\n\n  <p align=\"center\">\n        Stream tweets to Kafka in real-time.\n  </p>\n</div>\n\nThis project enables real-time streaming of tweets to Apache Kafka, allowing developers to efficiently collect, process, and analyze Twitter data using the powerful Kafka ecosystem, opening up possibilities for sentiment analysis, social media monitoring, and data-driven insights.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/tweet-streaming/README.md","author":"enesakar"},{"id":"using-apscheduler/README.md","title":"Apscheduler with Upstash Redis","products":["redis"],"stack":["Flask"],"useCases":["Queue"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Apscheduler with Upstash Redis</h3>\n\n  <p align=\"center\">\n    Flask & Celery job processing with Upstash Redis for background tasks and result storage.\n\n  </p>\n</div>\n\n[Apscheduler](https://github.com/agronholm/apscheduler) with Upstash Redis\n\nFor this example, we are running scheduled processing, where we fetch 'eth' and 'btc' coin prices (mocked up by random int generation - since many APIs exist).\n\nWhenever the current value is above the threshold value, the process sends a notification to the email given (emulated by console logging.)\n\n### Install Dependencies\n\n`pip install -r requirements.txt`\n\n### Start the process\n\n`python3 main.py --clear` (remove `--clear` not to erase scheduled jobs)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-apscheduler/README.md","author":"burak-upstash"},{"id":"using-aws-cdk/README.md","title":"Using AWS CDK with Redis","products":["redis"],"stack":["Node.js"],"useCases":["Data Storage"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Using AWS SDK with Redis</h3>\n\n  <p align=\"center\">\n    Learn how to utilize AWS CDK with Upstash\n  </p>\n</div>\n\n# using-aws-cdk\n\nThis project contains source code and supporting files for a serverless application that you can deploy with the AWS Cloud Develoment Kit. It includes the following files and folders.\n\n- hello-world - Code for the application's Lambda function.\n- events - Invocation events that you can use to invoke the function.\n- hello-world/tests - Unit tests for the application code.\n- bin - Infrastructure as Code for this application\n\nThe application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code.\n\n## Deploy the sample application\n\nThe application is the same Hello World application created by SAM witth some adjustments to play a little more with the endpoint\n\nYou need the following tools.\n\n- AWS CDK - [Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)\n- Node.js - [Install Node.js +12](https://nodejs.org/en/), including the NPM package management tool.\n\nFirst, you'll need to enter the `hello-world` folder and install all dependencies in your machine.\n\n```bash\ncd hello-world\nnpm install # you could just use npm i as well\n```\n\nAfter is done, we will move to the `bin` folder, where lives our TypeScript code and also install the dependencies:\n\n```bash\ncd ../bin\nnpm i\n```\n\nOnce is done, you can build and deploy your application for the first time, run the following in your shell (remember it must be inside the `bin` folder):\n\n```bash\ncdk deploy\n```\n\nWith this our application will start provisioning your infrastructure and deploy your code.\n\n```\nDo you wish to deploy these changes (y/n)? y\n```\n\nYou will need to approve the chances, once is done, at the end you'll get the url for your API:\n\n```\nOutputs:\nupstashApi.Endpoint = https://<some-random-id>.execute-api.us-east-1.amazonaws.com\n```\n\nWhich you'll could access in your browser on the specific path defined `hello`:\n\n```\nhttps://<some-random-id>.execute-api.us-east-1.amazonaws.com/hello\n```\n\n```json\n{\n  \"message\": \"Hello World!\"\n}\n```\n\nAnd you could play with a parameter on the URL to get new responses:\n\n```\nhttps://<some-random-id>.execute-api.us-east-1.amazonaws.com/hello?greet=Greg\n```\n\n## Cleanup\n\nTo delete the sample application that you created, use following:\n\n```bash\ncdk destroy\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-aws-cdk/README.md","author":"noahfschr","platforms":["AWS"]},{"id":"using-aws-sam/README.md","title":"Using AWS SAM with Redis","products":["redis"],"stack":["Node.js"],"useCases":["Data Storage"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Using AWS SAM with Redis</h3>\n\n  <p align=\"center\">\n    Learn how to utilize AWS SAM with Upstash.\n  </p>\n</div>\n\nThis project contains source code and supporting files for a serverless application that you can deploy with the SAM CLI. It includes the following files and folders.\n\n- hello-world - Code for the application's Lambda function.\n- events - Invocation events that you can use to invoke the function.\n- hello-world/tests - Unit tests for the application code.\n- template.yaml - A template that defines the application's AWS resources.\n\nThe application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS resources through the same deployment process that updates your application code.\n\nIf you prefer to use an integrated development environment (IDE) to build and test your application, you can use the AWS Toolkit.  \nThe AWS Toolkit is an open source plug-in for popular IDEs that uses the SAM CLI to build and deploy serverless applications on AWS. The AWS Toolkit also adds a simplified step-through debugging experience for Lambda function code. See the following links to get started.\n\n- [CLion](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [GoLand](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [IntelliJ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [WebStorm](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [Rider](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [PhpStorm](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [PyCharm](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [RubyMine](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [DataGrip](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)\n- [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)\n- [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)\n\n## Deploy the sample application\n\nThe Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API.\n\nTo use the SAM CLI, you need the following tools.\n\n- SAM CLI - [Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)\n- Node.js - [Install Node.js 10](https://nodejs.org/en/), including the NPM package management tool.\n- Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community)\n\nTo build and deploy your application for the first time, run the following in your shell:\n\n```bash\nsam build\nsam deploy --guided\n```\n\nThe first command will build the source of your application. The second command will package and deploy your application to AWS, with a series of prompts:\n\n- **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, and a good starting point would be something matching your project name.\n- **AWS Region**: The AWS region you want to deploy your app to.\n- **Confirm changes before deploy**: If set to yes, any change sets will be shown to you before execution for manual review. If set to no, the AWS SAM CLI will automatically deploy application changes.\n- **Allow SAM CLI IAM role creation**: Many AWS SAM templates, including this example, create AWS IAM roles required for the AWS Lambda function(s) included to access AWS services. By default, these are scoped down to minimum required permissions. To deploy an AWS CloudFormation stack which creates or modifies IAM roles, the `CAPABILITY_IAM` value for `capabilities` must be provided. If permission isn't provided through this prompt, to deploy this example you must explicitly pass `--capabilities CAPABILITY_IAM` to the `sam deploy` command.\n- **Save arguments to samconfig.toml**: If set to yes, your choices will be saved to a configuration file inside the project, so that in the future you can just re-run `sam deploy` without parameters to deploy changes to your application.\n\nYou can find your API Gateway Endpoint URL in the output values displayed after deployment.\n\n## Use the SAM CLI to build and test locally\n\nBuild your application with the `sam build` command.\n\n```bash\nusing-aws-sam$ sam build\n```\n\nThe SAM CLI installs dependencies defined in `hello-world/package.json`, creates a deployment package, and saves it in the `.aws-sam/build` folder.\n\nTest a single function by invoking it directly with a test event. An event is a JSON document that represents the input that the function receives from the event source. Test events are included in the `events` folder in this project.\n\nRun functions locally and invoke them with the `sam local invoke` command.\n\n```bash\nusing-aws-sam$ sam local invoke HelloWorldFunction --event events/event.json\n```\n\nThe SAM CLI can also emulate your application's API. Use the `sam local start-api` to run the API locally on port 3000.\n\n```bash\nusing-aws-sam$ sam local start-api\nusing-aws-sam$ curl http://localhost:3000/\n```\n\nThe SAM CLI reads the application template to determine the API's routes and the functions that they invoke. The `Events` property on each function's definition includes the route and method for each path.\n\n```yaml\nEvents:\n  HelloWorld:\n    Type: Api\n    Properties:\n      Path: /hello\n      Method: get\n```\n\n## Add a resource to your application\n\nThe application template uses AWS Serverless Application Model (AWS SAM) to define application resources. AWS SAM is an extension of AWS CloudFormation with a simpler syntax for configuring common serverless application resources such as functions, triggers, and APIs. For resources not included in [the SAM specification](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md), you can use standard [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) resource types.\n\n## Fetch, tail, and filter Lambda function logs\n\nTo simplify troubleshooting, SAM CLI has a command called `sam logs`. `sam logs` lets you fetch logs generated by your deployed Lambda function from the command line. In addition to printing the logs on the terminal, this command has several nifty features to help you quickly find the bug.\n\n`NOTE`: This command works for all AWS Lambda functions; not just the ones you deploy using SAM.\n\n```bash\nusing-aws-sam$ sam logs -n HelloWorldFunction --stack-name using-aws-sam --tail\n```\n\nYou can find more information and examples about filtering Lambda function logs in the [SAM CLI Documentation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-logging.html).\n\n## Unit tests\n\nTests are defined in the `hello-world/tests` folder in this project. Use NPM to install the [Mocha test framework](https://mochajs.org/) and run unit tests.\n\n```bash\nusing-aws-sam$ cd hello-world\nhello-world$ npm install\nhello-world$ npm run test\n```\n\n## Cleanup\n\nTo delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack name, you can run the following:\n\n```bash\naws cloudformation delete-stack --stack-name using-aws-sam\n```\n\n## Resources\n\nSee the [AWS SAM developer guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) for an introduction to SAM specification, the SAM CLI, and serverless application concepts.\n\nNext, you can use AWS Serverless Application Repository to deploy ready to use Apps that go beyond hello world samples and learn how authors developed their applications: [AWS Serverless Application Repository main page](https://aws.amazon.com/serverless/serverlessrepo/)\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-aws-sam/README.md","author":"noahfschr","platforms":["AWS"]},{"id":"using-celery/README.md","title":"Job Processor with Celery","products":["redis"],"stack":["Flask"],"useCases":["Queue"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n  <h3 align=\"center\">Job Processing with Celery</h3>\n  <p align=\"center\">\n    Flask & Celery job processing with Upstash Redis for background tasks and result storage.\n\n  </p>\n</div>\n\n![celery](https://github.com/upstash/examples/blob/main/examples/using-celery/static/celery.png?raw=true)\n\n## A simple job processing scenario, showcasing a Flask and Celery by using Upstash Redis.\n\nYou have a server, where you process customer's jobs for them: apply some training for their models, apply image, text processing etc.\nYou can reduce the server load and keep the responsiveness by using Celery: Allowing you to run processes in the background.\n\nOnce a request is made to `/run` endpoint with necessary parameters (`id`, `email`, `difficulty`), the server generates a background job using Celery and responds with an `enqued` message to the requester.\nDepending on the workload, Celery completes the job in an unknown amount of time. After the processing is finished, Celery sends a message to the server via `/notify` endpoint. In there, customers can be notified that their processing is complete, or even sent some reports regarding that (which is also a usecase for Celery).\n\nSince Upstash Redis can also be used as a durable storage, we can and have configured Celery to use Upstash Redis as a backend database. Meaning, all the results of the tasks from Celery are kept in storage for later retrieval.\nOnce a request is made to `/result` with `id` parameter, corresponding result is returned from the backend database.\n\n### Install Dependencies\n\n`pip install -r requirements.txt`\n\n### Run Flask Server\n\n`flask --app server run`\n\n### Start Celery Worker\n\n`celery -A tasks worker --loglevel=INFO`\n\n### Run a Job\n\n`curl -X POST http://localhost:5000/run -H 'Content-Type: application/json' -d '{\"id\":\"<id>\", \"email\":\"a@b.com\", \"difficulty\":\"hard\"}'`\n\n### Get Results of a Job\n\nOnce a notification is sent to `/notify`, get the result:\n\n`curl -X POST http://localhost:5000/result -H 'Content-Type: application/json' -d '{\"id\":\"<id>\"}'`\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-celery/README.md","author":"burak-upstash"},{"id":"using-cloudflare-workers/readme.md","title":"Use Redis in Cloudflare Workers","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Use Redis in Cloudflare Workers</h3>\n\n  <p align=\"center\">\n    Effortlessly leverage the power of Upstash Redis within Cloudflare Workers to enhance scalability, performance, and data caching capabilities.\n  </p>\n</div>\n\nSee the [article](https://upstash.com/docs/redis/tutorials/cloudflare_workers_with_redis).\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-cloudflare-workers/readme.md","author":"enesakar","platforms":["Cloudflare"]},{"id":"using-fastly-compute/README.md","title":"Use Redis in Fastly Compute","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Use Redis in Fastly Compute</h3>\n\n  <p align=\"center\">\n    Unlock the potential of Redis within Fastly Compute to boost scalability, accelerate data retrieval, and optimize caching capabilities effortlessly\n  </p>\n</div>\n\nSee the [blog post](https://blog.upstash.com/fastly-compute-edge-with-redis) to learn more.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-fastly-compute/README.md","author":"enesakar","platforms":["Fastly"]},{"id":"using-fly-io/README.md","title":"Fly Example with Redis","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Fly Example with Redis</h3>\n\n  <p align=\"center\">\n    Explore the seamless integration of Redis in Fly applications with this example project, harnessing the power of distributed caching and efficient data storage.\n  </p>\n</div>\n\nThis is a simple application used in the [fly.io Getting Started](https://fly.io/docs/getting-started/node/) documentation showing how to deploy a Node application using Flyctl's builtin Nodejs deployment option.\n\n- Run flyctl init\n- When prompted for a builder, select builtin Nodejs.\n- Run flyctl deploy\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-fly-io/README.md","author":"enesakar","platforms":["fly.io"]},{"id":"using-google-cloud-functions/README.md","title":"Using Google Cloud Functions with Upstash","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Using Google Cloud Functions with Upstash</h3>\n\n  <p align=\"center\">\n    Effortlessly integrate Google Cloud Functions with Upstash, unlocking the combined potential of serverless computing and Redis for efficient data processing, caching, and real-time application development.\n  </p>\n</div>\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-google-cloud-functions/README.md","author":"enesakar","platforms":["GCP"]},{"id":"using-huey/README.md","title":"Parallel Job Running with Huey","products":["redis"],"stack":["Flask"],"useCases":["Queue"],"languages":["py"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Parallel Job Running with Huey</h3>\n\n  <p align=\"center\">\n    Flask server for concurrent processing of user-submitted tasks using huey.\n\n  </p>\n</div>\n\n# [Huey](https://github.com/coleifer/huey) Parallel Job Running\n\n## Simple Parallel job running, using Flask and Huey.\n\nIn this example, we are configuring a Flask server, where there is `/submit` endpoint. This endpoint takes `email` and `string_to_process` parameters.\n\nWith this example, we are emulating a working processor server. Users send the input data for large computations that they cannot process themselves. (In this instance, using sleep for showcasing difficulty.)\n\nWhen the POST request is made, server creates 2 Huey tasks (reverse the string and append itself to it). Tasks can be configured such that when the task is finished, a notification can be sent via different platforms.\n(For the example instance, simply console logging.)\n\nWith this configuration, we can process same input with different processing techniques, enabling concurrency. Since the background jobs, server responsiveness won't be effected much by these requests.\n\n### Install Dependencies\n\n`pip install -r requirements.txt`\n\n### Run Huey Worker\n\n`huey_consumer.py tasks.huey`\n\n### Generate the job\n\n`curl -X POST http://localhost:5000/submit -H 'Content-Type: application/json' -d '{\"email\": \"<email>\", \"string_to_process\": \"<string>\"}'`\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-huey/README.md","author":"burak-upstash"},{"id":"using-render/README.md","title":"Using Render and Next.js with Upstash","products":["redis"],"stack":["Next.js"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Using Render and Next.js with Upstash</h3>\n\n  <p align=\"center\">\n    Learn how to utilize Redis with Render and Next.js. Deploy the project to Vercel.\n  </p>\n</div>\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-render/README.md","author":"rpxs","platforms":["Vercel"]},{"id":"using-resque/README.md","title":"Using Resque and Next.js with Upstash","products":["redis"],"stack":["Serverless"],"useCases":["Queue"],"languages":["rb"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Using Resque and Next.js with Upstash</h3>\n\n  <p align=\"center\">\n    Learn how to utilize Redis with Render and Next.js. Deploy the project to Vercel.\n  </p>\n</div>\n\n## A simple multiple queue processing with Resque using Upstash Redis\n\n### We will enqueue different jobs from different kind of users.\n\nSince we provide our services for free, paid users will have the priority to get their jobs done first....\n\n### Configure Package\n\n`bundle init`\n\n`bundle add resque`\n\n### Run Worker\n\nSince enterprise processes have a higher priority than the free processes:\n\n`QUEUE=enterprise,free rake resque:work`\n\nor\n\n`COUNT=<#workers> QUEUE=enterprise,free rake resque:workers` for multiple workers\n\n### Populate Worker with processes\n\n`ruby populate.rb` --> This will put some processes to the queue for worker to process.\n(There is `sampleLogs.log` file, which shows the outputs in the order that they should be once the worker starts running.)\n\n### Resque Web Interface\n\nAnother cool thing with Resque is that they provide a web interface showcasing the state of the queues and workers. There, you can find many functionalities such as re-running failed jobs. To run the web ui:\n`resque-web -p <preferred-port> -r <UPSTASH_REDIS_CONNECTION_URL>`\nThen go to your `http://localhost:<preferred-port>`\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-resque/README.md","author":"noahfschr","platforms":["Vercel"]},{"id":"using-serverless-framework/README.md","title":"Deploy with Serverless Framework","products":["redis"],"stack":["Node.js","Serverless"],"useCases":["State Store"],"languages":["js"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Deploy with Serverless Framework</h3>\n\n  <p align=\"center\">\n    Streamline your deployment process using the Serverless Framework, incorporating Redis for enhanced scalability, efficient data management, and seamless integration with cloud services.\n  </p>\n</div>\n\nhandler.js > ioredis async\n\nhandlerSync.js > ioredis sync\n\nhandlerEphemeral.js > does not reuse the connection\n\nhandlerNodeRedis.js > noderedis sync\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-serverless-framework/README.md","author":"noahfschr"},{"id":"using-sidekiq/README.md","title":"Sidekiq Mailer","products":["redis"],"stack":["Sidekiq","fly.io"],"useCases":["Session Management","Queue"],"languages":["rb"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Sidekiq Mailer</h3>\n\n  <p align=\"center\">\n    Optimize your email processing workflows with Sidekiq Mailer, seamlessly leveraging the power of Upstash Redis for efficient queuing, background job processing, and reliable email delivery.\n  </p>\n</div>\n\n![Workflow](https://raw.githubusercontent.com/upstash/examples/main/examples/using-sidekiq/static/sidekiq.png)\n\n## A simple scenario, showcasing background job processing capabilities by using Upstash Redis.\n\nAssume you provide a service: When users sign-up for your service, you want to have an automated behaviour, whether it is generating user specific objects or adding them to your list of customers. For this kind of workflow, we will take automated emailing, emulated by simply console logging.\n\nIf the users are free or paid tier, you want to notify and welcome them to your platform after certain time: 3 hours, 3 days etc. After all, they may quit or delete their accounts.\n\nBut whenever a user starts as an enterprise, you want to send notifications immediately, whenever the server is available.\n\nOr when they upgrade their plan, you want to immediately congratulate them.\n\n## Deploy on Fly !\n\n`flyctl redis create` --> Create your Upstash Redis resource. Then:\n\n`flyctl secrets set UPSTASH_REDIS_LINK=<connection-link-from-upstash-redis>`\n\n`flyctl launch` --> Use the already created `.toml`. With the procfile, both the server and the worker will be deployed and be ready for action!\n\n## API\n\n`get /clear` --> will clear all the scheduled and queued jobs.\n\n`get /register/:id/:plan` --> will schedule or enqueue Sidekiq job, delayed depending on the plan.\n\n`get /update/:id/:plan` --> will enqueue Sidekiq job and remove previously created job regarding the id.\n\n## OR Deploy Locally\n\n### Configure Package\n\n`bundle install`\n\n### Run Worker\n\n`bundle exec sidekiq -r ./sendEmail.rb`\n\nThis command will start the worker. From there on, any request coming from clients - or in the server itself - will be fetched and applied in this worker.\n\n### Run Web Server\n\n`rackup`\nThis will start the sinatra server.\n\n#### OR Send processes via Client\n\n`bundle exec irb -r ./sendEmail.rb`\n`createEmail(<id>, <type>)` for scheduled run.\n`updateEmail(<id>, <type>)` for updating the email to be sent.\n\n( `client.sh` has some example calls and `sampleLogs.log` shows an example output regarding that .sh file )\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-sidekiq/README.md","author":"noahfschr"},{"id":"using-supabase-edge-functions/README.md","title":"Upstash Redis in Supabase Edge Functions","products":["redis"],"stack":["Node.js"],"useCases":["State Store"],"languages":["ts"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\">Upstash Redis in Supabase Edge Functions</h3>\n\n  <p align=\"center\">\n    Create and deploy an edge function to Supabase\n  </p>\n</div>\n\nRedis counter example that stores a [hash](https://redis.io/commands/hincrby/) of function invocation count per region.\n\n## Redis Database Setup\n\nCreate a Redis Database using [Upstash Console](https://console.upstash.com/) or [Upstash CLI](https://github.com/upstash/cli).\n\nSelect the `Global` type to minimize the latency from all edge locations. Copy the `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` to your .env file. You'll find them under Details > REST API > .env\n\n```bash\ncp supabase/functions/upstash-redis-counter/.env.example supabase/functions/upstash-redis-counter/.env\n```\n\n## Run locally\n\nMake sure you have the latest version of the [Supabase CLI installed](https://supabase.com/docs/guides/cli#installation).\n\n```bash\nsupabase start\nsupabase functions serve upstash-redis-counter --no-verify-jwt --env-file supabase/functions/upstash-redis-counter/.env\n```\n\nNavigate to 'http://localhost:54321/functions/v1/upstash-redis-counter'.\n\n## Deploy\n\n```bash\nsupabase functions deploy upstash-redis-counter --no-verify-jwt\nsupabase secrets set --env-file supabase/functions/upstash-redis-counter/.env\n```\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using-supabase-edge-functions/README.md","author":"thorwebdev","platforms":["Supabase"]},{"id":"using_redis-rs/README.md","title":"Redis Rust Client Config for Upstash Redis","products":["redis"],"stack":["Rust"],"useCases":["Data Storage"],"languages":["rs"],"body":"\n<br />\n<div align=\"center\">\n\n  <h3 align=\"center\"> Redis Rust Client Config for Upstash Redis</h3>\n\n  <p align=\"center\">\n    Learn how to configurate your Rust Redis client.\n  </p>\n</div>\n\nSimply provide the `host`, `password` and `port` fields given in [Upstash Console](https://console.upstash.com) and export as env variables.\n\n### Run the sample\n\n`cargo run`\n\n### Learn More\n\nTo learn more about Upstash and its services, check out the following resources:\n\n- [Documentation](https://docs.upstash.com)\n- [Website](https://upstash.com)\n- [Blog](https://upstash.com/blog)\n- [Console](https://console.upstash.com)\n- [Discord](https://upstash.com/discord)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/using_redis-rs/README.md","author":"noahfschr"},{"id":"auto-complete-api/auto-complete-example/README.md","title":"Auto Complete Example","products":["redis"],"stack":["React"],"useCases":[],"languages":["js"],"body":"# Getting Started with Create React App\n\nThis project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).\n\n## Available Scripts\n\nIn the project directory, you can run:\n\n### `npm start`\n\nRuns the app in the development mode.\\\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `npm test`\n\nLaunches the test runner in the interactive watch mode.\\\nSee the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.\n\n### `npm run build`\n\nBuilds the app for production to the `build` folder.\\\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\\\nYour app is ready to be deployed!\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n\n### `npm run eject`\n\n**Note: this is a one-way operation. Once you `eject`, you can’t go back!**\n\nIf you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.\n\nInstead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.\n\nYou don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.\n\n## Learn More\n\nYou can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).\n\nTo learn React, check out the [React documentation](https://reactjs.org/).\n\n### Code Splitting\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)\n\n### Analyzing the Bundle Size\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)\n\n### Making a Progressive Web App\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)\n\n### Advanced Configuration\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)\n\n### Deployment\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)\n\n### `npm run build` fails to minify\n\nThis section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)\n","githubUrl":"https://github.com/upstash/examples/blob/main/examples/auto-complete-api/auto-complete-example/README.md","author":"enesakar"}]