What to expect. Read this before your first karts up.

Karts is in early access. This page says plainly what you are using, so nothing surprises you.

Where it runs

  • Your environments run on one computer in Kartikey's home, not in a data centre.
  • That computer has no public address. It keeps an encrypted SSH tunnel open to a rented server, which takes the HTTPS traffic for *.karts.kartikey.fyi and passes it through the tunnel.
  • Kartikey runs both machines, so he can see what is on them.

Seed data or masked data

  • Use made-up data: your seed script and test accounts.
  • Or a masked copy of your real data. karts db snapshot runs on your machine and swaps personal data for fakes. Only the masked file is uploaded. Check its plan with --check first.
  • Never put raw patient, customer or personal data in Karts. Not in the seed, not in a migration, not typed into a running app.
  • Put keys and passwords in karts secret set, never in env:, which is plain text. Secrets are stored encrypted and hidden in logs. Still use test keys: the app runs on a public link.
  • For sign-in, email and payments, you may need no keys at all: fakes: gives each branch stand-ins for Google and GitHub sign-in, email APIs and Stripe. They never call the real services.
  • Every environment gets an HTTPS link like feature-refunds-fc00.karts.kartikey.fyi. Anyone with the link can open it. There is no sign-in.
  • The link is not secret. It is your branch name plus four random characters, and each environment's certificate is listed in public certificate logs that anyone can search. Assume strangers can find it.
  • So keep branch names free of anything private, too.

Environments are short-lived

  • After 30 minutes with no request to it, no karts command on it and no open karts logs or karts exec, an environment is deleted: its VM and its database.
  • Every environment is deleted 8 hours after it was created, however busy it is.
  • Rows you write are not kept: the next karts up starts a fresh database from your seed.
  • A team can have 2 projects and 5 environments at once. The VM lists every limit.

No uptime promise

A power cut, a home internet outage, an update or a restart takes Karts down, sometimes without warning. Don't rely on it for a demo, a customer or anything that has to work.

Or keep it on your Mac

  • karts up --local runs the same karts.yml on your own Mac. No account, and nothing is uploaded. It needs Docker Desktop. See Local mode.
  • There, a repeat karts up --local keeps your Postgres database, so rows you add by hand stay.

Your code

  • karts up uploads your working tree as it is on disk: the files git tracks, plus new files git does not ignore. That is what git add -A would stage. It never uploads .git/. Check that .env and other private files are in .gitignore.
  • Checked-out git submodules are uploaded too.
  • Uploaded files stay with the project, so the next karts up sends only what changed. They are deleted when you delete the project.

Delete everything

  • karts down deletes this branch's environment: its VM and its database.
  • karts project delete --down-all deletes the whole project: every environment, your uploaded code, its migration claims and its template databases. Run it at the top of the repository; it asks you to type the project's name.
  • karts logout revokes this computer's sign-in.
  • To delete your account as well, email hello@karts.kartikey.fyi.

Contact

Something broken, or a question: hello@karts.kartikey.fyi.