
Show HN: Base – API for authentication, email sending, images and more - gdotdesign
https://www.base-api.io
======
theseanstewart
I would reconsider the "Unlimited Emails" offering for the "Ultimate" $100/mo
plan. Assuming you're using SES, a customer sending 1,065,000 emails would
cost ~$100. All it takes is one person to abuse it before it's costing you big
money.

On the surface, "Unlimited" sounds great, but your target market is developers
that know the cost of sending emails. This may result in the opposite effect
as it signals your model may not be scalable if there's not enough low usage
accounts to subsidize the additional costs of sending emails.

~~~
ttul
The even greater problem with sending email is that your platform will
immediately and comprehensively be abused by spammers.

To make your email woes go away, I would recommend using MailChannels [1]
rather than SES or SendGrid because MailChannels has a built-in anti-abuse
layer that will send you a webhook whenever a bad user is detected. SES will
just terminate your account, which probably isn't what you want. Also, at high
volume, MailChannels costs less.

[1] Disclosure: MailChannels is my company.

~~~
novaleaf
not just emailing. any service that could theoretically be utilized by
spammers/scammers will be. (Source: my own SaaS)

------
jkaufmann_
Seems like policies around data and privacy would be paramount here. As
someone who has developed a couple backends I always struggle to see the value
add of a system like this. For me, it always seems like this is something I'll
have to do later and back tracking would be more work. Very clean site though,
the mint technology piece was pretty interesting as well. Good synergy to
market both at once!

------
rtcoms
Interesting that you've made it using

[https://crystal-lang.org/](https://crystal-lang.org/) [https://www.mint-
lang.com/](https://www.mint-lang.com/)

How did you decide to use these framework and how was your experience ?

~~~
gdotdesign
I'm the author of Mint, so it was the obvious choice :)

I choose Crystal because I had experience using Ruby and I absolutely loved
the syntax, also Mint is built with Crystal. I really like it because it easy
to read (even with type annotations) and compiles to a fast binary.

Edit: If you have specific questions let me have it :D

~~~
mintplant
From Mint's docs [0]:

> Record definitions are globally unique, so defining a record with the same
> structure but a different name will raise an error.

So I can't have both

    
    
        record User {
          email : String,
          name : String,
          id : Number
        }
    

and

    
    
        record Task {
          name : String,
          description : String,
          id : Number
        }
    

in the same project?

[0] [https://guide.mint-lang.com/reference/records](https://guide.mint-
lang.com/reference/records)

~~~
gdotdesign
You can! One has _email_ field the other has. _description_ field.

------
gdotdesign
I released Base about a month ago and created a blog post with some details
[https://dev.to/gdotdesign/base-api-for-authentication-
email-...](https://dev.to/gdotdesign/base-api-for-authentication-email-
sending-image-upload-and-more-4f1)

Let me know what you think! :)

~~~
andwaal
Hi, could you explain this section from your TOS?

 _" You will provide us the right to reproduce, modify or create derivative
works from your Content. Obviously we won’t be modifying your Content, we need
these rights for example to be able to share your designs with other users.
You will also provide us a right to publicly perform or display your Content
to allow us to display the material on other users’ monitors.

Base does not claim any ownership on your Content. You hereby grant Base a
worldwide, non-exclusive, revocable, royalty-free, fully paid, sublicensable
and transferable license to use, host, store, reproduce, modify, create
derivative works, publicly perform, display, distribute and transmit your
Content."_

I am not sure I read it right, but does it say that you are allowed to share
my content with whomever you like? And also create new versions of my work?

~~~
gdotdesign
Thank you for the comment. It's not my intention to claim any ownership of
content, I'll review the text and modify it accordingly.

~~~
_underfl0w_
It says that in the quoted text. You still didn't answer the question though.

------
nodesocket
Looks great, but I have been bitten badly before by vendor lock-in using a
SaaS and they either go out of business or jack up their prices exponentially.
The only mitigation I know of is to make Base open source, so if needed users
can host their own instance. What are your thoughts on this?

------
jacobobryant
I use firebase for authentication and have been quite happy with it, but if
this provides better integration with mailing lists out of the box, that would
be compelling to me. Although I use firebase for authenticated users, I also
have a mailing list sign up form with just an email field. I ended up creating
my own confirmation email flow because I needed it to work for both people who
created an account and people who just used the email form. It would've been
nice not to have to do that.

~~~
gdotdesign
Mailing list support is definitely on the backlog!

------
dawidw
I have question regarding example of "Retrieving details of a file"

[https://www.base-api.io/reference/files](https://www.base-
api.io/reference/files)

The curl request uses [1] id and in response we get [2] id. Why is that?

[1] 6536fb5e-01b1-4a0c-b05b-33bac00c65ac

[2] ed7066dc-614c-48f3-8456-926598e88473

~~~
gdotdesign
Thank you for spotting it! It's just inconsistency, I'll update the examples.

~~~
dawidw
Thank you, I thought that I was missing something. BTW - I've found your page
very useful - thank you for that!

------
gitgud
This is pretty interesting and useful. This would be immensely useful for
prototypes and a great entry point for developers. Kind of reminds me of
Firebase how it tries to be a _one-stop-shop_. it also seems much more
approachable than Firebase which is nice.

~~~
reeeeee
I completely agree on this being _a lot_ more approachable than Firebase. The
premise of Firebase is so nice, but the amount of information when starting to
look into it are overwhelming.

------
napolux
Why should I link myself so heavily to a provider like you? Not wanting to
troll, as a dev, I know that the problems you try to solve are common, but
still wondering what happens "if..."

~~~
gdotdesign
By "if..." I assume you mean by going out of business? In that case the
service would be released as open source and you would continue as normal.

What I would like feedback on is how people would like to use a service like
this? Self hosted with a license? SaaS? some other way I'm not thinking of?

~~~
jacobobryant
For me, as an early stage startup founder, I'd prefer SaaS. At this stage I
don't want to have to think about anything that could've been handled for me.
At a later stage I might prefer self-hosted, but not sure.

------
sambf
The sign-up button for the developer plan doesn't work (Firefox 68.0.1). Nice
idea though. It'd be neat to be able to host it ourselves, if you ever plan to
release it as OSS.

~~~
gdotdesign
Thanks for the bug report! It should be fixed now.

> It'd be neat to be able to host it ourselves, if you ever plan to release it
> as OSS.

The pricing is just a placeholder at this point, it is possible that there
will be a self hosted plan, since it can be easily compiled to a single
binary.

------
paulcsmith
This looks awesome! What backend framework are you using? I'm the author Lucky
and was wondering if you happened to use it on the backend since you are using
Crystal

------
greatjack613
Incredible work, would love to start using something like this.

I personally need a self hosted plan with enterprise support.

But your pricing plans look great for the hobbyist and small shop.

------
garysahota93
Are there any alternatives to Base as well? What are some main points for
using this over them?

------
jaequery
It’s the beginning of an Api-as-a service trend.

~~~
statictype
Isn’t that what AWS started more than 10 years ago?

~~~
jaequery
I was thinking more in terms of a full-fledged API SaaS platform that have
business logic and data-schemas/storage.

It comes w/ an admin and you just pick and choose what you need, for example:

/users /posts /products /orders /login /emails etc ...

It'd be neat to see a community-driven marketplace to boot, for all types of
solutions.

Perfect for SPAs and JAMstacks.

------
sparkling
What about delay between my backend to your API?

------
LordHeini
A point of note.

Like usual with Ruby/Crystal apps the api uses snake case for its keys. The js
default is usually camel case. It can be rather ugly to have it mixed if one
uses this in a js/node app.

