Late last year, Adobe announced the Adobe Launch Extension Idol, a contest between developers to see who could create amazing extensions. That piqued my interest for sure, as most of the contests Adobe had before were on the analysis, rarely were they on the tech/development side. We had already been planning on building several different Launch extensions, but this contest had pushed me forward to create the Gtag extension. I learned a lot along the way, and I wanted to cover a few key points that you should consider if you're thinking about (or already are!) creating an extension.
Building a UI is hard
OK, so building a UI isn't that hard, but building a great one is. A clear majority of my time was spent developing the UI piece of the Gtag extension. Adobe is largely hands off with their guidelines around the UI, which can be argued that it's both a good and bad stance to take. They do provide some recommendations, but in the end it is up to you to decide how your extension will look.
Adobe's Spectrum CSS framework is available for you to use, and I suggest at least looking into using it so your extension has the same look & feel as the Launch UI. At the time of the initial Gtag development, I was not aware of Spectrum and only knew about Coral - which I honestly was not a fan of. I opted to stay with the tried-and-true Spectre CSS framework, since that was what I was familiar with and I've had great results working with it.
Before you begin any development though, build out a your wireframes. Design everything before you start development. Like many developers, I have a bad habit of just building a vision instead of taking the time to properly wireframe things, and it always bites me in the butt. I went through several variations of the interface before settling on what I have now.
Lesson: Save yourself the trouble by planning and designing everything first.
The upload process can be a pain
The prerequisites for setting up an extension can make you want to rip your hair out. The current Adobe.io process to create and upload an extension is time consuming with many steps to just get a basic extension uploaded into a development property in Launch.
A few weeks ago, I had the chance to speak with the Adobe Launch product team, and happily they were aware that this was a pain point. Recently, the product team updated the documentation to help clarify the process, but it's still simply a long process. Shout-out to the team for building the
npx @adobe/reactor-uploader tool which helps with uploading the extension to the Launch environment.
Be ready to support your extension
This isn't totally relevant if you're privately releasing, but if you're doing a public release be sure to allocate resources to supporting your extension. This means setting aside time to fixing bugs, adding new features, and of course, answering support requests. Let's be real, the last thing the community wants to see in the extension catalog is a bunch of unmaintained extensions that are buggy or severely outdated. Don't forget that your name is on the extension! Ignoring it will ultimately reflect poorly on you or your brand.
Additionally, I highly recommend creating tutorials and lots of documentation. I personally love GitBook for documentation, but you can use whatever system you're familiar with. The more self-serve documentation and tutorials you create, the fewer support requests will come in.
Lesson: Be a fan of the self-support model as much as possible but remember that supporting your extension should have a long-term plan.
Don't let this article scare you away from building an Adobe Launch extension! Getting your toes wet with extension development is surprisingly easy and rewarding. You're no longer locked into the tags or functions that Adobe thinks is right for you; now you can customize it the way you want to match your business needs. Just keep these learnings in mind and set aside extra time to learn new workflows and tools.
Want more info? Check out Adobe's official documentation on getting started with extension development.