Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 39 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,45 @@
# Studio by WordPress.com

A desktop application for creating local WordPress environments powered by WordPress Playground.
A desktop application for creating local WordPress environments, powered by WordPress.com and WordPress Playground.

## Development
![](https://raw.githubusercontent.com/Automattic/studio/trunk/demo.png)

#### One Time Machine Setup
## Getting started
Studio is open source and is available to download for free!

The project includes native dependencies which require Python and it's `setuptools` module to build correctly.
YMMV but if you manage packages with Homebrew you can do the following:
**Step 1: Download the App**

[Download Studio for macOS (Intel or Silicon)](https://developer.wordpress.com/studio/) for free today, or get on [the waiting list for the Windows version of Studio](https://developer.wordpress.com/studio-for-windows/).

**Step 2: Explore the Documentation**

[Visit the Studio documentation](https://developer.wordpress.com/docs/developer-tools/studio/) for detailed instructions, feature descriptions, and frequently asked questions.

**Step 3: Give Feedback**

We’d love to get your thoughts and feedback on your experience with Studio. If you have a question or suggestion, [reach out to our Happiness Engineers](https://developer.wordpress.com/contact/). Also, see the Contributing section for more information on how to get in touch with us.

## Contributing

Studio is an open source project that welcomes all contributions. If you spot a bug or the feature you need is missing, open an issue or propose a Pull Request to implement it.

- Reporting bugs: Open an issue in the repository.
- Ideas or feature requests: Open an issue in the repository.
- Code contributions: See the sections below.

### Start development

#### Initial setup

The project includes native dependencies which require Python and its `setuptools` module to build correctly.

If you manage packages with Homebrew you can do the following:

```bash
$ brew install python3 python-setuptools
```

#### Install Dependencies, Incrementally Build, and Run App
#### Install dependencies, incrementally build, and run app

```bash
$ nvm use
Expand All @@ -27,9 +53,11 @@ The app automatically launches with the Chromium developer tools opened by defau

`src/renderer.ts` is the entry point for the "renderer"—the code running in the Chromium window.

Code formatting has been set up to make merging PRs easier. It uses the same prettier/eslint mechanism as Calypso, see p4TIVU-9Lo-p2 for details on setting up your editor.
#### Code formatting

Code formatting has been set up to make merging PRs easier. It uses the same prettier/eslint mechanism as Calypso. See [JavaScript Coding Guidelines](https://github.com/Automattic/wp-calypso/blob/trunk/docs/coding-guidelines/javascript.md) for details on setting up your editor.

## Debugging
### Debugging

The renderer process can be debugged using the Chromium developer tools. To open the developer tools, press `Cmd+Option+I` on Mac or `Ctrl+Shift+I` on Windows.

Expand All @@ -48,7 +76,7 @@ $ npm start -- --inspect-brk-electron

Then open `chrome://inspect` in a Chromium-based browser and click "inspect" next to the process you want to debug.

## Building Installers
### Building Installers

Installers can currently be built on Mac (Intel or Apple Silicon) and Windows:

Expand All @@ -57,31 +85,10 @@ $ npm install
$ npm run make
```

## Localization
### Localization

[See localization docs](./docs/localization.md)

## Versioning and Updates
### Versioning and Updates

[See versioning docs](./docs/versioning-and-updates.md)

## [Linux] Authentication setup for local development

In order for the authentication to work on Linux, you need to follow the next steps:

- Run `npm run make` from the root of the project
- Create a new `.desktop` file in `~/.local/share/applications/` with the following content:

```
[Desktop Entry]
Name=Studio By WordPress.com dev
Comment=Studio By WordPress.com dev
Exec=<path_of_project>/out/Studio-linux-x64/studio %U
Type=Application
Terminal=false
MimeType=x-scheme-handler/wpcom-local-dev;
Categories=Development;
```

- Run `update-desktop-database ~/.local/share/applications/` to update the desktop database
- Ensure that there is an new entry in `~/.config/mimeapps.list` for `x-scheme-handler/wpcom-local-dev` protocol.
Binary file added demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.