diff --git a/tools/update-version.js b/tools/update-version.js
new file mode 100755
index 0000000000000000000000000000000000000000..e948a14d151686547badc60e0cb22fa22020b4e8
--- /dev/null
+++ b/tools/update-version.js
@@ -0,0 +1,70 @@
+#!/usr/bin/env node
+
+// from https://gitlab.com/staltz/manyverse/blob/master/tools/update-version.js
+
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+const ReactNativeVersion = require('react-native-version')
+const readline = require('readline')
+const leftPad = require('left-pad')
+const path = require('path')
+const fs = require('fs')
+
+const currentVersion = JSON.parse(fs.readFileSync('./package.json')).version
+
+const rl = readline.createInterface({
+  input: process.stdin,
+  output: process.stdout,
+})
+
+function createTodaysVersion(attempt) {
+  const today = new Date()
+  const yy = today.getFullYear() - 2000 // So it's two digits
+  const mm = leftPad(today.getMonth() + 1, 2, '0')
+  const d = today.getDate()
+  if (attempt === 0) {
+    return `0.${yy}${mm}.${d}-beta`
+  } else {
+    const letter = String.fromCharCode(97 + attempt) // 0=a, 1=b, 2=c, ...
+    return `0.${yy}${mm}.${d}-beta.${letter}`
+  }
+}
+
+let nextVersion
+for (let i = 0 /* letter a */; i <= 25 /* letter z */; i++) {
+  nextVersion = createTodaysVersion(i)
+  if (nextVersion !== currentVersion) break
+}
+if (nextVersion === currentVersion) {
+  console.error('I dont know what else to generate beyong ' + nextVersion)
+  process.exit(1)
+}
+
+rl.question('Next version will be `' + nextVersion + '`, okay? y/n ', yn => {
+  if (yn !== 'y' && yn !== 'Y') {
+    console.log('Release cancelled.\n')
+    process.exit(1)
+    return
+  }
+
+  const pkgJSON = JSON.parse(fs.readFileSync('./package.json'))
+  const pkgLockJSON = JSON.parse(fs.readFileSync('./package-lock.json'))
+  pkgJSON.version = nextVersion
+  pkgLockJSON.version = nextVersion
+  fs.writeFileSync('./package.json', JSON.stringify(pkgJSON, null, 2))
+  fs.writeFileSync('./package-lock.json', JSON.stringify(pkgLockJSON, null, 2))
+
+  ReactNativeVersion.version(
+    {
+      neverAmend: true,
+      target: 'android',
+    },
+    path.resolve(__dirname, '../'),
+  ).catch(err => {
+    console.error(err)
+    process.exit(1)
+  })
+
+  rl.close()
+})