14 Commits

Author SHA1 Message Date
chris f446b53f46 Update README.md 2026-06-27 23:11:17 -04:00
chris 88221a8221 Update manifest.json 2026-06-24 22:55:02 -04:00
chris b2e46a1b09 Update README.md 2026-06-24 22:53:44 -04:00
chris 97e0c1cee8 Update README.md 2026-06-24 22:53:28 -04:00
chris 7bda2dac68 Update README.md 2026-06-24 22:53:07 -04:00
chris 4102eabfa8 Update manifest.json 2026-06-24 22:01:15 -04:00
chris 6870904dc2 Update dashboard.js - unsafe assignment fix v2 2026-06-24 22:01:01 -04:00
chris e4e90db5c5 Repaired unsafe assignment for firefox 2026-06-24 21:56:35 -04:00
Christian 07ca529e37 Update README.md 2026-06-09 03:04:18 -04:00
Christian c251bb3236 Update README with GitHub site link
Added a link to the GitHub site in the README.
2026-06-08 21:08:13 -04:00
Christian 7f5a3eb07a Create FUNDING.yml 2026-06-08 20:54:58 -04:00
Christian fdcc7776fa Update README.md 2026-06-08 20:54:01 -04:00
Christian 9c82abe695 Update README.md 2026-06-08 20:47:56 -04:00
Christian 3a2e5fa4fc Update README.md 2026-06-08 20:47:30 -04:00
5 changed files with 36 additions and 9 deletions
+15
View File
@@ -0,0 +1,15 @@
# These are supported funding model platforms
github: pvrzz # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+9 -3
View File
@@ -4,15 +4,18 @@
**A universal browser data swap.** Export your setup to a portable JSON bundle. Import it anywhere. Chrome to Firefox, Firefox to Chrome, or a fresh install of the same browser. No cloud, no lock-in.
[github.com/pvrzz/Portage](https://github.com/pvrzz/Portage/)
[Website](https://portage.pvrz.lol) - [Site Github](https://github.com/pvrzz/portage-site)
<br>
[![Portage Demo](https://img.youtube.com/vi/yzM9Ke0LPfw/maxresdefault.jpg)](https://youtu.be/yzM9Ke0LPfw)
</div>
---
## Why
Browsers intentionally make it annoying to leave their ecosystem. Portage is a straightforward, open-source tool that reads what it's allowed to read, dumps it into a human-readable `*.portage.json` file, and rebuilds it on the other side. Because the export is just plain JSON, it bridges the gap between competing browsers or lets you easily migrate to a new machine.
Browsers intentionally make it harder to swap from their ecosystem, and often lack the proper built-in transferring support for third-party browsers built off of the same source (ex. Chromium, Firefox). Portage is a straightforward, open-source tool that reads what it's allowed to read, dumps it into a human-readable `*.portage.json` file, and rebuilds it on the other side. Because the export is just plain JSON, it bridges the gap between competing browsers or lets you easily migrate to a new machine.
## What transfers
@@ -40,6 +43,9 @@ Passwords and autofill data are completely walled off from extension APIs. You w
* **Handle with care:** Your export bundle contains live session cookies. Treat this file exactly like an exported password vault. Keep it local, import it, and delete it immediately.
* **No deduplication:** Importing the exact same file twice will duplicate your history and cookies. Just run it once and verify.
## Install (Packed)
Check the releases tab of the repo, or go to the website for Portage at: https://portage.pvrz.lol/ for the latest Firefox and Chrome package.
## Install (Unpacked)
### Chrome
+2 -2
View File
@@ -1,8 +1,8 @@
{
"manifest_version": 3,
"name": "Portage (Chrome)",
"name": "Portage",
"version": "2.0.0",
"description": "Universal browser data swap. Export bookmarks, history, cookies, tabs, sessions and reading list to a portable JSON bundle, then import into any browser running Portage — Chrome to Firefox, or the same browser on a new machine. Also exports your extension list as a reinstall checklist.",
"description": "Export bookmarks, history, cookies, tabs, sessions, and reading list to a portable JSON file. Import on any browser.",
"homepage_url": "https://github.com/pvrzz/Portage/",
"permissions": [
"history",
+4 -1
View File
@@ -77,7 +77,10 @@ function toast(msg, icon) {
const wrap = document.getElementById("toasts");
const el = document.createElement("div");
el.className = "toast";
el.innerHTML = iconSvg(SVG[icon] || SVG.check) + `<span>${msg}</span>`;
el.innerHTML = iconSvg(SVG[icon] || SVG.check);
const span = document.createElement("span");
span.textContent = msg;
el.appendChild(span);
wrap.appendChild(el);
setTimeout(() => { el.style.transition = "opacity .3s, transform .3s"; el.style.opacity = "0"; el.style.transform = "translateX(20px)"; }, 3400);
setTimeout(() => el.remove(), 3800);
+6 -3
View File
@@ -1,13 +1,16 @@
{
"manifest_version": 3,
"name": "Portage (Firefox)",
"version": "2.0.0",
"name": "Portage",
"version": "2.0.1",
"description": "Universal browser data swap. Export bookmarks, history, cookies, tabs and sessions to a portable JSON bundle, then import into any browser running Portage — Firefox to Chrome, or the same browser on a new machine. Also exports your add-on list as a reinstall checklist.",
"homepage_url": "https://github.com/pvrzz/Portage/",
"browser_specific_settings": {
"gecko": {
"id": "portage@local",
"strict_min_version": "115.0"
"strict_min_version": "115.0",
"data_collection_permissions": {
"required": ["none"]
}
}
},
"permissions": [