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 (
locale
input) - β‘ 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)