My first open source package
You can find my package Stripe Watcher on:
For years I've been part or the Laravel and PHP communities, but was just looking how people contribute with open source packages, people like:
- Nuno Maduro
- Povilas Korop
- Marcel Posiot
- James Brooks
- Everyone at Spatie
and many many more...
and I wanted one day to be able to contribute as well, in the beginning the one thing that was stopping me: The malicious thought that I'm not good enough, what can I possible give to the people that they would like to use? And it was like that for years I just couldn't get over myself to create something...in recent months I've started to think more and more about and then I came to me...
The Idea
I've been working with Stripe API more than 6 years I was thought it's great and I was happy to use it, although in my opinion there was something missing from it, proper way of looking into what your requests and webhooks are returning, what data was passed, if there were any errors what are they, yes there is the Stripe Dashboard and the Dev console where there is a lot of useful information regarding it, but I wanted to go a step further. To have a dedicated page something like Laravel Telescope where you track everything regarding Stripe events and data, somewhere to see what response was returned to you, what was the actual payload in a structured readable manner. I started to think what can I do to improve that, how can a contribute and it came to me: New open source package, my own package, how cool is that?
The process
So after I had the idea I need it to think it through, to craft the best possible solution for the idea I had, so it began: Architecture, best way of doing it, best practices and honestly I the beginning I had no clue where or how to start there were so many questions in my mind and to be honest I felt a bit lost I haven't done something like this it was a bit overwhelming at first I need it some time to genuinely get my bearings...
When I did that I started to think more clearly so what I need it:
Starting point
Proper Structure
Plan what I want to do and how
How to finish it
How a package is deployed
So little by little the peaces started to fall in place, for the starting point and the structure I was ecstatic to learn Laravel Team had my back:
Package Development literally what i need it! A way to start and the proper structure for my package and all of those done "The Laravel Away" once I've got this out of the way everything else didn't felt that hard all of a sudden. I came up with a plan what need it to be done and I've started doing it step by step and I have to be honest here: It felt great it really did, I felt like I'm in charge and I could contribute to community by creating such package, as they said: "The beginning is the hardest" once that was out of the way, functionalities were added one by one and the package itself started to taking shape.
Once something got done it come with a lot other things mainly the testing I need to ensure that everything is on point and it's how I imagine it and then came the testing...I need to test each new thing, writing tests, testing it manually since there are a lot of visuals in package I need to go through them and see if it's good(Spoiler alert not everything was)...After a while I became more and more comfortable doing it and started to form as a habit, I didn't have that much time in the beginning so it was a time management exercise most of the time, but this was just adding to the charm of it.
And that how it went for quite a while, small additions here and there, sometimes days could go by without me doing anything on it, not a single line, none...so the months gone by and the it happened...I got layoff after 3 years in the company the worst possible hapened and I was able to to finish it up(finally).
But the hardest thing was still to come...
How it come to fruition
So there I was, with so so ready package just sitting there, the whole time I was so excited while coding that I kept forgetting to commit the code I was writing...
Later I've found that the excitement wasn't the only thing...Fear of rejection...some poisonous questions was floating around in my head: "It's no good, why publishing it?", "Who would use it?", "Is it worth it?" and to be fair it took me sometime to get over that and mainly stop dawning myself so much.
But in the end I got over it and just did it, I've pushed everything I had, I made the repository public and starting looking how I can published on Packagist to be visible to everyone, after a few tries I was able to upload it there and there it was; My package was out there visible for the people and felt free, finally doing what I was only thing about so long. It felt amazing it really did...
What's next
After the package is live and accessible and after some "minor" fixes, here and there the package is now on version 0.1.2 I'm planning to continue growing it, hopefully I can developers with the "pesky" debugging of Stripe and the webhooks and maybe someone will say: "Hey that's a great package it really helps". It's not perfect, but I'm so proud that I've created something that can be helpful, something to give back to the community that gave so much to me over the years.
I'm using it extensively and everything that comes up I try to fix almost instantly so hopefully at some point will be good enough to be featured on Laravel News(Fingers Crossed), it's early on there is lot more to be done and a lot more to be found and fixed, so stay tune and root for me.
Share this post