0
grayfox
6y

Question:

I want to develop a simple reminders service. People will go online and set a reminder and the service will send an email when the reminder is schedule.

I want to use the simplest stack I can. It will be very simple so I don't want anything complex.

So I need a DB backend, a server to host the web interface so people can set up the reminders, and a background process that send out the emails.
People set up reminders, they are stored in the DB and the process read the reminders every X amount of time and send the emails scheduled in that particular time.

I was thinking about using Firebase (only tried it once in a small chat app for practice). A small web interface stored in a server (which? idk. Heroku, AWS?). And a deamon scheduled to run every half an hour (running where? idk. I have a spare laptop that I can use as server for this purpose or Heroku or any other).

What services (free, or at least free at the beginning) would you use in order to save time and money.

PS: I know Python and Java. But I've worked with PHP (and HTML+CSS). I know next to nothing about JS.

Comments
  • 1
    Go for dokku , and host it in a cheap ass server, dokku gives u the basic features of heroku but in a docker container.
  • 1
    Nodemailer, sparkspost or any other shit for sending email

    Save time writing crud with prismagraphql

    Happy coding
  • 0
    @pollux *taking notes like maniac*.

    Thanks a lot. Gonna take a look on those ;)
  • 1
    +1 for Firebase - functions cost if you want to make network requests outside of Google/Firebase services.

    With fairly low usage you can probably do this for free on AWS (e.g. Lambda and DynamoDB have free usage tiers beyond AWS' first 12 months). S3 might have some cost after 12 months, and I'd perhaps look at something like Mailgun rather than SES?
  • 0
    @nate I don't understand your first part. About functions costing more outside google...

    It's not that's not clear, maybe is I don't know much about it so I don't understand it. Can you please explain that?
  • 1
    Oh yeah, sure!

    Firebase Hosting is static assets and client-side only. They have a really good client-side JS library for interacting with their databases, so it works great.

    For sending email, you'd probably want Firebase Functions (same principle as Lambda, a JS function that can be triggered by a request). Hosting and Functions have free usage tiers, but if you have network activity outside of Google's infra then you have to add a billing method for the Function. I guess it covers higher bandwidth cost and/or is a bit of a penalty for going out of Google.

    Maaaaybe sending via. Gmail SMTP would avoid this, not sure!
  • 0
    @nate oh I see.

    But I think I can work around that. I mean, basically what I want to read from firebase is the email address and the schedule time, once I got that I can send the email at the specified time.
    Do I still need Firebase Functions for that?
  • 0
    @antorqs I think you would need a function for the actual sending of the email(s). Maaaybe with the right service you could do this all front-end, but it would probably expose private API keys.
  • 0
    @nate so you mean sending email through firebase API right?

    Uhmmm I haven't thought about that.

    All this time I had in my head something like:

    Firebase -> some hosted daemon -> some mail service like mailgun

    Daemon reads email addresses from firebase and pass then to mailgun.

    I don't know if that's overkill or underusing firebase.

    (I dev self hosted back end services so I don't have much experience with these _aas techs)
  • 1
    @antorqs I see! Yeah you could do that if you only used Firebase for the DB, then you could query it using whichever 'deamon' you like (so long as it has a supported Firebase SDK).

    Alternatively your 'deamon' could be a Firebase function you invoke periodically. If you go down this road though, and you want to use Mailgun, that's where you have to add your billing details - because you're communicating on the network 'to the internet' (outside of Google).

    I've never actually tried sending mail via. Google on Firebase!
  • 1
    @nate oh I see. I get it now. Thanks a lot mate!
Add Comment