Get Help with Gomix

Stuff We’re Asked A Lot

How much does it cost?

Gomix is free to use while we’re in beta (with some restrictions, see below). We expect to always have some sort of free plan, but we may charge for premium services or capabilities down the line.

You can get a zip of your code in Gomix, or export it to GitHub and it’ll work without any changes on other services (go to ‘Advanced Options’ from the top-left ‘Project Info’ menu). We’re made by Fog Creek, a profitable business that has been around for over 16 years – so you don’t have to worry about us being some flighty startup.

What usage restrictions are in place?

While we want to keep Gomix as open as possible, there are a few restrictions in place. These are there to help maintain service levels for all, and to stop someone’s accidental infinite loop somehow costing us a small fortune. The restrictions include:

  • Projects created by anonymous users expire after 5 days (login via GitHub to keep your projects around).
  • Containers sleep after 5 minutes if they are not used.
  • Containers have a limit of 128MB of space.
  • Projects only show up to 100 files.

If they become problematic then let us know. We’ll try and sort something out if we can.

What languages and frameworks are supported?

Currently, we only support Node.js. All Node packages should work fine (just require them and include them in your package.json file), see our community projects for some examples. If you encounter any problems please let us know on the forum.

What’s remixing?

When you ‘remix’ a project on Gomix, you’re creating a copy of an existing project that you’re then able to edit and make any changes that you want to. So for example, we provide a number of community projects that provide examples of ways of doing specific things in Gomix that you can remix to get started on a web app quickly.

Note that for security reasons, the .env file and contents of the .data directory aren’t copied when a project is remixed.

Do you have built-in persistence or a database?

We have a persistent file system, so anything you store within your project is kept. This means you can use files as a flat file database, or save your database files locally (see our SQLite3 and NeDB examples). You can also use third-party storage services, like a hosted MongoDB database or Redis (see our MongoDB example).

We recommend creating a folder called ‘.data’ as a safe place to store your database files. This folder isn’t copied across when a project is remixed.

How do you store secrets/credentials or private data?

.env is a secure environment config section in your projects, useful for storing API keys and app credentials. Only invited collaborators are able to see the contents of your .env file. So anonymous viewers or logged-in users who haven’t been invited to your project can’t see them. When remixing an app the values are cleared so they’re not copied across.

In addition, creating a folder called ‘.data’ is a safe place to store your database files. This folder isn’t copied across when a project is remixed.

Do you sync with GitHub?

For now, you can manually import and export your code to and from GitHub (full details here). You can also download your source code as a zip. Both options are available under ‘Advanced Options’ from the top-left ‘Project Info’ menu. Gomix code isn’t special in anyway – it should work without any changes on other services, so you’re not locked in. Full sync capabilities are planned.

Do you support custom domain names?

Not yet! We will, but for now you can use the following workaround to be able to use your own domain name for a Gomix project.

What environment variables are available in a project?

Aside from those you specify yourself in the .env file in your project, the following environment variables are available to all projects:

  • PORT – the port your project uses, which defaults to port 3000
  • PROJECT_NAME – Contains your project’s name, useful for programmatically specifying your project’s URL
  • PROJECT_ID – the ID of your project
  • PROJECT_INVITE_TOKEN – Useful if you want to invite people automatically to edit your project

Can I change which files cause my app to restart?

Yes, you can add a file called `watch.json` to your app, and the settings it contains will override the default install and restart trigger files and timings. This means that you can specify which files trigger a container restart or install when edited, as well as change the delay time between making edits and those changes being applied. For more information, see watch-json.

Are you up? Are you down?

Dunno! But you can check our System Status page.

Don’t see your question answered?

Ask it on the forum or drop us an email.