What you’ll learn
  • core Webiny concepts
  • prerequisites for Webiny development
  • access curated resources links to get started with your development journey

Introduction
anchor

Welcome to the Developer Onboarding Guide for Webiny!

Whether you’re new to Webiny or looking to deepen your existing knowledge, this guide is designed to provide you with a foundation for working with Webiny.

In this guide, you will explore the prerequisites needed to make your development process smooth and efficient. We’ve included a curated list of resources to assist you. These links will guide you through tutorials and documentation, enabling you to leverage the full potential of Webiny as you progress in your development journey.

Webiny Overview
anchor

Webiny is an open-source content management system designed for enterprises. It’s built on top of the serverless infrastructure to enable great scalability and site reliability even in the most demanding periods.

Webiny is not your traditional CMS, nor your typical headless CMS. Webiny includes a set of applications that cater to a broad set of cases. Applications that come with Webiny are:

  • Headless CMS
  • Page Builder
  • Form Builder
  • File Manager
  • Advanced Publishing Workflow
  • Webiny Control Panel (also referred to as WCP)
  • Admin

Learn more about the full features of Webiny and its applications here.

Serverless Architecture
anchor

Webiny is built on a serverless infrastructure to ensure excellent scalability and reliability, especially during peak traffic periods. Serverless computing lets you build and run applications and services without thinking about servers. It eliminates the need to manage infrastructure for your applications. In the serverless world, your cloud service provider takes care of provisions, scales, and managing infrastructure required to run the code.

If you are not familiar with serverless technology, please refer to this Serverless Knowledge Baseexternal link. It provides answers to the most commonly asked questions about serverless computing and its benefits.

Install Webiny
anchor

Start your Webiny project quickly by deploying it into your AWS account. Follow the detailed steps in our guide to install Webiny.

Learn how to create a new Webiny project and deploy it into your AWS account.

Core Development Concepts
anchor

In this section we will look into some core development concepts that can help you in development with Webiny.

Plugins
anchor

Plugins are the fundamental building blocks in Webiny; everything is composed of plugins. So, if you’re wondering how to build or customize something within Webiny, the answer is typically to write a plugin for it. Whether you’re adding a feature or making a customization, you’ll find that nearly all enhancements in Webiny are achieved through plugins. Our documentation provides detailed guides on how to create plugins for various functionalities and customizations.

Learn about plugins, how they work, and the differences between frontend and backend environments.

Webiny CLI
anchor

Webiny CLI (command line interface) is the central tool that you’ll be using throughout the complete project development process, in your terminal of choice.

Learn what Webiny CLI is and how it can help you in your project development.

Project Applications
anchor

Webiny uses the term project application (or just application) in order to depict a specific logical segment of your project. Project applications are higher-level organizational units formed from one or more packages that, as the name itself suggests, form applications. Every application, essentially, consists of two pieces:

  • Your application code, which includes one or more Node.js packages.
  • Cloud infrastructure that hosts your code or which is being utilized by it, which is also described and deployed using code.

Learn what are Project Applications and how they’re structured.

Monorepo Organization
anchor

Every Webiny project is organized as a monorepoexternal link. This essentially means your project is organized as a collection of multiple NPM packages, or, in the context of monorepos, multiple workspaces.

Learn what are monorepo and what are the benefits this project organization brings.

Tools & Libraries
anchor

Learn about different tools and libraries that are included in every Webiny project.

Project Deployment
anchor

Webiny makes it easy to deploy your project, using the Webiny CLI and Pulumi as the default infrastructure as code and deployment solution. You can also easily deploy your project into multiple environments.

Learn how to deploy your Webiny project and its project applications, using the Webiny CLI.

Local Development
anchor

Serverless development has slightly different principles from traditional application development. In the traditional development process, developers typically develop and test their project locally before deploying it to a server. However, in the serverless world, this process is slightly different.

Learn about how to do local development in Webiny.

Infrastructure
anchor

Project deployment is an important part of an application development lifecycle. Essentially, deploying your project entails the deployment of necessary cloud infrastructure resources with the application code you wrote. It can be done from your machine directly, which is usually the case when developing, or from a remote environment, for example CI/CD systems, that, based on provided instructions, deploy your project automatically for you.

Architecture
anchor

A Webiny project consists of four project applications:

  1. Core (./apps/core) - defines core cloud infrastructure resources
  2. API (./apps/api) - your project’s (GraphQL) HTTP API
  3. Admin (./apps/admin) - your admin area
  4. Website (./apps/website) - your public website

If we wanted to compare these applications by the complexity of the cloud infrastructure, we could say that Core and API are the most complex ones. This is simply because these deploy more different cloud infrastructure resources than the remaining Admin and Website project applications.

Visit the Architecture documentation that explains everything related to the cloud infrastructure Webiny relies on.

Environments
anchor

Your project can be deployed into multiple environments. This means that you can have multiple “copies” of your project up and running at the same time, each having its own name and purpose.

Learn what are environments and how they work in a Webiny project.

Preview Deployments
anchor

During the project development, there is a chance that the deployed cloud infrastructure needs to change. New resources might be added, existing resources configured differently, and some may even need to be destroyed.

When doing more significant changes, it might be helpful to preview the deployment process that you’re about to execute. More specifically, you would certainly like to know if the deployment you’re about to execute destroys a mission-critical resource, e.g. a database or a file storage resource.

Learn how to preview cloud infrastructure deployments, before actually executing them.

Deployment Modes
anchor

The Core and API project application can be deployed in two different deployment modes: development and production.

Learn about development and production deployment modes.

Destroy Cloud Infrastructure
anchor

Learn how to destroy the cloud infrastructure deployed for your project applications, using the Webiny CLI.

Modify Cloud Infrastructure
anchor

Learn how to modify cloud infrastructure resources deployed by Webiny.

Infrastructure Best Practices
anchor

Learn what are some of the core best practices when it comes to managing the infrastructure for your Webiny instances.

CI/CD
anchor

The process of application development is much more than just writing application code. It entails several different subprocesses, which are equally, if not more, important. For example:

  • testing
  • deployment into multiple environments
  • organizing code in multiple Version Control System (VCS) branches
  • choosing the right cloud infrastructure resources for the job
  • storing and managing cloud infrastructure state files
  • security
  • monitoring and observability
  • team organization

In the our documentation, we cover some of these subprocesses and provide best practices around how to structure and implement them, within your CI/CD workflow.

Applications
anchor

The main applications Webiny are Headless CMS, Page Builder, Form Builder, File Manager, and Admin. Each application can operate independently, offering specific functionalities tailored to various needs. However, they are also designed to work together seamlessly, providing a cohesive and integrated experience.

In the upcoming section, we will delve into these main Webiny applications and explore common customizations. To further assist you, we have created End User Guides for each application, it will be linked in the sections below for easy access.

Learn more about Webiny applications here.

Headless CMS
anchor

A scalable GraphQL-based headless CMS built on top of serverless infrastructure.

Learn more about Headless CMS application.

User Guides
anchor

GraphQL API Overview
anchor

The Headless CMS Webiny application comes with a fully-fledged GraphQL API, which you use in order to perform GraphQL queries and mutations on Headless CMS content models, groups, and entries.

Learn what is the Headless CMS GraphQL API, what are its main characteristics, and how to access it.

Define Content Models via Code
anchor

Content models and content model groups can be defined in two ways

Page Builder
anchor

No-code page builder. Build pages in minutes using a drag&drop interface.

Learn more about Page Builder application.

User Guides
anchor

Pre-Defined Webiny Blocks Library
anchor

Webiny offers free library of over 100+ professionally designed, fully responsive page builder blocks that you can use in your Webiny Page Builder. These new pre-built visual blocks will empower you to effortlessly create stunning pages in no time.

To get started with these new blocks, please visit blocks.webiny.comexternal link.

Create a Custom Page Element
anchor

Out of the box, Webiny’s Page Builder app provides a plethora of ready-made page elements we can use to create both simple and complex pages for our website. Furthermore, on top of the default set, users can also create their custom page elements via plugins.

Learn how to create a custom page element that can be rendered on pages created with the Webiny’s Page Builder app.

Extend Page Settings
anchor

Page settings UI within the Webiny Page Builder, by default, contains 3 major sections: General settings, Social media, and SEO settings. You can extend page settings and add new fields to it.

Learn how to extend page settings by introducing new fields to it.

Theming Best Practices
anchor

By default, every Webiny project includes the default website theme which defines different visual aspects of your website, for example the default set of colors, typography, the default page layout, and more. It is managed via theme.

Here is an overview of how theming works in Webiny’s Page Builder application and Theme development & styling best practices.

Form Builder
anchor

No-code form builder. Build forms in minutes using a drag&drop interface.

Learn more about Form Builder application.

User Guides
anchor

Theming Introduction
anchor

When you’re creating forms in the Form Builder, you have the option to preview forms right there inside the same interface. How the form looks visually is controlled via the form layout that is selected for that form. The default theme includes a single form layout which should fit most use-cases. If you wish to do any visual tweaks, it’s best to just modify the stylesheets.

For more advance case you might want to create a custom form layout. The best approach would be to copy the existing one and update the things you need to adapt.

Learn more about Form Builder theme and how to create a new theme.

File Manager
anchor

A scaleable digital asset management application built on top of serverless infrastructure.

Learn more about File Manager application.

User Guides
anchor

Create a File Type Plugin
anchor

By default, the Webiny File Manager has a preconfigured plugin for image files, and a fallback plugin to render any other file type using a default icon. You can implement your own renderers for file types of your choice.

Learn how to create a plugin to handle any file type within Webiny File Manager.

Programmatic File Upload
anchor

Upload of files into the File Manager is a 3-step process, which is described, from the architectural point of view, in the File Upload article. Very often, files can be several gigabytes (or even terabytes) large, which makes it impossible to use the GraphQL API, or even a REST API, to upload binary content using the Lambda functions, which power our API, due to its physical limitations.

Admin Area
anchor

Webiny CMS is a unified product that consists of several apps. To access them, you use the Admin app. The Admin app not only contains ready-made apps, but also provides a framework for developers to extend their functionality, and develop custom ones.

Learn more about Admin application.

Basics - the Framework
anchor

Admin app is powered by a simple React framework, which allows you to add new React Context providersexternal link, compose existing UI components, register routes, and do all that using plain React componentsexternal link, and widely used concepts, like Higher Order Componentsexternal link (hereinafter: HOCs), and hooksexternal link.

Learn what makes the Admin app tick, and how plugins work.

Change Logo

You can change the default Webiny logo to your own logo in Admin application. Changing the default logo is a very quick and straightforward process.

Custom Dashboard
anchor

You can customize the default dashboard in Admin application.

Release Management
anchor

Branching Strategy
anchor

At Webiny, we like to release versions relatively often (in 2-3 weeks cycles), so our users get all the new features and bug fixes that we add to the product. We have a quarterly major release cycle during which we launch significant new features.

However, since Webiny is not a simple library, upgrading between project versions can be cumbersome, and not all users want to do it that often. Sometimes, upgrades require code mods to modify your project files, database migrations get executed, so it’s a bit more complex than just pulling in a new NPM package version.

Learn how Webiny team organizes GitHub branches and what are our release cycles.

Release Notes
anchor

We maintain a dedicated section for Release Notes, Upgrade Guides, and Change Logs to help you stay updated and efficiently manage upgrades.

Visit the Release Notessection for detailed information on upgrade guides and the release changelog.