Neighborhood Bridges has been one of my favorite projects that I have ever built. Not only is the non-profit a fantastic cause, but it was also a good challenge for me.
We use technology and social media to advocate for children and families in need...and then engage the community via a "campaign for kindness" to fill those needs.
Neighborhood Bridges is about kindness...speed...efficiency...and bridging all community resources to drive direct support and care to remove barriers for children/families in need.
100% of what is raised in each community...remains in each community. neighborhood bridges has successfully achieved this goal every day since it launched on Martin Luther King Day, 2017.
From the Neighborhood Bridges site, a good description of what they do.
I started this project with a rudimentary knowledge of the Laravel queues and job systems. As a small site, a simple job that sends emails to users is enough to suffice. As the site grew, we found that simultaneously sending thousands of emails was the bottleneck for this site.
The goal of phase two was to increase performance and reliability. Our primary focus was to make the newsletter system rock solid. We also spent time redoing the entire back-end control panel based on user input.
As it turns out, it was much easier to refactor the entire site than to rebuild the job that sends newsletters. Every iteration made it more efficient and stable until we hit 30-40,000 emails in a single job.
Full disclosure: we weren't at that level of emails at the time. But we saw issues slowly creep up with more and more users.
I spent a couple of weeks learning as much as I could about jobs & queues. I know a decent amount now, but I have a lot to learn as it's so powerful. Ultimately, I built a system that could simultaneously send more than 500,000 emails at a time.