Welcome to Part 17 of my Let's build for Ruby and Rails developers series. In this part, I carry on adding the final functionality of the new job form by introducing several upsell options that feature varied prices when purchasing a new job listing.
The goal with these up-sells is to increase visibility for the job as well as increase profit for railsdevs.com. We hook into Stripe's API to regenerate a new Payment Intent per up-sell option. From the API returns a new client_secret which we can use to confirm a payment via credit card during the final purchase of the job.
We're getting very close to having the job form complete but there are a lot of edge cases, validations, UI tweaks, and more to deal with. Coming up I plan to focus a lot on validation on both the front–end and the back-end as well as provide some more help UI during purchase so a user doesn't try to purchase twice or is left in the dark about what to do next.
Once the form is complete I plan to go through and do a big audit on the main design as well as add a dashboard for those that purchase jobs to get some insight about job listings. This would include basic details about a purchase, some basic analytics, and a link to the Stripe invoice. For each purchase we should also generate some mailers to indicate status once a job is published.
Those emails might include:
- An email when a new job is purchased. This just confirms what you purchased, when, and the details of the purchase.
- An email when the job becomes "approved". Since all new jobs will have a status of "pending" by default I'll manually approve any that come through. Once approved we'll kick off an email to the purchaser so they know their job is live.
- An email when a job gets archived. I think I'll keep things simple and offer job listings for 30 days at the current pricing (shown in this video). Eventually once a job is archived we can allow a customer to optionally re-post the job for another fee that's maybe discounted. Making this a recurring pricing strategy might also be an option but the simpler the better right now.
Once that phase is complete I'll push a v1 of this app live! 🚀
New here? Check out the entire series for an overview of what I'm building and follow my journey.