Introduction
Introduction to the Contribution Concept
Extensions are the ideal way to extend the functionality of the mStudio.
An extension is a web application managed by a contributor and provided to the mStudio users. An authorized user can then add that extension to an organization or project.
The content, or rather the functionality, of the extension should provide value for the mStudio user with managing, creating, and editing their web projects. It should achieve this by extending the functionality of the mStudio.
From a technical perspective, an extension is an application separate from and independent of the mStudio and integrates with the mStudio via REST APIs. An extension has to provide a publicly reachable backend. If, for example, instances of the extension are created or deleted, the mStudio notifies the extension via webhooks to its backend. It may also provide a frontend if that makes sense for the extension's use case.
Extension can...
... simplify and speed up the workflow while using the mStudio, improving productivity.
... fetch information, create or edit resources, or automate workflows.
... interact with the public mStudio API, authenticated and authorized.
... implement automated deployment strategies via third party CI/CD pipelines.
... integrate existing third party products with the mStudio and therefore provide them for thousands of organizations.
... be used to realize alternative business models.
From Conception to Release
Develop the Concept You have already identified a problem, you wanted to solve for a long time? Perfect! Then let's go! Even if you are unsure, reach out to us (by e-mail: contributorwerden@mittwald.de). We will decide together what you need and how we can support you.
Become a Contributor Write an e-mail to contributorwerden@mittwald.de. Let's clarify questions and discuss the next steps. Afterward, we will list you as a contributor and you can start.
Develop an Extension Let's go! In this documentation, you will find hints, tools, templates, examples, etc.
Contact with Mittwald Do you have questions? Do you require functionality? We support you! You get access to the private GitHub repository, where you can exchange information with us and all other contributors. We will also gladly connect you to our technical experts so that you stay in the flow.
Release an Extension Have you completed development? Then release your extension! We only require a YAML file from you. We then validate the content of your extension once. Afterward, we take the extension live in the mStudio and thousands of customers can add it.
Earn Money You decide whether your extension should cost monthly and how much. You get 85% of the revenue. mittwald keeps 15% as comission. We also completely take care of the billing. We create the bills for customers and take care of your payment.
Support Customers If a customer has questions regarding your extension, they will contact you directly. Currently, this communication is organized via e-mail. In the future, we want to provide a support system.
Continued Development Develop your extension in the direction and speed, you prefer.
Be Happy A problem you wanted to solve for a long time is solved! You help other agencies that have the same problem and also earn money! What are you waiting for?
Why should I contribute?
By publishing an extension, you can help the community and generate continuous income simultaneously.
- You can react flexibly to requirements in your day-to-day work at an agency and adjust your extension. Do you need something? Then build it just like you need it.
- We publish the extension in your name. Therefore, you can expand your pool of customers. Today, thousands of organizations and their users manage their web projects in the mStudio. All mStudio users can see and use your extension and find you and your organization.
- Extensions by agencies, for agencies. You can advance the whole industry with your solutions since 90% of the web projects hosted at mittwald are managed by agencies.
- Continuous income! You decide the monthly price of your extension! 85% of the proceeds go straight into your pockets!
- Easy billing: mittwald manages the billing for you! We bill the end users and also manage the billing for your share. This way you can focus on the development of your extension!
- Easy development: We support you with a standardized API, OAuth, and provide frontend components and example extensions. If you have questions or problems, we are always available as this is our style at mittwald.
Requirements for Contributions
You need the following to contribute to the mStudio in the form of an extension:
- An mStudio user and an mStudio organization, which the mStudio displays as the authors of the extension. The section Creating an Organization in the mStudio explains how to create both.
- A contributor listing by mittwald. You can read how this works in the section Listing as a Contributor.
- A support e-mail address, your customers can reach you at.
Structure of this Documentation
This documentation will guide you while learning about the fundamental concepts of extension development. Combined with your development experience and your idea for an extension, this documentation should enable you to develop your extension and release it for mStudio users.
This documentation also describes fundamental organizational processes in addition to technical content. You will find information about the platform where mittwald and contributors exchange information, the support path for the users of your extension, and the billing of your extension.
In the Glossary, you find definitions of various terms.
The section Overview conveys fundamental knowledge about extensions.
The section How-To answers frequently asked questions.
The section Reference describes technical concepts in depth. It includes documentation of schemas, templates, tips for development, and explanations.
The opportunity for external contributors to develop extensions is new for mittwald. We are actively working on this concept, and this documentation is therefore updated regularly. If you miss something in the documentation, please use the button in the top right corner to contact us via GitHub. We are grateful for any feedback!