Here are some instructions on how to get started with New Help...
Expensify is an open source app, with its public Github repo hosted at https://github.com/Expensify/App. The newhelp.expensify.com website is a part of that same open source project. You can contribute to this helpsite in one of two ways:
If you are a developer comfortable working on the command line, you can edit these files as follows:
- Fork https://github.com/Expensify/App repo
...tbd...
- Install Homebrew: https://brew.sh/
- Install
rbenv
using brew:
brew install rbenv
- Install ruby v3.3.4 using
rbenv install 3.3.4
- Set the your default ruby version using
rbenv global 3.3.4
- check to ensure that your global ruby version is
3.3.4
ruby -v
- Install Jekyll and bundler gem
cd help
gem install jekyll bundler
- Install node dependencies with npm
npm install
- Create a branch for your changes
- Make your changes
- Locally build and test your changes (they build to the /help/_site/ directory):
bundle exec jekyll build
- Push your changes
If you don't want to set up your own local dev environment, feel free to just edit the help materials directly from Github:
- Open whatever file you want.
- Replace
github.com
withgithub.dev
in the URL - Edit away!
The current design of NewHelp.expensify.com is only to have a very small handful pages (one for each "product"), each of which is a markdown file stored in /help
using the product
template (defined in /help/_layouts/product.html
). Accordingly, it's very unlikely you'll be adding a new page.
The goal is to use a system named Jekyll to do the heavy lifting of not just converting that Markdown into HTML, but also allowing for deep linking of the headers, auto-linking mentions of those titles elsewhere, and a ton more. So, just write a basic Markdown file, and it should handle the rest.
Every PR pushed by an authorized Expensify employee or representative will automatically trigger a "build" of the site using a Github Action. This will follow these steps to:
- Start a new Ubuntu server
- Check out the repo
- Install Ruby and Jekyll
- Build the entire site using Jekyll
- Create a "preview" of the newly built site in Cloudflare
- Record a link to that preview in the PR
Whenever a PR that touches the /help
directory is merged, it will re-run the build just like before. However, it will detect that this build is being run from the main
branch, and thus push the changes to the production
Cloudflare environment -- meaning, it will replace the contents hosted at https://newhelp.expensify.com