diff --git a/web/i18n/uk/a11y/dialog.json b/web/i18n/uk/a11y/dialog.json
new file mode 100644
index 00000000..3f289592
--- /dev/null
+++ b/web/i18n/uk/a11y/dialog.json
@@ -0,0 +1,3 @@
+{
+ "picker.item.photo": "мініатюра фото"
+}
diff --git a/web/i18n/uk/a11y/donate.json b/web/i18n/uk/a11y/donate.json
new file mode 100644
index 00000000..c417be2f
--- /dev/null
+++ b/web/i18n/uk/a11y/donate.json
@@ -0,0 +1,3 @@
+{
+ "share.qr.expand": "qr-код. натисніть, щоб розгорнути."
+}
diff --git a/web/i18n/uk/a11y/general.json b/web/i18n/uk/a11y/general.json
new file mode 100644
index 00000000..64053ece
--- /dev/null
+++ b/web/i18n/uk/a11y/general.json
@@ -0,0 +1,3 @@
+{
+ "back": "назад"
+}
diff --git a/web/i18n/uk/a11y/save.json b/web/i18n/uk/a11y/save.json
new file mode 100644
index 00000000..0572e3bb
--- /dev/null
+++ b/web/i18n/uk/a11y/save.json
@@ -0,0 +1,3 @@
+{
+ "link_area": "поле для посилання"
+}
diff --git a/web/i18n/uk/a11y/tabs.json b/web/i18n/uk/a11y/tabs.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/a11y/tabs.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/about.json b/web/i18n/uk/about.json
new file mode 100644
index 00000000..fca76f21
--- /dev/null
+++ b/web/i18n/uk/about.json
@@ -0,0 +1,3 @@
+{
+ "page.general": "що таке кобальт?"
+}
diff --git a/web/i18n/uk/about/credits.md b/web/i18n/uk/about/credits.md
new file mode 100644
index 00000000..73c883ca
--- /dev/null
+++ b/web/i18n/uk/about/credits.md
@@ -0,0 +1,69 @@
+
+
+
+
+
+кобальт створений з любов'ю і турботою дослідницькою і розробницькою командою
+[imput](https://imput.net/).
+
+you can support us on the [donate page](/donate)!
+
+
+
+
+
+huge shoutout to our thing breakers for testing updates early and making sure
+they're stable. they also helped us ship cobalt 10!
+
+all links are external and lead to their personal websites or social media.
+
+
+
+
+
+meowbalt is cobalt's speedy mascot. he is an extremely expressive cat that loves
+fast internet.
+
+all amazing drawings of meowbalt that you see in cobalt were made by
+[GlitchyPSI](https://glitchypsi.xyz/). he is also the original designer of the
+character.
+
+you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit
+permission.
+
+you cannot use or modify the meowbalt character design commercially or in any
+form that isn't fan art.
+
+
+
+
+
+cobalt processing server is open source and licensed under
+[AGPL-3.0]({docs.apiLicense}).
+
+cobalt frontend is [source first](https://sourcefirst.com/) and licensed under
+[CC-BY-NC-SA 4.0]({docs.webLicense}). we decided to use this license to stop
+grifters from profiting off our work & from creating malicious clones that
+deceive people and hurt our public identity.
+
+we rely on many open source libraries, create & distribute our own. you can see
+the full list of dependencies on [github]({contacts.github}).
+
diff --git a/web/i18n/uk/about/general.md b/web/i18n/uk/about/general.md
new file mode 100644
index 00000000..af605837
--- /dev/null
+++ b/web/i18n/uk/about/general.md
@@ -0,0 +1,87 @@
+
+
+
+
+
+кобальт допомагає вам зберігати все з ваших улюблених веб-сайтів: відео, аудіо,
+фотографії або гіфи. просто вставте посилання, і ви готові до дій!
+
+no ads, trackers, paywalls, or other nonsense. just a convenient web app that
+works anywhere, whenever you need it.
+
+
+
+
+
+cobalt was created for public benefit, to protect people from ads and malware
+pushed by its alternatives. we believe that the best software is safe, open, and
+accessible.
+
+it's possible to keep the main instances up thanks to our long-standing
+infrastructure partner, [royalehosting.net]({partners.royalehosting})!
+
+
+
+
+
+all requests to the backend are anonymous and all information about tunnels is
+encrypted. we have a strict zero log policy and don't track *anything* about
+individual people.
+
+when a request needs additional processing, cobalt processes files on-the-fly.
+it's done by tunneling processed parts directly to the client, without ever
+saving anything to disk. for example, this method is used when the source
+service provides video and audio channels as separate files.
+
+additionally, you can [enable forced tunneling](/settings/privacy#tunnel) to
+protect your privacy. when enabled, cobalt will tunnel all downloaded files. no
+one will know where you download something from, even your network provider. all
+they'll see is that you're using a cobalt instance.
+
+
+
+
+
+
+
+newest features, such as [remuxing](/remux), work locally on your device.
+on-device processing is efficient and never sends anything over the internet. it
+perfectly aligns with our future goal of moving as much processing as possible
+to the client.
+
diff --git a/web/i18n/uk/about/privacy.md b/web/i18n/uk/about/privacy.md
new file mode 100644
index 00000000..3a8e7e09
--- /dev/null
+++ b/web/i18n/uk/about/privacy.md
@@ -0,0 +1,98 @@
+
+
+
+
+
+політика конфіденційності кобальту проста: ми не збираємо і не зберігаємо нічого
+про вас. те, що ви робите, є винятково вашою справою, а не нашою чи когось
+іншого.
+
+ці умови застосовуються тільки при використанні офіційної інстанції кобальту. в
+інших випадках вам, можливо, доведеться зв’язатися з хостером для отримання
+точної інформації.
+
+
+
+
+
+tools that use on-device processing work offline, locally, and never send any
+data anywhere. they are explicitly marked as such whenever applicable.
+
+
+
+
+
+when using saving functionality, in some cases cobalt will encrypt & temporarily
+store information needed for tunneling. it's stored in processing server's RAM
+for 90 seconds and irreversibly purged afterwards. no one has access to it, even
+instance owners, as long as they don't modify the official cobalt image.
+
+processed/tunneled files are never cached anywhere. everything is tunneled live.
+cobalt's saving functionality is essentially a fancy proxy service.
+
+
+
+
+
+temporarily stored tunnel data is encrypted using the AES-256 standard.
+decryption keys are only included in the access link and never
+logged/cached/stored anywhere. only the end user has access to the link &
+encryption keys. keys are generated uniquely for each requested tunnel.
+
+
+{#if env.PLAUSIBLE_ENABLED}
+
+
+
+for sake of privacy, we use [plausible's anonymous traffic
+analytics](https://plausible.io/) to get an approximate number of active cobalt
+users. no identifiable information about you or your requests is ever stored.
+all data is anonymized and aggregated. the plausible instance we use is hosted &
+managed by us.
+
+plausible doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR.
+
+[learn more about plausible's dedication to
+privacy.](https://plausible.io/privacy-focused-web-analytics)
+
+if you wish to opt out of anonymous analytics, you can do it in [privacy
+settings](/settings/privacy#analytics).
+
+{/if}
+
+
+
+
+we use cloudflare services for ddos & bot protection. we also use cloudflare
+pages for deploying & hosting the static web app. all of these are required to
+provide the best experience for everyone. it's the most private & reliable
+provider that we know of.
+
+cloudflare is fully compliant with GDPR and HIPAA.
+
+[learn more about cloudflare's dedication to
+privacy.](https://www.cloudflare.com/trust-hub/privacy-and-data-protection/)
+
diff --git a/web/i18n/uk/about/terms.md b/web/i18n/uk/about/terms.md
new file mode 100644
index 00000000..5d9eae2a
--- /dev/null
+++ b/web/i18n/uk/about/terms.md
@@ -0,0 +1,65 @@
+
+
+
+
+
+ці умови застосовуються тільки при використанні офіційної інстанції кобальту. в
+інших випадках вам, можливо, доведеться зв’язатися з хостером для отримання
+точної інформації.
+
+
+
+
+
+saving functionality simplifies downloading content from the internet and takes
+zero liability for what the saved content is used for. processing servers work
+like advanced proxies and don't ever write any content to disk. everything is
+handled in RAM and permanently purged once the tunnel is done. we have no
+downloading logs and can't identify anyone.
+
+[you can read more about how tunnels work in our privacy
+policy.](/about/privacy)
+
+
+
+
+
+you (end user) are responsible for what you do with our tools, how you use and
+distribute resulting content. please be mindful when using content of others and
+always credit original creators. make sure you don't violate any terms or
+licenses.
+
+when used in educational purposes, always cite sources and credit original
+creators.
+
+fair use and credits benefit everyone.
+
+
+
+
+
+we have no way of detecting abusive behavior automatically because cobalt is
+100% anonymous. however, you can report such activities to us via email and
+we'll do our best to comply manually: abuse[at]imput.net
+
+**this email is not intended for user support, you will not get a response if
+your concern is not related to abuse.**
+
+if you're experiencing issues, contact us via any preferred method on [the
+support page](/about/community).
+
diff --git a/web/i18n/uk/button.json b/web/i18n/uk/button.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/button.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/dialog.json b/web/i18n/uk/dialog.json
new file mode 100644
index 00000000..648e881d
--- /dev/null
+++ b/web/i18n/uk/dialog.json
@@ -0,0 +1,3 @@
+{
+ "reset.title": "скинути всі дані?"
+}
diff --git a/web/i18n/uk/donate.json b/web/i18n/uk/donate.json
new file mode 100644
index 00000000..fcf7a697
--- /dev/null
+++ b/web/i18n/uk/donate.json
@@ -0,0 +1,3 @@
+{
+ "banner.title": "Підтримайте безпечний\nта відкритий Інтернет"
+}
diff --git a/web/i18n/uk/error.json b/web/i18n/uk/error.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/error.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/general.json b/web/i18n/uk/general.json
new file mode 100644
index 00000000..75ab3b18
--- /dev/null
+++ b/web/i18n/uk/general.json
@@ -0,0 +1,3 @@
+{
+ "cobalt": "кобальт"
+}
diff --git a/web/i18n/uk/notification.json b/web/i18n/uk/notification.json
new file mode 100644
index 00000000..9d18d144
--- /dev/null
+++ b/web/i18n/uk/notification.json
@@ -0,0 +1,3 @@
+{
+ "update.title": "доступне оновлення!"
+}
diff --git a/web/i18n/uk/receiver.json b/web/i18n/uk/receiver.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/receiver.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/remux.json b/web/i18n/uk/remux.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/remux.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/save.json b/web/i18n/uk/save.json
new file mode 100644
index 00000000..2097a3a9
--- /dev/null
+++ b/web/i18n/uk/save.json
@@ -0,0 +1,3 @@
+{
+ "paste": "вставити"
+}
diff --git a/web/i18n/uk/settings.json b/web/i18n/uk/settings.json
new file mode 100644
index 00000000..6145548f
--- /dev/null
+++ b/web/i18n/uk/settings.json
@@ -0,0 +1,3 @@
+{
+ "page.appearance": "зовнішній вигляд"
+}
diff --git a/web/i18n/uk/tabs.json b/web/i18n/uk/tabs.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/uk/tabs.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/uk/updates.json b/web/i18n/uk/updates.json
new file mode 100644
index 00000000..89706612
--- /dev/null
+++ b/web/i18n/uk/updates.json
@@ -0,0 +1,3 @@
+{
+ "button.next": "перейти до старішого журналу змін ({{ value }})"
+}