|
| 1 | +--- |
| 2 | +title: Challenge 6 - Use Serverless Functions and Services to Collect Form Data |
| 3 | +date: 2020-02-04 |
| 4 | +author: "Hashim Warren" |
| 5 | +excerpt: "Learn how to use a new class of services that pair well with your Gatsby site" |
| 6 | +tags: ["learning-to-code", "contest", "100-Days-of-Gatsby"] |
| 7 | +--- |
| 8 | + |
| 9 | +_Gatsby was named the [#1 new technology to learn in 2020](https://www.cnbc.com/2019/12/02/10-hottest-tech-skills-that-could-pay-off-most-in-2020-says-new-report.html)!_ |
| 10 | + |
| 11 | +_To help you learn about Gatsby and our ecosystem, we invite you to take the #100DaysOfGatsby challenge! If you are new to Gatsby, you can follow along with our beginner-friendly weekly prompts. Or if you are familiar with Gatsby and want to go deeper, we invite you to [build your first Gatsby Theme](/docs/themes/building-themes/)._ |
| 12 | + |
| 13 | +_Learn more about [#100DaysOfGatsby here](/blog/100days)!_ |
| 14 | + |
| 15 | +## Challenge 6: Collect Form Data Without Managing Your Own Database or Server |
| 16 | + |
| 17 | +In the last two challenges you added forms to Markdown and JSX-powered pages. This week we’d like you to create a home for your form data, using a new class of services that work well with [serverless websites](/blog/2018-10-10-unbundling-of-the-cms#integrating-modular-services), like your Gatsby project. |
| 18 | + |
| 19 | +Below we’ve provided resources for two paths that you can choose based on the needs of your project, and your own interests and abilities. |
| 20 | + |
| 21 | +_Path A_ introduces you to form services for static sites, like Formik (the cloud service), Statickit, and FormKeep. Instead of giving you an all-in-one form builder to work with, these powerful, flexible, and inexpensive services provide you with endpoints to send form data to. |
| 22 | + |
| 23 | +_Path B_ welcomes you to the world of functions-as-a-service from the major cloud platforms. By using a combination of code and configuration, you can create your own data workflow with providers like AWS, Google, and Azure. There are two benefits to this approach. First, instead of using yet-another-SaaS, you’ll enhance your Gatsby site with the cloud provider services your employer has already invested in. Second, if you’re not familiar with the serverless tools provided by AWS, Google, and Azure, this challenge can be your first introduction to them. |
| 24 | + |
| 25 | +### Challenge Resources |
| 26 | + |
| 27 | +#### Path A |
| 28 | + |
| 29 | +Visit the [Power of Serveless](https://serverless.css-tricks.com/services/forms), a directory of serverless services. You’ll find many form options that work well with a Gatsby site. If you are already using Netlify, we recommend their [built-in form service](https://www.netlify.com/products/forms/). If you are using Formik’s React library, you may want to try their [new form service](https://formik.com/). [Statickit](https://statickit.com/), [FormKeep](https://formkeep.com/), and [Getform](https://getform.io/) also seem worth comparing. Each service has its own documentation and support that you can use. |
| 30 | + |
| 31 | +#### Path B: |
| 32 | + |
| 33 | +Follow Adnan Rahić’s tutorial for “[Building a serverless contact form with AWS Lambda and AWS SES](https://dev.to/adnanrahic/building-a-serverless-contact-form-with-aws-lambda-and-aws-ses-4jm0)”. It’s an AWS specific tutorial, but the basic concepts will help you get acquainted with similar tools on Azure and Google Cloud. |
| 34 | + |
| 35 | +### What to Do If You Need Help |
| 36 | + |
| 37 | +If you get stuck during the challenge, you can ask for help from the [Gatsby community](/contributing/community/) and the [ASKGatsbyJS](https://twitter.com/AskGatsbyJS) Twitter account. You can find fellow Gatsby Developers on [Discord](https://discordapp.com/invite/gatsby), [Reddit](https://www.reddit.com/r/gatsbyjs/), [Spectrum](https://spectrum.chat/gatsby-js), and [Dev](https://dev.to/t/gatsby). |
| 38 | + |
| 39 | +If you follow Path B, you can find responsive, helpful support [directly from AWS](https://aws.amazon.com/premiumsupport/). |
0 commit comments