Iโm excited to share my latest open-source project: ngxsmk-stripe, an Angular 17+ plugin that makes integrating Stripe payments simple, customizable, and future-proof.
๐ณ Why I Built This
If youโve ever tried to integrate Stripe into an Angular app, you know it can feel a bit overwhelming. I wanted a solution that was:
- โ Angular-first (built with standalone components)
- โ Future-proof (compatible with Angular 17+)
- โ Flexible (one-time payments + subscriptions)
- โ Customizable (SCSS theming + Stripe Appearance API)
- โ Developer-friendly (success/error event emitters)
Thatโs how ngxsmk-stripe was born!
๐ Key Features
- ๐ณ One-time payments via Stripe PaymentElement
- ๐ Subscription & recurring billing with SetupIntent
- ๐จ Theme customization using SCSS + Stripe Appearance API
- ๐ Localization support (
localeinput) - โก Standalone Angular components (no NgModule required)
- ๐ค Event emitters for handling success and error states
โก Quick Example
Hereโs how easy it is to drop a payment form into your Angular app:
<ngxsmk-stripe-payment
[publicKey]="publicKey"
[clientSecret]="paymentClientSecret"
[returnUrl]="returnUrl"
[appearance]="appearance"
(paymentSuccess)="onPaymentSuccess($event)"
(paymentError)="onPaymentError($event)">
</ngxsmk-stripe-payment>
And for subscriptions:
<ngxsmk-stripe-subscription
[publicKey]="publicKey"
[clientSecret]="subscriptionClientSecret"
[returnUrl]="returnUrl"
[appearance]="appearance"
(subscriptionSuccess)="onSubSuccess($event)"
(subscriptionError)="onSubError($event)">
</ngxsmk-stripe-subscription>
๐จ Customization
- Use SCSS variables for button styles, colors, and typography
- Leverage Stripeโs Appearance API for advanced UI theming
๐ฆ Installation
npm install ngxsmk-stripe @stripe/stripe-js
๐ Contributing
Iโd love to see the community extend this plugin with new features (like saved payment methods, invoicing tools, etc.). PRs are welcome!
Repo ๐ GitHub: ngxsmk-stripe
๐ Closing Thoughts
With ngxsmk-stripe, you can focus on building your product while handling payments securely and elegantly in Angular. I hope this saves other devs the hours I spent piecing everything together!
๐ Try it out, give it a โญ on GitHub, and let me know your feedback!
Top comments (0)