gringotts
Nest
Our great sponsors
gringotts | Nest | |
---|---|---|
1 | 311 | |
477 | 63,607 | |
1.0% | 1.7% | |
2.4 | 9.9 | |
about 2 months ago | 4 days ago | |
Elixir | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gringotts
-
Learning Ruby: Things I Like, Things I Miss from Python
Thanks.
> Stripe, including webhooks support, actively developed
I've looked into Stripity Stripe. For some time it was unmaintained and ended up getting taken over by another maintainer. It's also not as comprehensive as the official Stripe libraries. There's also a very big difference in using an official Stripe library and hoping for the best with a random one someone developed. Just skimming the code base it looks like the Checkout module is missing features that exist in the official Stripe library in every other supported language.
According to the README file for Stripity Stripe it's also using Stripe's API version from 2019. There have been multiple major API updates since then, and there's been an open issue since November 2020 to add support for newer API versions with no replies. Personally I would be using one of those major features too.
And this really is the point I'm trying to drive home. With Ruby, Python, Go, PHP, Node, Java and .NET these are problems you don't even need to think about. You just pick the payment provider's official SDK and start coding immediately, often times there's also an abundance of resources to implement the billing code itself into your app too through blog posts, official docs, YouTube videos, and even paid products like https://spark.laravel.com/. Stuff that makes integrating billing into your app (through Stripe, BrainTree and Paddle) being something you get done in 1 day instead of 3 months.
With Elixir it becomes weeks of comprehensive research, evaluating questionable libraries, opening PRs, and becoming a full time library developer just to get to the point where you could even maybe begin to start accepting payments with just Stripe.
> the best I've found is https://github.com/aviabird/gringotts
I asked the Gringotts developers if they would be supporting PayPal about 5 hours after they announced the project ~3 years ago. He said it was coming and to stay tuned. It's now ~3 years later and PayPal support isn't there. Neither is BrainTree or Paddle. Here's the open issue for PayPal support from 2018 (not by me, I asked on another site) https://github.com/aviabird/gringotts/issues/114. The Stripe integration is also missing a ton and hasn't been touched since 2018.
By the way, the Pay gem is really good. It's a smart abstraction and supports a ton of different subscription / 1 off payment use cases. Even complex ones like the type of app I was building.
> It's definitely a few weeks work to roll your own from scratch so to be honest I'd probably just integrate with Twilio and just pay for someone else to handle this for me.
Twilio ends up being 1 potential delivery method, it's not really someone you pay to solve the problem for you.
There's wanting to show notification in the app over websockets, saving them into a database, emailing them out only if they are unread, maybe sending an SNS through Twilio, Slack and other providers.
The noticed gem handles all of this for you (and supports Twilio too).
Notifications in general is another example where other frameworks have this solved in very good ways, but it becomes another example where you have to stop developing your app and start developing a notification library with Elixir.
At this point we've only talked about payments and notifications too. There's lots of other examples.
Nest
-
Containerize your multi-services app with docker compose
Back: a graphQL server built with Nestjs
-
Full Stack Web Development Concept map
NestJS - opinionated more scalable, but harder to learn docs
-
Don't go all-in Clean Architecture: An alternative for NestJS applications
Pragmatically, we can apply this to a Nest application by creating an Interface for our services, separating the Presenter layer (Controller) from the Use Case (Services):
- Utilizando Testcontainers para Testes de IntegraĆ§Ć£o com NestJS e Prisma ORM
-
A Gentle Introduction to Containerization and Docker
Itās a text document that contains all the commands a user could call to assemble an image. Letās check an example of a Dockerfile for a nodejs app in this case it will be a NestJS app and then explain each part.
-
Scalable REST APIs with NestJS: A Testing-Driven Approach
describe('Create bookmarks', () => { const dto: CreateBookmarkDto = { title: 'NestJS', link: 'https://nestjs.com/', }; it('should create bookmark', () => { return pactum .spec() .post('/bookmarks') .withHeaders({ Authorization: 'Bearer $S{userAt}', }) .withBody(dto) .expectStatus(201) .stores('bookmarkId', 'id')//store the bookmark id in the variable bookmarkId .expectBodyContains(dto.title) .expectBodyContains(dto.link) }); });
-
Rust GraphQL APIs for NodeJS Developers: Introduction
In my usual NodeJS tech stack, which includes GraphQL, NestJS, SQL (predominantly PostgreSQL with MikroORM), I encountered these limitations. To overcome them, I've developed a new stack utilizing Rust, which still offers some ease of development:
-
A Step-by-Step Guide to Implement JWT Authentication in NestJS usingĀ Passport
The purpose of this article is to provide a step-by-step guide for implementing authentication system in a NestJS project using the Passport middleware module.
-
From Frontend to Backend
That's exactly where I am. My manager gave me these links, that cover a lot of those words the backend uses, so I can identify what they mean and how to use them. 1. For inspiration and concepts: https://github.com/Sairyss/domain-driven-hexagon 2. Suggested to read the documentation for nest.js. They apply such concepts I don't understand: https://nestjs.com/
-
Best NodeJS frameworks for seamless backend development
Community stats: NestJS has a large community with 60.5k stars and 7.2k forks on GitHub. 12,033 are tagged 'nestjs' on StackOverflow and an active discord community of 43,436 is also there to support fellow developers.
What are some alternatives?
SailsJS - Realtime MVC Framework for Node.js
Koa - Expressive middleware for node.js using ES2017 async functions
loopback-next - LoopBack makes it easy to build modern API applications that require complex integrations.
feathers - The API and real-time application framework
Ts.ED - :triangular_ruler: Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your code more readable and less error-prone. āļø Star to support our work!
Moleculer - :rocket: Progressive microservices framework for Node.js
Django - The Web framework for perfectionists with deadlines.
tsoa - Build OpenAPI-compliant REST APIs using TypeScript and Node
Hapi - The Simple, Secure Framework Developers Trust
Meteor JS - Meteor, the JavaScript App Platform
InversifyJS - A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
trpc - š§āāļø Move Fast and Break Nothing. End-to-end typesafe APIs made easy.