> ## Documentation Index
> Fetch the complete documentation index at: https://engineering.trewknowledge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools we use

export const icons = {
  localWp: <svg className="h-6 w-6" viewBox="0 0 35 35"><g data-name="Group 21117" fill="#0d9373"><path data-name="Path 9798" d="M6.663 17.521l9.913-9.913a.947.947 0 00.3-.707v-5.9a1.039 1.039 0 00-.626-.919 1 1 0 00-1.09.222L2.08 13.402A6.009 6.009 0 000 17.561a5.8 5.8 0 002.019 4.121l13.143 13.141a.947.947 0 00.707.3.577.577 0 00.384-.121 1.007 1.007 0 00.626-.929v-5.932a1.028 1.028 0 00-.3-.707zM2.75 19.482a3.159 3.159 0 01-.747-1.9 4.226 4.226 0 011.494-2.746L14.859 3.469v3.049L4.381 16.996a6.459 6.459 0 00-1.631 2.486zm12.109 12.172L5.29 22.082a1.11 1.11 0 00-.141-.182c-.3-.3-1.211-1.211.141-2.907l9.57 9.57v3.089zM20.45.32a.991.991 0 00-1.09-.222 1.007 1.007 0 00-.626.929v5.955a1.028 1.028 0 00.3.707l9.916 9.913-9.913 9.913a.947.947 0 00-.3.707v5.875a1.007 1.007 0 00.626.929.875.875 0 00.384.081 1.046 1.046 0 00.707-.283l13.081-13.083a6.009 6.009 0 002.08-4.159 5.8 5.8 0 00-2.019-4.119zm.3 6.239v-3.09l9.57 9.57a1.111 1.111 0 00.141.182c.3.3 1.211 1.211-.141 2.907zm11.351 13.748L20.735 31.674v-3.029l10.478-10.5a6.611 6.611 0 001.637-2.481 3.159 3.159 0 01.747 1.9 4.27 4.27 0 01-1.496 2.743zm-6.864-1.918h-15a.767.767 0 01-.767-.767v-.081a.767.767 0 01.767-.767h15a.767.767 0 01.767.767v.081a.78.78 0 01-.767.767zm-2.14-3.775v.081a.767.767 0 01-.767.767h-9.207a.767.767 0 01-.767-.767v-.081a.767.767 0 01.767-.767h9.207a.767.767 0 01.767.767zm-2.847-2.948v.081a.767.767 0 01-.767.767h-3.654a.767.767 0 01-.767-.767v-.081a.767.767 0 01.767-.767h3.654a.754.754 0 01.767.767zm-.767 11.044a.767.767 0 01.767.767v.081a.767.767 0 01-.767.767h-3.654a.767.767 0 01-.767-.767v-.081a.767.767 0 01.767-.767zm2.847-1.353h-9.207a.767.767 0 01-.767-.767v-.081a.767.767 0 01.767-.767h9.207a.767.767 0 01.767.767v.081a.767.767 0 01-.767.767z"></path></g></svg>,
  yeoman: <svg viewBox="0 0 35 35"><g fill="#0d9373"><path d="M25.706,16.847,27.4,7.03S24.849,2,16.037,2C5.344,2,4.562,7.03,4.562,7.03l1.714,9.817Z" /><polygon points="5.549 12.637 6.276 16.847 25.706 16.847 26.432 12.637 5.549 12.637 5.549 12.637" /><polygon points="28.63 19.194 3.351 19.194 2.569 16.847 29.431 16.847 28.63 19.194" /><circle cx="15.981" cy="13.997" r="3.13" /><path d="M15.981,16.735A2.738,2.738,0,1,1,18.72,14,2.743,2.743,0,0,1,15.981,16.735Zm0-5.123A2.384,2.384,0,1,0,18.366,14a2.377,2.377,0,0,0-2.384-2.384Zm0,4.359A1.975,1.975,0,1,1,17.956,14,1.976,1.976,0,0,1,15.981,15.972Zm0-3.707A1.714,1.714,0,1,0,17.7,13.978a1.709,1.709,0,0,0-1.714-1.714Zm.5,1.025.894-.652-.689.876,1.08-.279-.95.577,1.1.13-1.1.186,1.006.522-1.08-.224.727.838-.931-.6.373,1.043-.652-.894-.019,1.118-.279-1.08-.428,1.025.112-1.1-.764.8.5-.987-1.006.466.838-.745-1.118.075L15.143,14l-1.062-.335,1.118.019-.876-.689,1.025.41-.559-.95.8.764-.186-1.1.484,1.006.224-1.08.093,1.118.615-.931Z" /><path d="M15.981,22.983s1.937-2.31,6.483-1.174,6.874,6.762,6.874,6.762a9.244,9.244,0,0,1-6.352,1.341C19.111,29.41,15.963,25.275,15.981,22.983Z" /><path d="M8.977,29.913a9.244,9.244,0,0,1-6.352-1.341S4.953,22.946,9.5,21.809s6.483,1.174,6.483,1.174C16,25.274,12.851,29.41,8.977,29.913Z" /><path d="M25.706,16.847,27.4,7.03S24.849,2,16.037,2C5.344,2,4.562,7.03,4.562,7.03l1.714,9.817Z" /><path d="M5.549,12.637l.727,4.21h19.43l.727-4.21H5.549Z" /><path d="M28.63,19.194H3.351l-.782-2.347H29.431Z" /><circle cx="15.981" cy="13.997" r="3.13" /><path d="M15.981,16.735A2.738,2.738,0,1,1,18.72,14,2.743,2.743,0,0,1,15.981,16.735Zm0-5.123A2.384,2.384,0,1,0,18.366,14a2.377,2.377,0,0,0-2.384-2.384Zm0,4.359A1.975,1.975,0,1,1,17.956,14,1.976,1.976,0,0,1,15.981,15.972Zm0-3.707A1.714,1.714,0,1,0,17.7,13.978a1.709,1.709,0,0,0-1.714-1.714Zm.5,1.025.894-.652-.689.876,1.08-.279-.95.577,1.1.13-1.1.186,1.006.522-1.08-.224.727.838-.931-.6.373,1.043-.652-.894-.019,1.118-.279-1.08-.428,1.025.112-1.1-.764.8.5-.987-1.006.466.838-.745-1.118.075L15.143,14l-1.062-.335,1.118.019-.876-.689,1.025.41-.559-.95.8.764-.186-1.1.484,1.006.224-1.08.093,1.118.615-.931Z" /><path d="M15.981,22.983s1.937-2.31,6.483-1.174,6.874,6.762,6.874,6.762a9.244,9.244,0,0,1-6.352,1.341C19.111,29.41,15.963,25.275,15.981,22.983Z" /><path d="M8.977,29.913a9.244,9.244,0,0,1-6.352-1.341S4.953,22.946,9.5,21.809s6.483,1.174,6.483,1.174C16,25.274,12.851,29.41,8.977,29.913Z" /></g></svg>
};

export const urls = {
  github: "https://github.com/trewknowledge",
  jira: "https://trewknowledge.atlassian.net",
  engDptRepo: "https://github.com/trewknowledge/Engineering-Handbook",
  devSlackChannel: "https://trewknowledge.slack.com/archives/C0EMY08CA",
  employeeHandbook: "https://trewknowledge.atlassian.net/wiki/spaces/TK/pages/2295922710"
};

This page documents some of the tools you need to do your job as a developer at Trew Knowledge.

Some things are required, but generally, we try to be flexible about what you use. If you’re already happy with your development setup, you probably won’t need to change much. That said, documenting some commonly used tools and configurations is still important.

## Essential Tools

You'll need these essential tools for day-to-day development, so ensure you have access to them. You should be given access to these as part of your onboarding, but if not, ask your manager. Also, please make sure to enable two-factor authentication where possible.

### Laptop and OS

Most of our team uses Apple laptops, and much of the guidance reflects this. You are free to choose an alternative, and we have some developers who use Windows or Linux, but the rest of the team may not provide as much support.

### Version Control

<CardGroup cols={2}>
  <Card title="GitHub" icon="github" href="https://github.com/">
    We use GitHub extensively, so you will need a GitHub account. You'll also need git installed on your computer.
  </Card>

  <Card title="GitKraken" icon="gitkraken" href="https://www.gitkraken.com/">
    We use GitKraken as our Git GUI of choice. You will need to be added to our company account.
  </Card>
</CardGroup>

### Communication

<Card title="Slack" icon="slack" href="https://slack.com">The main way we communicate. Download the app on your laptop. Make sure to join the **<a href={urls.devSlackChannel}>#development</a>** channel! Installing the app on your phone can be useful too, but be careful that you're able to switch off at the end of the day!</Card>

<CardGroup cols={2}>
  <Card title="Google Meet" href="https://meet.google.com">What we use for most of our calls.</Card>
  <Card title="Zoom" href="https://zoom.us">There are rare instances where we need to use Zoom.</Card>
  <Card title="Webex" href="https://www.webex.com/">Some of our clients use Webex exclusively and company policies do not allow them to use anything else.</Card>
  <Card title="Microsoft Teams" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software">Some of our clients use Teams internally and will expect us to use it if they are the ones booking the meetings.</Card>
</CardGroup>

### Local Development

<CardGroup>
  <Card title="LocalWP" icon={icons.localWp} href="https://localwp.com">
    This is the most common way to run WordPress sits locally. You can quickly spin up a WordPress site in seconds and it comes with a lot of useful features.
  </Card>

  <Card title="WordPress VIP Local Environment" icon="wordpress" href="https://docs.wpvip.com/local-development/">
    The WordPress VIP Local Environmentis a feature built into VIP-CLI for creating and controlling an environment on a supported local machine that mimics an environment running on the VIP Platform.
  </Card>
</CardGroup>

### CLIs and More

<CardGroup cols={2}>
  <Card title="Node.JS" icon="node-js" href="https://nodejs.org/en">
    You will need this to run most local build processes. We recommend installing Node using **[nvm](https://github.com/nvm-sh/nvm)** so that it is easier to switch between different versions depending on your project.
  </Card>

  <Card title="Yeoman" icon={icons.yeoman} href="https://yeoman.io/">
    We use Yeoman to quickly scaffold new WordPress themes and plugins. You can learn more about that in our **[TK-Quickstart repository](https://github.com/trewknowledge/TK-Quickstart)**
  </Card>

  <Card title="WP-CLI" icon="wordpress" href="https://wp-cli.org/">
    This comes included with Local if you right-click your site and select "Open Site Shell". We use this to run commands on our local WordPress sites and develop our custom commands.
  </Card>

  <Card title="VIP-CLI" icon="wordpress" href="https://docs.wpvip.com/vip-cli/">
    Want to run commands on your VIP site? VIP-CLI is the way to go. You can also use it to spin up a local VIP environment.
  </Card>
</CardGroup>

### Code Editors

<CardGroup cols={2}>
  <Card title="VS Code" icon="file-code" href="https://code.visualstudio.com/">
    We use VS Code for most of our development. It is free and open source, and has a huge ecosystem of extensions.
  </Card>

  <Card title="PHP Storm" icon="file-code" href="https://www.jetbrains.com/phpstorm/">
    We also have a few developers who use PHP Storm. It is a paid product, but has a lot of useful features for WordPress development.
  </Card>
</CardGroup>

### Terminal

<CardGroup cols={2}>
  <Card title="Terminal.app">
    This is the default terminal application that comes with MacOS. It is fine to use, but there are better options available.
  </Card>

  <Card title="Warp*" href="https://warp.dev">
    Warp is a terminal app that is powered by AI. It is free to use, but you need to create an account.
  </Card>

  <Card title="iTerm" href="https://iterm2.com/">
    iTerm is a popular alternative to Terminal.app. It has a lot of useful features, and is free to use.
  </Card>

  <Card title="Hyper" href="https://hyper.is/">
    Hyper is a terminal app that is built using web technologies. It is free to use.
  </Card>
</CardGroup>

### Project Management

<CardGroup cols={2}>
  <Card title="Jira" icon="jira" href="https://trewknowledge.atlassian.net">
    This is our project management tool of choice. It is where you will find all projects, and where tickets will be assigned for work.
  </Card>

  <Card title="Confluence" icon="confluence" href="https://trewknowledge.atlassian.net/wiki">
    We use Confluence to document our processes and store information about our projects.
  </Card>
</CardGroup>

### Quality Assurance

For a list of all the tools and services we use for quality assurance, please see the [Quality Assurance](/how-we-work/process/quality-assurance) section of the handbook.

## Optional tools

None of these tools are essential, but some developers at Trew Knowledge use them as part of their setup. You won’t need to install all of them right away, but take a look, and you can install things as and when you need them.

### Database management application.

<AccordionGroup>
  <Accordion title="MacOS" icon="apple">
    * [SequelAce](https://github.com/Sequel-Ace/Sequel-Ace)
    * [TablePlus](https://tableplus.com/)
  </Accordion>

  <Accordion title="Linux and Cross-Platform" icon="linux">
    * [TablePlus](https://tableplus.com/)
    * [DBeaver](https://dbeaver.io/)
  </Accordion>
</AccordionGroup>

### API tool.

Not essential, but can be really useful if you're doing a lot of work with APIs.

* [Postman](https://www.postman.com/). Also available as a VS Code extension.

## Setting up your code editor

<AccordionGroup>
  <Accordion title="VS Code" icon="code">
    Some useful extensions and settings.

    <Tabs>
      <Tab title="Extensions">
        | Name                                                                                                        | Description                                                                                                                                                                                                                                                                                          |
        | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
        | [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)                        | AI pair programmer                                                                                                                                                                                                                                                                                   |
        | [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat)              | Chat with GitHub Copilot                                                                                                                                                                                                                                                                             |
        | [Playwright Test for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright)  | Write Playwright tests                                                                                                                                                                                                                                                                               |
        | [Auto Import](https://marketplace.visualstudio.com/items?itemName=steoates.autoimport)                      | Automatically finds, parses and provides code actions and code completion for all available imports. Works with Typescript and TSX.                                                                                                                                                                  |
        | [CodeSnap](https://marketplace.visualstudio.com/items?itemName=adpyke.codesnap)                             | Quickly create beautiful code screenshots                                                                                                                                                                                                                                                            |
        | [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens)                      | Highlights lines with errors, warnings, and other annotations                                                                                                                                                                                                                                        |
        | [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)                        | Integrates ESLint JavaScript into VS Code.                                                                                                                                                                                                                                                           |
        | [File Utils](https://marketplace.visualstudio.com/items?itemName=sleistner.vscode-fileutils)                | A convenient way of creating, duplicating, moving, renaming and deleting files and directories.                                                                                                                                                                                                      |
        | [Font Preview](https://marketplace.visualstudio.com/items?itemName=ctcuff.font-preview)                     | Preview fonts in VS Code                                                                                                                                                                                                                                                                             |
        | [GitHub Actions](https://marketplace.visualstudio.com/items?itemName=github.vscode-github-actions)          | Provides syntax highlighting, linting, and IntelliSense for GitHub Actions workflow files in Visual Studio Code.                                                                                                                                                                                     |
        | [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)                              | GitLens supercharges the Git capabilities built into Visual Studio Code. It helps you to visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more. |
        | [Import Cost](https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost)                   | Display import/require package size in the editor                                                                                                                                                                                                                                                    |
        | [MDX](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx)                             | Syntax highlighting and language support for MDX                                                                                                                                                                                                                                                     |
        | [Output Colorizer](https://marketplace.visualstudio.com/items?itemName=IBM.output-colorizer)                | Syntax highlighting for log files                                                                                                                                                                                                                                                                    |
        | [Path Intellisense](https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense) | Visual Studio Code plugin that autocompletes filenames                                                                                                                                                                                                                                               |
        | [PHP Docblocker](https://marketplace.visualstudio.com/items?itemName=neilbrayfield.php-docblocker)          | A simple, dependency free PHP specific DocBlocking package                                                                                                                                                                                                                                           |
        | [Document This](https://marketplace.visualstudio.com/items?itemName=oouo-diogo-perdigao.docthis)            | Automatically generates detailed JSDoc comments in TypeScript and JavaScript files.                                                                                                                                                                                                                  |
        | [PHP Intelephense](https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client) | PHP code intelligence for Visual Studio Code                                                                                                                                                                                                                                                         |
        | [phpcs](https://marketplace.visualstudio.com/items?itemName=shevaua.phpcs)                                  | PHP CodeSniffer for Visual Studio Code                                                                                                                                                                                                                                                               |
        | [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)                      | Code formatter                                                                                                                                                                                                                                                                                       |
        | [Tailwind CSS Intellisense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)  | Intelligent Tailwind CSS tooling for VS Code                                                                                                                                                                                                                                                         |
        | [Toggle Quotes](https://marketplace.visualstudio.com/items?itemName=BriteSnow.vscode-toggle-quotes)         | Toggle between single and double quotes with ⌥ + '                                                                                                                                                                                                                                                   |
      </Tab>

      <Tab title="Settings">
        * Colorize bracket pairs for easier identification by adding `"editor.bracketPairColorization.enabled": true` to your settings.json.
      </Tab>
    </Tabs>
  </Accordion>

  <Accordion title="PhpStorm" icon="code">
    Looking for contributors...
  </Accordion>
</AccordionGroup>

## How We Work

This section of the handbook describes how Trew Knowledge works, and you are encouraged to read it all for a good overview. If you're short of time, the key documents to read are the [development process](/how-we-work/process/development) and [review process](/how-we-work/process/reviews) pages.

## We're Here to Help

Your manager and project team will help you get up to speed quickly, but everybody at Trew Knowledge is also here to support you. If you see anything in these onboarding documents that doesn’t make sense or does not work for you — a broken link, an unfamiliar concept, something that looks outdated — don’t be afraid to ask questions!

You can ask questions in the <a href={urls.devSlackChannel}>#development</a> channel in Slack or message anybody directly. Please do not hesitate to ask for assistance.

We're glad to have you on the team — welcome to Trew Knowledge!
