CodeEditApp/CodeEdit

✨ Extension Store

jasonplatts opened this issue · 32 comments

Overview

The extension store should allow users to browse and install extensions submitted by other developers. They should be categorized using the information provided in each extensions manifest.json (See #174)

Tasks

  • Determine storage requirements
  • Design extension store UI (#355)
  • Build extension submission process
  • Build library, using information in submitted extension manifest files.

Concept

01-macOS-code-edit-extensions-installed

02-macOS-code-edit-extensions-explore

I'd imagine when one is clicked a tab in the main content area opens up to show more details.

Do we need a backend for this if so i know someone who might help with this

We are definitely not going to call it a "Marketplace". That is Microsoft lingo 😁

We are definitely not going to call it a "Marketplace". That is Microsoft lingo 😁

haha! I couldn't remember what you called it. We should definitely update it.

@nanashili I'd imagine so. We need to choose the right technologies to use for our backend. We will have our own website for downloads help and documentation so maybe Node.js?

@austincondiff, would you be able to post the screens you showed me?

@nanashili I'd imagine so. We need to choose the right technologies to use for our backend. We will have our own website for downloads help and documentation so maybe Node.js?

I can put you in contact with someone that builds in back-end

@austincondiff, would you be able to post the screens you showed me?

Posted to the issue description

@nanashili I'd imagine so. We need to choose the right technologies to use for our backend. We will have our own website for downloads help and documentation so maybe Node.js?

I can put you in contact with someone that builds in back-end

Bring him on the project!

@nanashili I'd imagine so. We need to choose the right technologies to use for our backend. We will have our own website for downloads help and documentation so maybe Node.js?

I can put you in contact with someone that builds in back-end

Bring him on the project!

What about .net as the back-end it has way better performance when it comes to scaling

"Extension Library" anyone? (similar to App library)

I like it. Simple and clear.

@austincondiff, would you be able to post the screens you showed me?

Posted to the issue description

Thanks!

Have we decided if we want a website for browsing extensions, in addition to the in-app extension library?

Lets try to just provide the in-app experience for browsing for now. We have to provide infrastructure around submission though complete with a CLI to do so.

Some naming idea options...

  1. Extension Library (App Library)
  2. Extension Registry (NPM - Package Registry)
  3. Extension Store (App Store - Does this imply monetary transactions? Microsoft uses "Marketplace" which has the same connotation)

Extension Library gets my vote.

0xWDG commented

I'll go for Extension Library.

Don't you think Apple would have gone for store?
Kind of fits better into the Apple ecosystem. At least from my perspective

Extension Library is my vote

Don't you think Apple would have gone for store? Kind of fits better into the Apple ecosystem. At least from my perspective

I could be convinced of this. Apple's "App Store" on the other hand is the central repository of all apps in existence. The "App Library" is all the apps you have downloaded from the store onto your personal device.

With that in consideration, "Extension Store" sounds a little more in line with Apple's naming convention.

Plus, I just googled "safari extension " and look what came up...

screenshot

The sidebar should show the extensions that had been added. And people should search or add extensions in the settings view. In this way, people can add extensions without opening a project.

I'm working on the PoC for Extension Store API, so I hope I'll be able to show some demos of how it can be implemented by Monday-Tuesday

From my experience, we don't want to call extension repository "Store" (or anything that implies there are going to be paid extensions) in anyway. People wouldn't like, specially involving open source projects.

I manage Extension Marketplace for VS Code, I can share some insights :)
Lend you a hand to build the backend

@prashantvc First of all, welcome to CodeEdit!

My thought in using the term “store” for the repository of extensions and “library” for the users installed extensions is…

  1. It follows Apple’s naming conventions (I.e. “App Store”, “App Library”)
  2. It doesn’t necessarily denote the exchange of funds quite the same way the term “marketplace” does (I could be wrong here though). In my line of thought, “store” can mean a store of value, a store of code, a store of functionality etc. When I look up store I see synonyms like, supply, reserve, cache, warehouse, storehouse, shed etc.

We certainly however wouldn’t mind hearing any expertise you have on the subject here or help on our backend when it comes down to it. We’d need to discuss architecture first though and I’d invite you to create an issue for the Extension Store Backend Architecture to get the conversation going.

Thanks @prashantvc for the suggestion and offering to help with building the backend! We very much appreciate it.

We would also love to hear any feedback and/or insight you or your team can provide on the extension architecture or CodeEdit in general.

@jasonplatts VS Code team is going to host Extension Authors meet soon. I will drop the details in here once available, you can join in ask questions. The team is extremely open, you can ask questions related to APIs and architecture.

Sounds great @prashantvc! Thank you!

cavnit commented

@austincondiff happy to throw my hat in the ring for the store backend in swift :) (Vapor)

@cavnit thay would be great! Feel free to put together a POC. Let us know if you need anything along the way. If you would like help or feedback, feel free to collaborate with other contributors and maintainers on our Discord.

@cavnit We don't have any requirements regarding this at this moment. Without the requirements it will be difficult to build without wasting time and build things that we maybe don't even want. There are some things described here, but due to the fact that this has been put on the back burner, I don't know how relevant these are at the moment.

Perhaps we can discuss these during our next meeting on our Discord.

We still welcome the help though. Your thoughts and ideas on how we could do this would be appreciated. Community by-in would be great so it might be a good idea to have a discussion in our extension channel in discord to exchange ideas and solidify requirements. We can discuss it in next weeks meet up but we don’t necessarily need to wait for it. I’d love to get the ball rolling!

I built a private extension repo for VS Code here https://github.com/prashantvc/extensions
We can extend on this, right now it is elementary. I can help you draft a initial requirements for the extension repo

cavnit commented

Sorry for the slow response, I will put something together over the next couple of days