{"id":14972,"date":"2025-12-22T10:05:05","date_gmt":"2025-12-22T17:05:05","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=14972"},"modified":"2026-01-25T10:44:55","modified_gmt":"2026-01-25T17:44:55","slug":"linux-apps-without-distro-lock-in-explore-this-lesser-known-snap-and-flatpak-alternative","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2025\/12\/22\/linux-apps-without-distro-lock-in-explore-this-lesser-known-snap-and-flatpak-alternative\/","title":{"rendered":"Linux Apps Without Distro Lock-In? Explore This Lesser Known Snap and Flatpak Alternative"},"content":{"rendered":"\n<p>An interesting idea, though I&#8217;m doubtful it will gain traction. I think Flatpaks and Snaps are trash, but I do use a couple AppImage packages, <a href=\"https:\/\/jasonsblog.ddns.net\/index.php\/2025\/10\/28\/supercell-wx\/\" target=\"_blank\" rel=\"noreferrer noopener\">Supercell Wx<\/a> (weather radar application) and Trezor Suite. With Trezor Suite you want to get it from them directly and verify it with their gpg key, and it updates itself after, and Supercell Wx notifies you of a new version which I download from the Github page and put in my Syncthing directory to be distributed to all my Linux systems. And as I&#8217;m running Arch based systems, you have the Arch AUR for extra packages not in the repositories, with automated scripts to compile or convert Debian packages&#8230; So I don&#8217;t think I&#8217;d use this unless it&#8217;s embraced by a lot developers, but something to be aware of.<\/p>\n\n\n\n<p><a href=\"https:\/\/itsfoss.com\/pkgforge\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/itsfoss.com\/pkgforge\/<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_59aaf304-e069-4ff0-8080-ef2a82f1faa3\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<h5 class=\"wp-block-heading\">Meet PkgForge: A Distro-Independent Portable Apps &#8216;Foundry&#8217; for Linux Users<\/h5>\n\n\n\n<p>By Roland Taylor<\/p>\n\n\n\n<p>Linux gives you plenty of ways to install software: native distro packages, <a href=\"https:\/\/itsfoss.com\/flatpak-guide\/\">Flatpak<\/a>, Snap, AppImage, source builds, even curl-piped installers. The catch is that each one solves a different problem, yet none of them fully eliminates the \u201cworks here, breaks there\u201d reality across all distros.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pkgforge?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Package Forge (PkgForge)<\/a> is a new project with a narrower mission: deliver truly distro-independent portable applications that run the same way across systems. In other words:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cI want the same app to install and run across different distros, without fighting dependency and packaging differences.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>In this article, we&#8217;ll not only discover exactly what Package Forge is doing, we&#8217;ll dive into the inevitable comparison: how does this differ from Flatpak, Snap, and regular <a href=\"https:\/\/itsfoss.com\/use-appimage-linux\/\">AppImages<\/a>?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-basic-premise\">The Basic Premise<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/FireShot-Capture-065---Package-Forge----blog.pkgforge.dev-.png\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/FireShot-Capture-065---Package-Forge----blog.pkgforge.dev-.png\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\">The Package Forge home page, <a href=\"https:\/\/pkgforge.dev\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">pkgforge.dev<\/a><\/figcaption><\/figure>\n\n\n\n<p>PkgForge\u2019s primary focus is portable and\/or statically built software that minimizes reliance on distro-provided dependencies. I\u2019m saying <em>minimizes<\/em> (not eliminates) because some requirements are hard to avoid in practice, especially around portable image formats, where features like FUSE or unprivileged user namespaces may come into play.<\/p>\n\n\n\n<p>A truly \u201cdependency-free\u201d packaging format is difficult to achieve in the absolute sense, but PkgForge aims to get as close as realistically possible. Before we get into what PkgForge does, we need to understand why it exists and why this project is so important.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"universal-packaging-isnt-quite-so-universally-supported\">Universal Packaging Isn&#8217;t Quite So Universally Supported<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-castorlystock-3639031.jpg\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-castorlystock-3639031.jpg\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\">Universal packages are like plugs \u2014 they need to fit the socket or nothing will happen. <a href=\"https:\/\/www.pexels.com\/photo\/black-wall-plugs-3639031\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Pexels<\/a> \/ <a href=\"https:\/\/www.pexels.com\/photo\/black-wall-plugs-3639031\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Castorly Stock<\/a><\/figcaption><\/figure>\n\n\n\n<p>Universal app packaging for Linux <em>seems<\/em> solved, but the reality is a bit more messy than it could be. For example, both Flatpaks and Snaps require a set of helper components, if you will, to be installed on your system. Without that support in place, a <em>.snap<\/em> file is about as useful as downloading an <em>.exe<\/em> without Wine.<\/p>\n\n\n\n<p>Flatpak is slightly different: it doesn\u2019t rely on the same kind of always-on daemon as Snap, but it still requires Flatpak support to be enabled on the host. Furthermore, Flatpak apps rely on runtimes being available (granted, Flatpak can install them for you). Either way, you\u2019re not dealing with a single self-contained executable that you can run on any Linux system anywhere.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"most-universal-packaging-isnt-built-to-be-portable\">Most Universal Packaging Isn&#8217;t Built to Be Portable<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-hikaique-379964.jpg\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-hikaique-379964.jpg\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\">Containerized systems have become a bridge between distros, but haven&#8217;t truly solved the portability problem. You can&#8217;t freely pick them up and move them around. <a href=\"https:\/\/www.pexels.com\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">Pexels<\/a> \/ <a href=\"https:\/\/www.pexels.com\/photo\/man-jumping-on-intermodal-container-379964\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Kaique Rocha<\/a><\/figcaption><\/figure>\n\n\n\n<p>Most popular distros ship with Flatpak installed (or at least readily available), and Ubuntu, which by way of popularity remains firmly in its own lane, has Snap preinstalled and configured. But what happens if you want to take those same Flatpak or Snap apps with you to another system, or keep your favourite apps on a bootable USB and run them anywhere?<\/p>\n\n\n\n<p><strong>Well\u2026 <em>not quite.<\/em><\/strong> You can move Flatpaks around and even install them offline, but the system you\u2019re using still needs Flatpak support. With Snaps, you still need snapd installed, and most distros don&#8217;t. So neither approach lets you simply pack up your apps and run them anywhere with zero host components in place.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-not-just-use-regular-appimages\">Why Not Just Use Regular AppImages?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-leeloothefirst-5428836.jpg\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-leeloothefirst-5428836.jpg\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/www.pexels.com\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">Pexels<\/a> \/ <a href=\"https:\/\/www.pexels.com\/photo\/question-marks-on-paper-crafts-5428836\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Leeloo The First<\/a><\/figcaption><\/figure>\n\n\n\n<p>You could use AppImages for this, sure. In fact, this is the very problem AppImage was created to solve. In many cases, it really is the closest thing Linux has to a true \u201cdownload once, run anywhere\u201d model.<\/p>\n\n\n\n<p>However, \u201cportable\u201d does not always mean \u201cportable everywhere.\u201d AppImages can still make assumptions about the host system, and those assumptions are not guaranteed across every distro, security context, container, or older environment. Even on modern desktops, a change in configuration can be enough to turn \u201cworks for me\u201d into \u201cwhy won\u2019t this launch?\u201d<\/p>\n\n\n\n<p>And even if portability were perfect, AppImage still leaves the \u201ceverything around it\u201d problem. You are often on your own when it comes to finding trustworthy builds, keeping them updated, and integrating them cleanly into your desktop.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Where do you find reliable builds?<\/li>\n\n\n\n<li>How do you keep them updated?<\/li>\n\n\n\n<li>How do you ensure clean desktop integration?<\/li>\n\n\n\n<li>How do you ensure trust?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"these-are-the-problems-pkgforge-solves\">These Are the Problems PkgForge Solves<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-ekaterinabelinskaya-4744759.jpg\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-ekaterinabelinskaya-4744759.jpg\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\">No more leaving portable packages lying around <a href=\"https:\/\/www.pexels.com\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">Pexels<\/a> \/ <a href=\"https:\/\/www.pexels.com\/photo\/brown-cardboard-box-on-gray-asphalt-road-4744759\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Ekaterina Belinskaya<\/a><\/figcaption><\/figure>\n\n\n\n<p>PkgForge covers just about all the problems we\u2019ve identified with universal, portable packaging for Linux. It\u2019s not a new packaging format in and of itself, nor is it trying to replace AppImages. Instead, it\u2019s an ecosystem that publishes portable packages and static binaries in curated repositories, paired with a package manager designed to install and manage them.<\/p>\n\n\n\n<p>One of the ways PkgForge stands out from some portable app efforts on Linux is its focus on accessible documentation and a security-minded distribution model. The project primarily delivers prebuilt binary packages, keeps transparent build logs, and relies on checksum verification.<\/p>\n\n\n\n<p>This helps reduce the spread of ad-hoc install scripts and the need for local compilation, which has long been a common pattern when downloading Linux software directly (and still is for many projects today). To make life easier for the end-user, the project maintains its own frontend, called Soar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-soar\">What Is Soar?<\/h3>\n\n\n\n<p><a href=\"https:\/\/soar.qaidvoid.dev\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Soar<\/a> is PkgForge&#8217;s package manager, built to install and portable software across distros in a consistent way. It serves as a companion alongside your distro\u2019s own package manager, rather than seeking to replace it. It pulls from PkgForge&#8217;s own caches, and other compatible sources, and manages desktop integration through <a href=\"https:\/\/freedesktop.org\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">freedesktop.org<\/a> specifications, including menu entries and icons.<\/p>\n\n\n\n<p>Soar also adds installed applications to your system PATH, allowing them to be called from the CLI or other applications with just the name of the binary. It aims to keep things relocatable so your setup can be moved between systems more easily. It also keeps things clean by using consistent install locations, so you don&#8217;t end up with a downloads folder full of random executables you can\u2019t track.<\/p>\n\n\n\n<p>Behind Soar, there are a number of other components that make the PkgForge ecosystem functional.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"soarpkgs-recipe-based-packaging\">SoarPkgs: Recipe-Based Packaging<\/h3>\n\n\n\n<p>The main user repository of PkgForge, called SoarPkgs, contains build recipes written in the <code>.SBUILD<\/code> definition format, which is the project\u2019s own packaging recipe system. These <code>.SBUILD<\/code> files act as portable descriptions of what the software is, where to get it, and how to turn it into something Soar can install.<\/p>\n\n\n\n<p>They usually practical metadata for the build process and desktop integration details where relevant (app ID, icon, desktop entry). PkgForge also provides tooling to lint and build these recipes, such as SBuilder, so packages use repeatable processes for publishing in their curated repositories.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bincache-statically-compiled-cli-tools\">BinCache: Statically Compiled CLI Tools<\/h3>\n\n\n\n<p>PkgForge also maintains BinCache, a collection of pre-compiled static binaries that users can install through Soar. This part of the project focuses on command line tools in particular, making it easier to grab software that can be distributed as a single self-contained binary, without needing to compile it yourself or rely on distro repositories.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pkgcache-portable-desktop-apps-and-more\">PkgCache: Portable Desktop Apps (and More)<\/h3>\n\n\n\n<p>PkgCache is PkgForge\u2019s repository for portable application packages, especially desktop (GUI) software. Rather than betting on a single universal format, PkgForge distributes whatever best fits the software at hand, with AppImage as just one payload type among several.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"what-kinds-of-packages-does-pkgforge-use\">What Kinds of Packages Does PkgForge Use?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AppImage (+zsync):<\/strong> standard AppImage releases, sometimes paired with zsync metadata for more efficient updates.<\/li>\n\n\n\n<li><strong>AppBundle:<\/strong> a portable \u201cbundle\u201d style package that ships an app as a self-contained directory structure.<\/li>\n\n\n\n<li><strong>Archive:<\/strong> classic tarballs\/zip archives, typically used when upstream already ships a portable bundle or when the simplest approach is best.<\/li>\n\n\n\n<li><strong>FlatImage:<\/strong> a portable image format designed to be app-like and more predictable across systems.<\/li>\n\n\n\n<li><strong>GameImage:<\/strong> a game-focused portable format intended for larger, asset-heavy software.<\/li>\n\n\n\n<li><strong>RunImage:<\/strong> a single-file, container-like portable format intended to run apps in a more controlled environment.<\/li>\n\n\n\n<li><strong>Static binaries:<\/strong> single-file command line tools compiled to run with minimal or no external library dependencies.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-to-use-pkgforge\">How to Use PkgForge<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-ann-h-45017-15368259.jpg\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2025\/12\/pexels-ann-h-45017-15368259.jpg\" alt=\"\"\/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/www.pexels.com\/?ref=itsfoss.com\" rel=\"noreferrer noopener\" target=\"_blank\">Pexels<\/a> \/ <a href=\"https:\/\/www.pexels.com\/photo\/cubes-with-letters-how-15368259\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Ann H<\/a><\/figcaption><\/figure>\n\n\n\n<p>If you\u2019re interested in using software from the PkgForge ecosystem, there are two straightforward approaches. Soar is the recommended solution, which you can use like an additional package manager, and let it handle installation, updates, and system integration. It also allows you to search for apps and utilities without having to dig through the repos online.<\/p>\n\n\n\n<p>\ud83d\udca1Want to see all the packages available through PkgForge? Visit: <a href=\"https:\/\/pkgs.pkgforge.dev\/?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/pkgs.pkgforge.dev\/<\/a> to get a full list, organized by repository.<\/p>\n\n\n\n<p>Alternatively, you can search the PkgForge repos manually, and download and manage individual portable packages on your own. This is preferable if you&#8217;re building a portable toolkit on a USB drive, testing a single app temporarily, or simply want full control over where files live. Just keep in mind that you&#8217;ll also be taking on the responsibility of handling updates, cleanup, and desktop integration, if needed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"example-usage-soar\">Example Usage: Soar<\/h3>\n\n\n\n<p>Soar is a CLI utility and works much in the same way as <code>apt<\/code>, <code>dnf<\/code>, and others. We won&#8217;t cover everything here as there&#8217;s <em>a lot<\/em> that could be covered. Full details on how to achieve this are provided in the <a href=\"https:\/\/soar.qaidvoid.dev\/install?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">Soar documentation.<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"finding-packages\">Finding Packages<\/h4>\n\n\n\n<p>To find packages with Soar, use the search command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>soar search search-query<\/code><\/pre>\n\n\n\n<p>Searches query package names, package ids (pkg_id), and other metadata.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"installing-updating-applications\">Installing &amp; Updating applications<\/h4>\n\n\n\n<p>To install an application, you can either use <code>soar install package-name<\/code> or on of its aliases, for example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Using the \"i\" alias\nsoar i package-name\n\n# Using \"add\" alias\nsoar add package-name\n<\/code><\/pre>\n\n\n\n<p>You can also install packages through more granular controls, using package ids or even choosing to install an app from a particular repository.<\/p>\n\n\n\n<p>Like most popular tools, you can also chain package names together to install multiple packages at once, with a familiar syntax: <code>soar install package1 package2 package3<\/code>. Soar also supports both <code>--force<\/code> and <code>--yes<\/code> flags, though caution is emphasized when using the latter.<\/p>\n\n\n\n<p>Soar has a simple update command, <code>soar update<\/code> which takes any number of package names as an argument and provides no additional flags or aliases.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"removing-applications\">Removing Applications<\/h4>\n\n\n\n<p>Removing applications with Soar is just as straightforward as you&#8217;d expect. The <code>remove<\/code> command works, or you can also use aliases:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Using \"remove\" command\nsoar remove &lt;package&gt;\n\n# Using \"r\" alias\nsoar r &lt;package&gt;\n\n# Using \"del\" alias\nsoar del &lt;package&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"using-applications-temporarily\">Using Applications Temporarily<\/h3>\n\n\n\n<p>Soar wouldn&#8217;t be a portable application package manager without this handy feature. You can download and run applications temporarily, without system integration, by using the <code>run<\/code> command. Just use <code>soar run package-name<\/code> and it will download the necessary package and run the command without setting up any <code>.desktop<\/code> files or adding it to your PATH.<\/p>\n\n\n\n<p>This makes Soar a great tool for both managing packages you actually want, and trying out the system if you&#8217;re just curious.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"is-anyone-using-it\">Is Anyone Using It?<\/h2>\n\n\n\n<p>It doesn&#8217;t seem that many projects are using PkgForge to host their primary binary distributions as yet. However, there seems to be quite an active community effort around the project, including the <a href=\"https:\/\/github.com\/pkgforge-dev\/Anylinux-AppImages?ref=itsfoss.com\" target=\"_blank\" rel=\"noreferrer noopener\">AnyLinux AppImage collection<\/a>. These packages are designed to automatically detect whether FUSE or user namespaces are available, and if not, fall back to extraction before running, eliminating the primary issue with AppImages.<\/p>\n\n\n\n<p>Many popular apps are available through this effort and can also be installed with Soar in most cases.<\/p>\n\n\n\n<p><strong>Some of the popular apps available as AnyLinux AppImages (and installable with Soar) include:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ghostty (<code>soar install ghostty<\/code>)<\/li>\n\n\n\n<li>OBS Studio (<code>soar install obs-studio<\/code>)<\/li>\n\n\n\n<li>Transmission-qt (<code>soar install transmission-qt<\/code>)<\/li>\n\n\n\n<li>EasyTAG (<code>soar install easytag<\/code>)<\/li>\n\n\n\n<li>Android Platform Tools (<code>soar install android-tools<\/code>)<\/li>\n\n\n\n<li>Citron (<code>soar install citron<\/code>)<\/li>\n\n\n\n<li>Cromite (<code>soar install cromite<\/code>)<\/li>\n\n\n\n<li>Sudachi (<code>soar install sudachi<\/code>)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"final-thoughts\">Final Thoughts<\/h2>\n\n\n\n<p>Portable apps have always played an important role in desktop computing, and on Linux they\u2019ve long been a stress point. With PkgForge, we might finally be getting closer to cracking this problem, at least in practical terms. Even if it doesn\u2019t replace Flatpak, Snap, or AppImage, it helps give definition to what a more flexible, truly distro-independent future for portable Linux apps could look like.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An interesting idea, though I&#8217;m doubtful it will gain traction. I think Flatpaks and Snaps are trash, but I do use a couple AppImage packages, Supercell Wx (weather radar application) and Trezor Suite. With Trezor Suite you want to get it from them directly and verify it with their gpg key, and it updates itself [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-14972","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":[],"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/14972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=14972"}],"version-history":[{"count":2,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/14972\/revisions"}],"predecessor-version":[{"id":15435,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/14972\/revisions\/15435"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=14972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=14972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=14972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}