diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..99bc392
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+out/
+src/manifest.json
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3f174f1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+.PHONY: all chromium-stable chromium-beta
+
+all: chromium-stable chromium-beta
+
+chromium-stable:
+	bash release.bash -c stable -b chromium
+
+chromium-beta:
+	bash release.bash -c beta -b chromium
+
+clean:
+	rm -rf out
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e066e33
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+# Screen Capture
+Extension available in the
+[Chrome Web Store](https://chrome.google.com/webstore/detail/screen-capture/ghihpjhpgdepnohngpgfcmcijmkggpaf).
+
+It lets users capture the visible content of a tab, a region of a web page, or
+the whole page as a PNG or JPEG image.
+
+It is a fork of the Screen Capture (by Google) open-source extension, maintained
+by [@avm99963](https://www.avm99963.com). The original extension is no longer
+maintained by Google.
diff --git a/generateManifest.bash b/generateManifest.bash
new file mode 100644
index 0000000..eaea8aa
--- /dev/null
+++ b/generateManifest.bash
@@ -0,0 +1,2 @@
+#!/bin/bash
+genmanifest -template templates/manifest.gjson -dest src/manifest.json "$@"
diff --git a/release.bash b/release.bash
new file mode 100644
index 0000000..d361848
--- /dev/null
+++ b/release.bash
@@ -0,0 +1,103 @@
+#!/bin/bash
+#
+# Generate release files (ZIP archives of the extension source code).
+
+# Prints help text
+function usage() {
+  cat <<END
+
+  Usage: $progname [--channel CHANNEL --browser BROWSER]
+
+  optional arguments:
+    -h, --help     show this help message and exit
+    -c, --channel  indicates the channel of the release. Can be "beta"
+                   or "stable". Defaults to "stable".
+    -b, --browser  indicates the target browser for the release. As of
+                   now it can only be "chromium", which is also the
+                   default value.
+
+END
+}
+
+# Updates manifest.json field
+function set_manifest_field() {
+  sed -i -E "s/\"$1\": \"[^\"]*\"/\"$1\": \"$2\"/" src/manifest.json
+}
+
+# Get options
+opts=$(getopt -l "help,channel:,browser:" -o "hc:b:" -n "$progname" -- "$@")
+eval set -- "$opts"
+
+channel=stable
+browser=chromium
+
+while true; do
+  case "$1" in
+    -h | --help)
+      usage
+      exit
+      ;;
+    -c | --channel)
+      channel="$2"
+      shift 2
+      ;;
+    -b | --browser)
+      browser="$2"
+      shift 2
+      ;;
+    *) break ;;
+  esac
+done
+
+if [[ $channel != "stable" && $channel != "beta" ]]; then
+  echo "channel parameter value is incorrect." >&2
+  usage
+  exit
+fi
+
+if [[ $browser != "chromium" ]]; then
+  echo "browser parameter value is incorrect." >&2
+  usage
+  exit
+fi
+
+echo "Started building release..."
+
+# First of all, generate the appropriate manifest.json file for the
+# target browser
+dependencies=(${browser})
+
+bash generateManifest.bash "${dependencies[@]}"
+
+# This is the version name which git gives us
+version=$(git describe --always --tags --dirty)
+
+# If the version name contains a hyphen then it isn't a release
+# version. This is also the case if it doesn't start with a "v".
+if [[ $version == *"-"* || $version != "v"* ]]; then
+  # As it isn't a release version, setting version number to 0 so it
+  # cannot be uploaded to the Chrome Web Store
+  set_manifest_field "version" "0"
+  set_manifest_field "version_name" "$version-$channel"
+else
+  # It is a release version, set the version fields accordingly.
+  set_manifest_field "version" "${version:1}"
+  set_manifest_field "version_name" "${version:1}-$channel"
+fi
+
+if [[ $channel == "beta" ]]; then
+  # Change manifest.json to label the release as beta
+  set_manifest_field "name" "__MSG_appBetaName__"
+fi
+
+# Create ZIP file for upload to the Chrome Web Store
+mkdir -p out
+rm -rf out/screen-capture-$version-$browser-$channel.zip
+(cd src &&
+  zip -rq ../out/screen-capture-$version-$browser-$channel.zip * \
+  -x "*/.git*" -x "*/\.DS_Store" -x "*/OWNERS")
+
+# Clean generated manifest.json file
+rm -f src/manifest.json
+
+echo "Done!"
diff --git a/tagRelease.bash b/tagRelease.bash
new file mode 100644
index 0000000..036c308
--- /dev/null
+++ b/tagRelease.bash
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# Tags the current git HEAD as a new version, passed via a flag.
+
+GITILES_REPO_URL="https://gerrit.avm99963.com/plugins/gitiles/screen-capture"
+
+# Prints help text
+function usage() {
+  cat <<END
+
+  Usage: $progname --version VERSION
+
+  required arguments:
+    -v, --version  the version of the new release (in the form vx)
+                   which wants to be tagged.
+
+  optional arguments:
+    -h, --help     show this help message and exit
+
+END
+}
+
+opts=$(getopt -l "help,version:" -o "hv:" -n "$progname" -- "$@")
+eval set -- "$opts"
+
+prevVersion=$(git describe --abbrev=0)
+nextVersion="null"
+
+while true; do
+  case "$1" in
+    -h | --help)
+      usage
+      exit
+      ;;
+    -v | --version)
+      nextVersion="$2"
+      shift 2
+      ;;
+    *) break ;;
+  esac
+done
+
+if [[ $nextVersion == "null" ]]; then
+  echo "version parameter value is incorrect." >&2
+  usage
+  exit
+fi
+
+commitMessage1="$nextVersion"
+commitMessage2="Changelog: $GITILES_REPO_URL/+log/refs/tags/$prevVersion..refs/tags/$nextVersion"
+git tag -s $nextVersion -m "$commitMessage1" -m "$commitMessage2"
+
+echo "Tag created. Now run \`git push --tags\` to push the tags to the server."
diff --git a/src/manifest.json b/templates/manifest.gjson
similarity index 93%
rename from src/manifest.json
rename to templates/manifest.gjson
index 441e5b9..e0e223e 100644
--- a/src/manifest.json
+++ b/templates/manifest.gjson
@@ -1,6 +1,6 @@
 {
-  "version": "5.2",
-  "version_name": "5.2 beta",
+  "version": "0",
+  "version_name": "dirty",
   "name": "__MSG_name__",
   "description": "__MSG_description__",
   "background": {
