Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
C

caffeinate

> 后端框架
Open source

A Rails engine for drip campaigns/scheduled sequences and periodical support. Works with ActionMailer, and other things.

381 stars0 likes1 views
WebsiteGitHub

About

A Rails engine for drip campaigns/scheduled sequences and periodical support. Works with ActionMailer, and other things.

Caffeinate

Caffeinate is a drip engine for managing, creating, and performing scheduled messages sequences from your Ruby on Rails application. This was originally meant for email, but now supports anything!

Caffeinate provides a simple DSL to create scheduled sequences which can be sent by ActionMailer, or invoked by a Ruby object, without any additional configuration.

There's a cool demo app you can spin up here.

Now supports POROs!

Originally, this was meant for just email, but as of V2.3 supports plain old Ruby objects just as well. Having said, the documentation primarily revolves around using ActionMailer, but it's just as easy to plug in any Ruby class. See Using Without ActionMailer below.

Is this thing dead?

No! Not at all!

There's not a lot of activity here because it's stable and working! I am more than happy to entertain new features.

Oh my gosh, a web UI!

See https://github.com/joshmn/caffeinate-webui for an accompanying lightweight UI for simple administrative tasks and overview.

Do you suffer from ActionMailer tragedies?

If you have anything like this is your codebase, you need Caffeinate:

ruby
class User that inherit from a magical class! Using the example above, implementing an SMS client. The same rules apply, just change `mailer_class` or `mailer` to `action_class`, and create a `Caffeinate::ActionProxy` (acts just like an `ActionMailer`). See [Without ActionMailer](docs/6-without-action-mailer.md).) for more.

## But wait, there's more

Caffeinate also...

* ✅ Works with regular Ruby methods as of V2.3
* ✅ Allows hyper-precise scheduled times. 9:19AM _in the user's timezone_? Sure! **Only on business days**? YES! 
* ✅ Periodicals
* ✅ Manages unsubscribes
* ✅ Works with singular and multiple associations
* ✅ Compatible with every background processor
* ✅ Tested against large databases at AngelList and is performant as hell
* ✅ Effortlessly handles complex workflows
    - Need to skip a certain mailing? You can!

## Documentation

* [Getting started, tips and tricks](https://github.com/joshmn/caffeinate/blob/master/docs/README.md)
* [Better-than-average code documentation](https://rubydoc.info/gems/caffeinate)

## Upcoming features/todo

[Handy dandy roadmap](https://github.com/joshmn/caffeinate/projects/1).

## Alternatives

Not a fan of Caffeinate? I built it because I wasn't a fan of the alternatives. To each their own:

* https://github.com/honeybadger-io/heya
* https://github.com/tarr11/dripper
* https://github.com/Sology/maily_herald

## Contributing

There's so much more that can be done with this. I'd love to see what you're thinking.

If you have general feedback, I'd love to know what you're using Caffeinate for! Please email me (any-thing [at] josh.mn) or [tweet me @joshmn](https://twitter.com/joshmn) or create an issue! I'd love to chat.

## Contributors & thanks

* Thanks to [sourdoughdev](https://github.com/sourdoughdev/caffeinate) for releasing the gem name to me. :)
* Thanks to [markokajzer](https://github.com/markokajzer) for listening to me talk about this most mornings.

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rubydripdrip-campaignemailmarketing-automation

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category后端框架
PricingOpen source

> Related tools

N
Node.js
基于 V8 的 JavaScript 运行时
D
Django
Python 高级 Web 框架
S
Spring Boot
Java 生态主流微服务框架