8 ms·
Show HN: Base – API for authentication, email sending, images and more
- gdotdesign 7y agoI released Base about a month ago and created a blog post with some details https://dev.to/gdotdesign/base-api-for-authentication-email-sending-image-upload-and-more-4f1 https://dev.to/gdotdesign/base-api-for-authentication-email-... Let me know what you think! :)
- FrancoisBosun 7y agoLooks nice. I’m uncomfortable pushing the password in plaintext to an unknown entity. I can always bcrypt the password locally before sending it through the API, but it would be great to see examples of this, to prevent deva from pushing secrets outside their zone of control. Otherwise, I can see myself using this in some side-projects. Good work!
- Blackstone4 7y agoWhen I login/signup to a website, I'm always sending my password in plaintext to the server (obv. encrypted via TLS). What's the difference?
- FrancoisBosun 7y agoThe difference is my customer's don't have a first-party relationship with the data store that holds their password. browser -> www.example.com browser -> www.example.com -> Base That's the biggest problem I see with this approach. The password will be seen by two parties instead of just one.
- lifty 7y agowho did the design for the website?
- gdotdesign 7y agoIt's me, still a one man show :)
- AngeloAnolin 7y agoMaybe you would need help later. At some point. I can help.
- andwaal 7y agoHi, 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 7y agoThank 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_ 7y agoIt says that in the quoted text. You still didn't answer the question though.
- growt 7y agoThat's almost a standard disclaimer by now. If this API let's you upload an image and by request (of yourself or a user) it returns a resized version of that image, that might already be a derivative work and distribution of that content.
- prabhaav 7y agoVery cool gdotdesign! We're working on something similar in the decentralized auth space. Just curious, how/why did you pick email sending as a service add on?
- gdotdesign 7y agoIt was easier then implementing it by hand, making sure that they are delivered to the inbox, etc.
- gitgud 7y agoThis 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 7y agoI 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.
- rtcoms 7y agoInteresting 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 7y agoI'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
- Scarbutt 7y agoNot Crystal related but from where do you get the art? ;)
- algodaily 7y agoNot OP but google around for vector-style images. There was even a Show HN project that generated them, I'll look around
- swyx 7y agoi'd appreciate a link, i did a basic search on those keywords but didnt find anything matching.
- matdehaast 7y agohttps://undraw.co/ https://undraw.co/ https://www.humaaans.com/ https://www.humaaans.com/
- mintplant 7y agoFrom 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
- sambf 7y agoThe 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 7y agoThanks 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.
- dawidw 7y agoI 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 7y agoThank you for spotting it! It's just inconsistency, I'll update the examples.
- dawidw 7y agoThank you, I thought that I was missing something. BTW - I've found your page very useful - thank you for that!
- LordHeini 7y agoA 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.
- sparkling 7y agoWhat about delay between my backend to your API?
- theseanstewart 7y agoI 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.
- gdotdesign 7y agoThank you for your insight! I'm still figuring out the pricing so I'll keep this in mind!
- ttul 7y agoThe 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 7y agonot just emailing. any service that could theoretically be utilized by spammers/scammers will be. (Source: my own SaaS)
- napolux 7y agoWhy 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 7y agoBy "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 7y agoFor 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.
- jacobobryant 7y agoI 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 7y agoMailing list support is definitely on the backlog!
- greatjack613 7y agoIncredible 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.
- jkaufmann_ 7y agoSeems 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!
- jaequery 7y agoIt’s the beginning of an Api-as-a service trend.
- statictype 7y agoIsn’t that what AWS started more than 10 years ago?
- prabhaav 7y agoI think maybe Heroku is a better analogy in this scenario?
- deleted 7y ago[deleted]
- alephnan 7y agoGoogle App Engine
- mintplant 7y agoMore like Parse (since bought out by Facebook).
- jaequery 7y agoI 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.
- deleted 7y ago[deleted]
- Nullabillity 7y agoWell, Parse did it a couple of years ago. And showed why it's a horrible idea to rely on a service like this.
- garysahota93 7y agoAre there any alternatives to Base as well? What are some main points for using this over them?
- paulcsmith 7y agoThis 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
- nodesocket 7y agoLooks 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?