Data and document handling without need for React

adf

#1

First of all, thanks for sharing the latest changes in the platforms on Atlas Camp last week in Barcelona. It sure was interesting!

Coming back to work after a week of travelling, I’m at my desk collecting my thoughts. A lot of questions for us at the moment is related to frontend frameworks. Even though Atlassian has been React-committed for a number of years, we have chosen to with Vue. The reason for this is mainly that it better fits our backgrounds in the company.

For the UI related components I have no doubt we will be okay, we build many of our UI things from scratch or base them on one of the many great Vue libraries for basic UI elements.

My concern is rather with the new framework specific data handling we have been presented with lately, for example the ADF Utils package. It seems like a great tool, but what if you are not on React for your addons? Any chances we could see a pure JS version of these tools? What are the plans for these kinds of packages handling data or documents rather than presenting stuff in the future? Will we see Atlassian committing even more to one frontend framework?


#2

@Martin I’ve actually contemplated in creating a VueJS AtlasKit project in which all AtlasKit components are replicated. I think if we manage to do this, and also get other developers on board, it might be easier to persuade Atlassian to contribute in terms of supporting ADF etc. Would this be something you are interested in?


#3

Yes, it might actually be something worth doing. I’m not sure how much time I’ll be able to put into such a project. But It is surely an interesting idea.

However, I’d be most interested in the non-UI related packages. The part of AtlasKit that is related to data manipulation. There is still an argument to be held around the need for them to be React specific to begin with I think… Would you agree?


#4

Yes, but for that argument to be successful I think we also need to be able to proof that there is an active community of non-React users. If all app vendors are more than happy to comply with using React, there is no incentive for Atlassian to support vanilla javascript implementations.


#5

And I’m not sure this community exists right now, especially because most vendors will go with switching to React because there is no alternative available. :slight_smile:


#6

You highlight an interesting catch 22 there. Do you have any suggestions on how to get started?


#7

Well… I actually think the best way to get the community on board with VueJS is to create an alternative to AtlasKit. I know that there are many who are not thrilled to work with React but do so because it is the way of least resistance.


#8

It does seem like most of the AtlasKit source code is available on Bitbucket. Most of the code is licensed under the Apache 2.0 license, but parts are under Atlassians own ADG Licence (https://atlassian.design/guidelines/handy/license). Is this going to be a problem if we where to do Vue ports of their components?


#9

Good question, let’s find out!

@daz can you help us here? Or else @ldellatorre and @nmansilla?
The question is: would it be possible for Atlassian to extend the community permission to create a VueJS library on par with AtlasKit?


#10

Out of interest, what were the reasons Vue.js was a better fit, given the background of your company?


#11

Well, we do not come from a React background for starters. Only a small percentage of the dev team has any knowledge in React at all. When evaluating different frameworks I found that I understood how Vue works much faster and in more depth than I ever did React. It felt more natural to me with the separation of templating etcetera. Granted the differences are small, but I just thought we’d be up and running much faster if that would be our framwork of choice.

So starting from almost zero we went in the direction of Vue because I thought it would be easier to onboard the dev team on Vue compared to React.

Before I have never felt that it would be a challenge to fit Vue into an Atlassian addon, since we do not use most of the AtlasKit components anyway. But now that they are introducing data handling in React I don’t know. It still feels like a somewhat strange decision to make in my humble opinion. I’d love to hear from them about their reasoning around that.

Long answer to a short question! :boom:


#12

I have too faced this problem when initially wanting to make ad add-on, but not really being React user. There is a package which allows to use React components in vue - https://github.com/akxcv/vuera

However, there had to be some workarounds made while using it. E.g. I had wrap some AtlasKit React components in my own React components, since vuera does have some limitations. I have also had to use AP.events.emit for events.

I do have some users for this add-on and there is no substantial complains, so I think it can be used - https://marketplace.atlassian.com/apps/1219031/simple-reports-charts-lite-for-jira?hosting=cloud&tab=overview