{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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-43b5092f 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 wp-block-paragraph\">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-bf881693 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-ee691b78 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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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}]}}