{"id":5461,"date":"2025-11-17T00:41:10","date_gmt":"2025-11-16T23:41:10","guid":{"rendered":"https:\/\/desairem.com\/wordpress\/?page_id=5461"},"modified":"2026-04-14T12:08:29","modified_gmt":"2026-04-14T11:08:29","slug":"ufocus-pricing","status":"publish","type":"page","link":"https:\/\/desairem.com\/wordpress\/ufocus\/ufocus-pricing\/","title":{"rendered":"uFocus Pricing"},"content":{"rendered":"\n<p>uFocus is free. No internet connection is required to use the app. Currently, one way to sustain my work would be to buy one of my other apps if you find it useful, or make a&nbsp;<a href=\"https:\/\/www.paypal.com\/donate\/?hosted_button_id=FJGJA3RQ33ZBC\">donation<\/a>.<\/p>\n\n\n\n<p>After filling out the form, the download link will be sent immediately to your email address. If you do not receive the email, please contact me at the address at the bottom of this page.<\/p>\n\n\n\n<div class=\"wp-block-columns has-border-color has-accent-5-border-color has-base-2-color has-text-color has-background is-layout-flex wp-container-core-columns-is-layout-e4c99638 wp-block-columns-is-layout-flex\" style=\"border-width:1px;border-radius:25px;background:linear-gradient(180deg,rgb(0,43,109) 0%,rgb(82,0,163) 100%);margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40);padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--30);box-shadow:var(--wp--preset--shadow--deep)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/desairem.com\/wordpress\/wp-content\/uploads\/2025\/11\/ufocus-icon.png\" alt=\"\" class=\"wp-image-5462\" style=\"object-fit:cover;width:80px;height:80px\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center is-style-default has-base-2-color has-text-color has-link-color wp-elements-27114e812e282481cf420f4f6c54e4f4\">uFocus<\/h2>\n\n\n\n<p class=\"has-text-align-center\">Lifetime License<\/p>\n\n\n<style>\r\n    .buy-paddle {\r\n        background-color: #007dff;\r\n        border-radius: 42px;\r\n        \r\n        &:hover {\r\n            background-color: #3899ff;\r\n            transition: background-color ease 0.5s;\r\n        }\r\n    }\r\n<\/style>\r\n<script src=\"https:\/\/cdn.paddle.com\/paddle\/v2\/paddle.js\"><\/script>\r\n<script>\r\n    const clientToken = \"live_e75dc7e76bff032081ebf9ca671\";\r\n    let paddleInitialized = false;\r\n    let products = [];\r\n\r\n    function initializePaddle() {\r\n        try {\r\n            Paddle.Initialize({\r\n                token: clientToken,\r\n                eventCallback: (event) => {\r\n                    console.log(\"Paddle event:\", event);\r\n                }\r\n            });\r\n            paddleInitialized = true;\r\n            updatePrices();\r\n        } catch (error) {\r\n            console.error(\"Initialization error:\", error);\r\n        }\r\n    }\r\n\r\n    function openCheckout(priceId) {\r\n        if (!paddleInitialized) {\r\n            console.log(\"Paddle not initialized yet\");\r\n            return;\r\n        }\r\n\r\n        try {\r\n            Paddle.Checkout.open({\r\n                items: [\r\n                    {\r\n                        priceId: priceId,\r\n                        quantity: 1\r\n                    }\r\n                ],\r\n                settings: {\r\n                    theme: \"light\",\r\n                    displayMode: \"overlay\"\r\n                }\r\n            });\r\n        } catch (error) {\r\n            console.error(`Checkout error: ${error.message}`);\r\n        }\r\n    }\r\n\r\n    async function updatePrices() {\r\n        if (!paddleInitialized) {\r\n            console.log(\"Paddle not initialized yet\");\r\n            return;\r\n        }\r\n\r\n        try {\r\n            const request = {\r\n                items: products.map((product) => {\r\n                    return {\r\n                        quantity: 1,\r\n                        priceId: product.priceId\r\n                    };\r\n                })\r\n            };\r\n\r\n            console.log(\"Fetching prices:\", request);\r\n            const result = await Paddle.PricePreview(request);\r\n\r\n            result.data.details.lineItems.forEach((item) => {\r\n                const product = products.find((product) => { return product.priceId === item.price.id })\r\n                if (product !== undefined && product.label === undefined) {\r\n                    document.getElementById(product.html).textContent = \"Buy \" + item.formattedTotals.total;\r\n                }\r\n            });\r\n            console.log(\"Prices updated:\", result);\r\n        } catch (error) {\r\n            console.error(`Error fetching prices: ${error.message}`);\r\n        }\r\n    }\r\n\r\n    document.addEventListener(\"DOMContentLoaded\", initializePaddle);\r\n<\/script><div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-1 wp-block-buttons-is-layout-flex\">\r\n<div class=\"wp-block-button has-custom-font-size has-medium-font-size\"><a href=\"javascript:openCheckout('pri_01jpwsdk7jytas3kqk6rgrfp0f')\" id=\"price-ufocus\" class=\"wp-block-button__link wp-element-button buy-paddle\">Buy<\/a><\/div>\r\n<\/div><script>\r\n    products.push({priceId: \"pri_01jpwsdk7jytas3kqk6rgrfp0f\", html: \"price-ufocus\"});\r\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list is-style-checkmark-list\">\n<li>No activation needed<\/li>\n\n\n\n<li>Use on all your personal Macs<\/li>\n\n\n\n<li>Free updates<\/li>\n\n\n\n<li>Free support<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-right is-layout-flex wp-container-core-buttons-is-layout-d445cf74 wp-block-buttons-is-layout-flex\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-grid wp-container-core-group-is-layout-bcb8ac2c wp-block-group-is-layout-grid\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">System Requirements<\/h3>\n\n\n\n<p class=\"has-contrast-2-color has-text-color has-link-color wp-elements-4a3c97d769a223ff89d8ebdd89df949c\">macOS 10.13 or newer<br>Apple Silicon, Intel<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Latest Version<\/h3>\n\n\n\n<p class=\"has-contrast-2-color has-text-color has-link-color wp-elements-2953f9adddd0cbfef7505d4135b6d18b\">4.1<br>April 14, 2026<br><a href=\"https:\/\/desairem.com\/wordpress\/category\/ufocus-changelog\/\">View Changelog<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Localizations<\/h3>\n\n\n\n<p class=\"has-contrast-2-color has-text-color has-link-color wp-elements-021906f6f35c959aa0467b72b7a4464a\">English<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>uFocus is free. No internet connection is required to use the app. Currently, one way to sustain my work would be to buy one of my other apps if you find it useful, or make a&nbsp;donation. After filling out the form, the download link will be sent immediately to your email address. If you do [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":173,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5461","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/pages\/5461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/comments?post=5461"}],"version-history":[{"count":6,"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/pages\/5461\/revisions"}],"predecessor-version":[{"id":5659,"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/pages\/5461\/revisions\/5659"}],"up":[{"embeddable":true,"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/pages\/173"}],"wp:attachment":[{"href":"https:\/\/desairem.com\/wordpress\/wp-json\/wp\/v2\/media?parent=5461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}