9 ms·
Show HN: I made a MailChimp alternative that connects to your database
Hi all! Excited to share cc.dev after months of work and refinement.
The idea for this product came from trying to do email marketing for my side project, CubeDesk, a site where Rubik's Cube enthusiasts can time themselves, race with one another, train algorithms — it's a fun niche!
With over 40k users, sending even a single campaign was becoming expensive with MailChimp. I knew AWS SES would be much cheaper, but it’s just an API with none of the other necessities you need for a robust email marketing platform.
Beyond cost, I was also frustrated with having to make sure my database was always in sync with MailChimp and the audience schema they enforced. If I wanted to email every user who had completed 10 solves, that would be a whole ordeal and eat up hours of my day.
So, I started (and am now launching):
https://cc.dev https://cc.dev
cc.dev connects directly to your database and lets you write SQL queries to target your audience. It's backed by AWS SES, so the cost to send emails is significantly less than what you're used to seeing. Combined with a template builder, media management, and campaign monitoring, cc.dev is meant to be your final destination whenever you need to send marketing emails to your users.
Would love to hear your feedback on this! If you're interested in trying out cc.dev as your email marketing platform, shoot me an email and let's have a chat: kash at cc.dev
- sergiotapia 3y agoIf I have SES and MJML and the SQL query - why not just run this on my app server? Why pay you to hit the SES API with my markup? I don't quite get it.
- tillcarlos 3y agoBecause you don't have to build a feature in your own software that - stores the templates - selectively runs campaigns and tracks open rates etc - create campaigns, see how many users are in there, have a safeguard before you hit "send" - actually a nice interface. Let's assume the "open my database to the internet" is not a dealbreaker, then this tool gets your development cost of 1-8 weeks (depends on how big the code base is) down to a 19 USD / m. Depending on where you hire / how much your time is, your opportunity cost of several thousand dollars for the feature are now much smaller. I think there's a niche but strong case for this. [edit: typo]
- kundi 3y agoWhat type of tracking does it provide? Open tracking and split-tests and stats would be essential for this to stand on a more solid group beyond hacking own scripts
- doylemark 3y agoHow does this connect to the database? Does an agent have to run within your VPC?
- elliotkillick 3y agoThis looks like an interesting take on email marketing. I use an open source solution called Listmonk (w/ Amazon SES) for my emailing needs. How does this project compare?
- tough 3y agofwiw I've been looking to find a MailChimp or such alternative that's FOSS. I've both tried ListMonk and Bespoke but both lack on features I might need. Might just roll my own at this point lmao https://github.com/knadh/listmonk https://github.com/knadh/listmonk https://listmonk.app https://listmonk.app https://bespoke.surf/ https://bespoke.surf/ https://github.com/bespoke-surf/bespoke https://github.com/bespoke-surf/bespoke The aspect most important for me regarding this as an european based company is to be GDPR compilant so opt-in storing ip address and datetime is required by law. What /i try to convey by this is that sending emails might be easy, but all the work around doing so lawfully is painfully burecractically comically hard.
- nlh 3y agoJust want to chime in directly against the flow of negative comments re: security and say two things: 1) I too am exactly in your target audience and I'm psyched to check this out (I'm the solo tech operator of an ecom business and this will exactly scratch an itch I have) 2) I'll echo what I wrote in another comment: It is VERY HN to get concerned about exposing databases, and folks who are posting about the security concerns are not wrong, per se, but also, you are going down a path that many other SaaS apps have successfully gone down, and it's a feature users want and will pay for. So while you should absolutely make sure this is done properly and advise your users not just to expose their databases willy-nilly, don't get psyched out by folks telling you it's a hard no to have to connect a DB directly. Users want this, will pay for it, and you're wise for doing it.
- trvz 3y ago> Users want this The customers of those users absolutely do not want this. If I ever find out a company uses something like this, I'll no longer be doing business with them. > So while you should absolutely make sure this is done properly That is simply not possible.
- Vanclief 3y ago> The customers of those users absolutely do not want this. If I ever find out a company uses something like this, I'll no longer be doing business with them. I second this 100% This for me is a major red flag. It could maybe be mitigated if OP would require customers to run their own instance of cc.dev.
- billoneil 3y agoHosted Looker and many other tools are getting direct DB access these days and I'm sure you use products that do it. As an engineer I'm not a fan of it and it can often cause problems so it's best to point them at read replicas but that is not always how companies set them up.
- nlh 3y agoExactly - you beat me to it. Looker is the canonical example. I think folks would be up for a rude awakening if they really understood how many companies use Looker (or similar advanced analytics apps -- Sisense, ThoughtSpot, etc.) and how directly they connect to DBs.
- lxe 3y agoBravo. You found a market niche! Engineers who want to set up basic email marketing for their side project or startup already using ses for login/signup and other user flows. Don't listen to the haters -- this is exactly what many of use were looking for. Now only if you had better priced plans for smaller volumes...
- edmundsauto 3y agoHonestly, you might be in the small part of SaaS well positioned to offer free trials. Since it’s not your SES, why not let someone try it for a month or two then charge? During that time, they would have configured things and probably sent a few emails successfully. Just enough to have told their boss and gotten kudos.
- RyanShook 3y agoThe killer feature of Mailchimp for me is templates. Make the editor great and I would move over quickly.
- mythz 3y agoRelated: we're developing a free self-host Mailchimp alternative that we're using to send our company emails and newsletters at: https://servicestack.net/creatorkit/ https://servicestack.net/creatorkit/
- technologydaily 3y agoCongrats on a solid product and good luck with launch!
- ygouzerh 3y agoThe frontend of the website is quite nice, how did you built it ?
- danpalmer 3y agoI really like this. I'm an engineer, and have had to build basic versions of this internally at a previous company, and we never managed the investment to make it work nicely. This would have been a great option for us. We had an SQL database with all the data in it, and we used MJML for our emails. The only thing was that we had a fairly complex Sendgrid setup to ensure good deliverability at relatively large email scale. However. I don't think we'd have paid for this as a SaaS service. These sorts of tools could be engineering or marketing led. We had some marketing-led tools that were fairly hands-off from engineering, but they didn't connect to our database. We happily paid for these services. However this would have been engineering led, and we'd have wanted to self-host given how it worked. Just my 2c, but I'd either keep it engineering-targeted, open source it, and make money on support, or change tack a bit to target at the marketing folks. And a feature request: "linting" emails. We ended up with manual checklists for things like: do all the links resolve, do they have tracking tokens, is the plaintext preview good, is there an unsubscribe link. Linting for these would be a great productivity boost.
- jamesfisher 3y agoI wish this "connect to my DB" architecture was more common in SaaS. I don't want to write synchronization code or extra APIs. Synchronization always gets out of sync anyway. I just want to set appropriate permissions for what different parties can see and do in my database.
- bbx 3y agoJust wanted to say the landing page is excellent. I love the 1-2-3-4 steps with instructions and screenshots. It shows how easy it is to set up and avoids the classic marketing focus on bold headings, "personas", fancy icons, vague features… The "Send 37 emails" button which triggers an animation is a nice touch. Foreshadows the actual experience.
- KomoD 3y ago> With over 40k users, sending even a single campaign was becoming expensive with MailChimp. You could always move to Brevo (formerly sendinblue) or Mailjet, it'd be cheap. If you're sending 40k emails/mo it'd be €29-38 or €45 at Mailjet(50k)
- nickstinemates 3y agoHomepage is beautiful. Product is clear. Very nice.
- rcme 3y agoThis is a really cool idea. Do you do any management of subscription status so that users can unsubscribe from emails? That would be really useful.
- kashnote 3y agoYup! On the Data page there's an Unsubscribed list where you can import unsubbed emails. And you can include [[unsubscribe]] anywhere in an email template and that will be replaced with an unsubscribe link which the user can click.
- CableNinja 3y agoI see a lot of security concerns with this. Many, if not all databases are not public accessible, nor should they ever be. Asking people to open their database up to you, sketchy and dangerous.
- kashnote 3y agoVery legitimate concern and one I've been thinking about a lot. Honestly, I think the best way to address this is to just go open source, which I'm totally open to. I think once I've validated the idea a bit and know it's something people are interested in, I'll focus on this issue and come up with a solution (whether it's open sourcing or something else)
- CableNinja 3y agoGoing open source will not solve your problems. The issue is that youre asking customers to open database access to you/your company. The reason why the method youve chosen isnt already out there is because of all the implications it has. You better have one hell of a security team to ensure youre locked down tighter than a ducks ass. Look at how many data breaches there have been, even in the past year. The solution is to either make an SDK or API as already suggested by others, and giving customers endpoints to manage their lists.
- samstave 3y agoA self hosted AMI/container - with a config UX. Simple solve.
- kashnote 3y agoDefinitely taking all the security measures I can, but you're right, things can go wrong. I do encourage (and would like to enforce) that db credentials provided should have very limited read access to only the tables/columns that the user wants to query. Having said that, it's totally understandable that some orgs won't want do open up their db. The idea with going open source would be that they can host the platform in their VPC so that their data is never leaving the premises. Not against having an SDK or API at all, but I would need to think about would work because the whole syncing issue is one that I'm focused on addressing here.
- deleted 3y ago[deleted]
- ttul 3y agoIf you send through Cloudflare Workers using MailChannels, the sending is free with no cap.
- kashnote 3y agoWoah cool! I actually hadn't heard of this. Would be cool if I can integrate this into the platform. Been thinking of adding other backends like Sendgrid and Resend.
- ttul 3y agoThe ideal way to accomplish this would be to get your customers to install a tiny proxy Worker in their own account and then just connect your service to it. https://support.mailchannels.com/hc/en-us/articles/4565898358413-Sending-Email-from-Cloudflare-Workers-using-MailChannels-Send-API https://support.mailchannels.com/hc/en-us/articles/456589835...
- zenorocha 3y agoResend founder here - let's make it happen
- c0brac0bra 3y agoHaven't heard of resend before. I've been pretty unhappy with Sendgrid, especially their usability when running lots of subaccounts. Since you're here, how would you say you compare vs them or say sparkpost? I looked for comparisons on your site but I wasn't able to find anything.
- themanmaran 3y agoHey this is awesome! I got started on an MVP[1] of this earlier this year, but gave up simply because of all the additional mail features required to get this to a full product. Especially in startups, this is super annoying process. Say I want to test out a feature with 100 random users who have done XYZ before. Right now I have to do a SQL query, export that to a CSV, import to MailChimp, send. [1] https://github.com/tylermaran/pigeon https://github.com/tylermaran/pigeon
- sails 3y ago> Beyond cost, I was also frustrated with having to make sure my database was always in sync with MailChimp and the audience schema they enforced. Could you explain why this was such a problem? It would seem like this (API to submit data) is the sensible way to balance the cost against the security concerns raised in the other comment. Does mean engineering and sync issues which your solution does address in an interesting way.
- iamacyborg 3y agoThere can be a lot of complexities in syncing a user model into an email platform if it doesn’t match your business model.
- ibpasha1 3y agoAwesome. Love the concept!
- sakopov 3y agoMajor problem with this is that your customers should ideally never expose their databases for public access.
- nlh 3y agoSecond devil's advocate here: I know this isn't necessarily "good" in terms of security, but it's a very common pattern for higher-level tools these days to connect directly to databases. A LOT of marketing/analytics tools support this seemingly because users want this (see: Customer.IO, Looker, etc.) So again, I'm not saying you're wrong in that this might be a bad security practice, but OP is not alone in taking this approach and many SaaS vendors are seeing success and getting users because of it. So OP is going down a trodden path.
- lmm 3y agoAny serious database nowadays uses TLS and client certificates, at which point "exposing" the database is using the exact same crypto library that a VPN or jump host or what have you would use, and is just as secure.
- xp84 3y agoDevils advocate here: if you created a database user, which has access to a single View of with email, name, and whatever relevant subscription properties, how is that functionally different than what everyone does today which is to set up some Rube Goldberg contraption to pipe that audience information to mailchimp, sendgrid, or exacttarget? Personally, I find this really intriguing and think it would be much better for data security because it would be far less likely that they will have my customers’ email addresses lying around their database months or years after I cancelled the service.
- TZubiri 3y agoRight. It reminds me of SetVar and GetVar as a solution to exposing state
- failTide 3y agoyou'd still be exposing the database system itself to the public regardless of the credentials you were using for the email service, as opposed to keeping it all within a VPC which seems to be what most guides recommend. I assume the difference would be that having your database exposed presents additional surface area for attacks. A rube-goldberg style setup probably presents its own risks, but personally I just use AWS SES for my transactional/marketing emails and it's a one-way pipe that doesn't present any significant risks as far as I can see.
- constantly 3y agoThis does seem cool. When the service matures, are you going to eventually move it to production?
- kashnote 3y agoThe service is technically ready for use and I've already sent several thousand emails with it, but I have the Beta tag on there for now just to tell people that it's new and to reach out if they want to chat about their specific use cases before proceeding.
- carlossouza 3y agoI think there are some good ideas here, but the target audience imho is not clear. Email marketing cheaper is a great attention grabber: kudos for the good copywriting. Step 1: Link to AWS SES... humm, for that your target audience must be tech-savvy. Step 2: Query your database... humm, linking my database to a strange system? No freaking way! But assume for an instant that this would be ok. For this, your target audience again must be tech-savvy. Step 3: Create an email template using MJML... again, for tech-savvy people, not for the average digital marketeer... Step 4: Review and send... ok, pretty basic.. English -> SQL. Here you got me confused. For steps 1, 2 and 3, your audience must be tech-savvy. This feature doesn't make any sense for tech-savvy people. It only makes sense for the average marketeer in a small team (or solopreneur) who doesn't know SQL. But this guy would never get through steps 1, 2 and 3! See my point? A tech-savvy person in a tight budget would develop his own solution. Imho, not your target. An average digital marketeer or solopreneur who doesn't know how to code and is in a tight budget could be your audience. But for that, steps 1-3 must be no-code/for dummies. The greatest thing about the idea is "email marketing cheaper".
- tarwin 3y agoI agree. It is a little confusing. As a dev I can see how it might be useful when I don't have time to build the interface. But not really sure. Have you looked at something like https://grapesjs.com/ https://grapesjs.com/ for templates?
- kashnote 3y agoThe target market is someone who 1. is tech-savvy and runs an app/service with a bunch of users 2. has tried existing emailing platforms and feel that they're too expensive 3. wants full freedom of who they target their emails to A tech-savvy person could make their own solution, and that's what I wanted to do with my site CubeDesk, but it's surprisingly difficult and time-consuming, which gave me the idea for this service. The English -> SQL thing is just a fun feature I added since I'm excited about LLMs. Comes in handy for folks who aren't SQL experts (like me). Totally agree on the security concerns. That seems to be the main feedback in this thread and will be my main focus going forward!
- tln 3y agoThis looks great! Sounds like you track events like opens, clicks SES features.. does that mean you need a specific table in my database? What data about my users would be stored in your database, vs my database?
- kashnote 3y agoI haven't added link tracking yet, but it's on my list. To be honest, I'm hesitant to add open tracking because it always felt a bit creepy to me and also plenty of email clients are blocking them nowadays, so they're becoming useless. As for the data question, when you create a campaign, the following gets stored for each email that will get sent: - email address - JSON blob of the required variables that exist in the subject and body of the email (ex: {first_name: "John"} That's pretty much all the data that will be stored in our database which is sourced from your database. This data is stored for 30 days then removed, but I'd like to make this be configurable.
- tansan 3y agoThis feels like a very small step up from just doing everything in my codebase. My SES is already setup. I have templating for emails already. I can query my DB using my ORM without grant additional access. I guess I get the benefits of your UI for monitoring. I'm really not sure if the net positive is large enough for me to consider the solution.
- iamacyborg 3y agoNice to see another entrant in this space, there are still very few platforms that allow you to do this and it’s, IMO, a real differentiator.
- neom 3y agoHow do you manage reputation?
- kashnote 3y agoEmails are sent using your own AWS SES account, which will handle all of that. No real concern of people sending spam because they would be damaging their own SES reputation.
- neom 3y agoWell that’s not a MailChimp alternative my friend. That’s a wrapper around SNS, there’s a reason those of us in marketing wouldn’t accept this. I don’t even like MailChimp but there’s a real reason to use an app like them/similar. They help you not screw up "all of that" is complicated.
- TZubiri 3y agoAnd mailchimp is a wrapper of other tech, but it's still its own thing.
- primitivesuave 3y agoThis is only true if you are using dedicated IPs with SES (~$30/month each). However, SES is pretty good at managing IP reputation even for the shared IP service, and I haven't had any issues in over 10 years of building systems on top of it.
- gouthamj 3y agoBut have you had issues when sending SES emails to Outlook/Hotmail clients? For some reason those clients block emails coming from SES
- danpalmer 3y agoThat’s because you have to pay Microsoft to send marketing email at any real volume to their services. Typically via ReturnPath. It’s basically a scam, but everyone pays for it.
- addisonj 3y agoCongrats on the launch! Lots of really good stuff going on here, a few bits of feedback, ideas, etc, and also responding to some of the comments in other threads. * The quick explanation of how this works is pretty strong, but I think the differentiator/value over other services maybe isn't called out as well. To me, this seems pretty clearly ideal for smaller teams all in on JAMstack/serverless with a lean stack that don't/won't have an easy place to create an automated process for synchronization, and are more likely to be using a planetscale/supabase/neon where this model is more attractive. I would suggest adding some of that info, not only to help target customers better recognize the value prop, but also help discovery via SEO. * While the landing page gives a good overview, as a dev, before I sign up, I want more details of how it works, more complete examples, etc. For SaaS apps targeting the general market, after landing/product pages,the most visited pages are generally use cases, success stories, industry specific info, etc. But from my experience and talking with many others, for dev audience, docs are the next thing people visit (if they aren't ready to sign up). You don't need every doc at once, but things like a quick start guide, concept overview, feature overview, etc can all be high value docs that you generally need anyways for your first customers * With docs, you can better address and explain the security side of things. I would do less on the landing page in regards to security and push that to more in depth detail in the docs. Talk about best practices of creating a read-only user. Create guides for most popular db vendors, etc * As has already been mentioned, you will get concerns about any access to the db and "why not an API". I think these commenters are right that this will be a deal breaker for many companies, but I don't agree that you want an API. Not only because I think that reduces some of the value prop but also because then you would need to store customer data. I obviously don't know what you are storing today, but I would think that this model could have a big advantage if you didn't need to store any PII data in cc.dev. The complexity of dealing with compliance and regulatory requirements is no small part of why something like MailChimp is expensive is that burden. I don't know if this is something you currently consider a value prop (or if you have engineered to support this)... But I certainly would :) * To address the reality of private dbs/giving access to a db, I would look at potentially implementing an agent. This agent would then run the queries (still provided by the user) and just-in-time deliver the results when needed. Getting the model of this right that works across different companies view of security will mean this is probably best to do with a handful of potential customers. * As far as deployment and monetization model... I would only open source it if you are giving up on commercialization or if you can open source a subset that can be useful enough to build a community. Once again, returning to JAMstack, maybe solve in open source (but integrate) some problem unique to those teams. As far as a paid self-hosting, given that this seems like a one man show, I would resist it. Trying to do SaaS and support of self-hosting is rough, even for well funded VC backed teams.. Quite a bit here, but if you want follows up on anything, my email is in profile or will reply to comments. Congrats again and hope it goes somewhere :)
- voidbound 3y agoVery clean! I’ll definitely try it out
- sandGorgon 3y agothe biggest challenge to fix is the double opt-in and opt-outs. CANSPAM and lots of other regulations make it tricky to not do this well. And if u start getting marked as spam, then SES will ban you. this stuff is so critical that people will not use anything other than mailchimp. if you want to disrupt this space...disrupt this part of the product. second biggest feature - support for Liquid templates. https://dripemailtemplates.com/tutorials/liquid-templates-guide https://dripemailtemplates.com/tutorials/liquid-templates-gu...
- georyb 3y agoNeeds some sort of webhook / API access through your dashboard. I'd be interested in running a cronjob with my custom SQL and sending you a batch payload to process the emails.
- addajones 3y agogreat work! Useful option!! 250,000 emails at $44/mo (including SES fee). Currently paying $25 to send 250,000 emails with sendy.co for years. Also using Amazon SES. no monthly fees just pay for what you use plus one time cost of sendy.
- vcryan 3y agoThe audience for this is so technical, that they just build this functionality themselves into their own app :)
- zxcvbn4038 3y agoHaving your database exposed on the public internet so a third party service like this can read it directly is a very bad idea IMO. I get what your going for but the end here is some mom and pop getting their database compromised.