Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › app updates

How to Package and Distribute a TinyJS Desktop App

By Freedom251 Team · · 12 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Package a TinyJS desktop app for the operating system you intend to ship, then distribute the resulting platform artifact. Run tinyjs build on that operating system; on macOS, choose an architecture and use Developer ID signing plus notarization for public releases. For updates, set an update.url manifest address in tinyjs.json, run tinyjs publish, and host the generated archive and manifest at that address.

TinyJS currently describes macOS as its primary stable platform, while Windows and Linux remain beta. That maturity difference affects your testing, compatibility promises, signing plan and support burden.

As an Amazon Associate I earn from qualifying purchases.

What a TinyJS package actually is

A TinyJS project becomes a desktop deliverable only after the project is built for a specific operating system. The output is not one universal file that runs everywhere. TinyJS combines a platform launcher and the signing tools available on the machine that performs the build, so the operating system used for the build matters.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The current TinyJS documentation and the project’s repository README describe these primary outputs:

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Target Typical output Important qualifications
macOS A standalone executable inside a .app bundle; an optional .dmg The README treats the .app as the distribution artifact. A default build targets the build Mac’s CPU architecture.
Windows A portable folder in dist/ TinyJS labels Windows beta. The installer overview names Windows 10 and 11 with WebView2.
Linux A portable folder in dist/ Linux is beta and depends on WebKitGTK and glibc versions in the target distribution.

Think of packaging as three separate jobs: producing the correct files, making macOS releases trusted by Gatekeeper, and creating a repeatable update feed. You can distribute a build manually without the updater, or you can add the manifest workflow after the first release.

Choose the target before running the build

Decide which operating systems you will support

Write down the exact operating systems and CPU architectures that your release will support. TinyJS’s documentation describes macOS 15 or newer for its installer. Its Windows overview names Windows 10 and 11 and requires WebView2. Linux documentation gives Ubuntu 22.04 and Debian 12 or newer as examples, while the repository describes Ubuntu 24.04 or newer and current distributions using WebKitGTK 4.1. Those statements are not a single universal Linux minimum, so check the live documentation and test the precise distributions you plan to advertise.

Do not turn a beta label into a broad compatibility promise. Windows and Linux builds may be usable, but the project material explicitly marks both platforms beta. Record the tested OS release, WebView2 availability on Windows, WebKitGTK version on Linux and glibc baseline for every release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare a clean release project

  • Confirm the application starts from the project directory in development mode.
  • Check that every asset, script and configuration file required at runtime is included by the project.
  • Remove development-only data and test credentials before creating a release artifact.
  • Choose a version number and keep it consistent with the version you will place in the update manifest.
  • Decide whether the release is a manual download or part of an update feed; the build itself is the same starting point.

Keep the source tree and generated output separate. Treat the generated dist/ directory or macOS bundle as disposable release output that can be rebuilt from the same source and configuration.

Run the native TinyJS build

Build for macOS

On the Mac that will produce the release, run:

tinyjs build

The repository says this creates a standalone executable and a signed .app bundle. The bundle is the normal macOS distribution artifact. A default build is architecture-specific: it targets the CPU architecture of the Mac performing the build, rather than automatically creating a universal application.

If you want a disk image, add the documented option:

tinyjs build --dmg

The resulting DMG contains the app and an Applications shortcut. A DMG is a convenient delivery container, but it does not replace the app bundle; the bundle is what macOS runs and what you should sign and notarize.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build for Windows

Run tinyjs build on a Windows machine intended to create the Windows release. TinyJS documentation describes a portable output under dist/, not a conventional installer. Distribute the complete portable output, preserving its directory structure instead of copying only the executable.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Because TinyJS identifies Windows as beta, test on the Windows 10 and Windows 11 versions you claim to support. Confirm that WebView2 is installed and that the app launches for a standard user account, not only for the account that built it.

Build for Linux

Run the same command on a Linux machine matching the distribution family you intend to support:

tinyjs build

The documentation describes a portable dist/ output. Keep the entire directory when you distribute it. Verify the target has the WebKitGTK 4.1 runtime expected by the project and a compatible glibc version. The installer overview names glibc 2.35 or newer; the repository’s examples mention Ubuntu 24.04 or newer, while the broader documentation examples include Ubuntu 22.04 and Debian 12. Publish only the compatibility range you have actually checked.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why a native build is the safe release path

The repository explains that the build packages the host platform’s launcher and signing tools. Consequently, a build performed on macOS is not a promise that Windows or Linux artifacts will be produced correctly, and vice versa. Plan one release build environment per operating system. If you automate builds later, keep each job on the operating system it publishes and archive the exact generated artifact for testing.

Cover both Mac CPU architectures

Apple-silicon and Intel Macs require deliberate architecture handling. You have three documented choices:

Command Result When to use it
tinyjs build A build for the CPU architecture of the build Mac Use when you support one architecture or are producing an intermediate build.
tinyjs build --arch arm64 An arm64-specific app Use for Apple-silicon-only distribution.
tinyjs build --arch x86_64 An Intel-specific app Use for Intel-only distribution.
tinyjs build --universal A single app containing arm64 and x86_64 slices Use when one download must run natively on both Mac CPU families.

The README says a universal build requires Xcode Command Line Tools and increases the application size. Test the universal app on at least one Apple-silicon Mac and one Intel Mac before publishing; a universal binary removes architecture selection for users but does not remove the need to test both runtime environments.

For an update feed, you can publish architecture-specific releases with:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
tinyjs publish --arch arm64
tinyjs publish --arch x86_64

The repository says TinyJS merges those two architectures in the update manifest. Treat that as a release-feed operation: make sure both archives are available at their final URLs before users receive the manifest.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord | 6.35mm Jack, Durable Design, Stage and Home Studio Use, Low Noise Shielded Electric Cord for Bass, Keyboard, Amp, Mixer
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Sign and notarize a public Mac release

Understand the default signature

TinyJS’s default ad-hoc signature is useful for local use and controlled internal distribution. The README warns that it creates Gatekeeper friction for recipients, so it is not the recommended path for a public Mac download. A user may need to take extra security steps before macOS will open an ad-hoc app.

Configure Developer ID signing

For a public release, obtain a Developer ID Application certificate through Apple’s developer program and configure TinyJS’s signIdentity setting to use that certificate. The README also instructs you to build with the hardened runtime and a secure timestamp. Keep the signing identity configuration in the release environment, not in a repository where credentials or private-key details could be exposed.

After configuring the identity, rebuild the app. Do not assume that an app signed after packaging will make an already-created DMG valid; the container must ultimately include the final signed and notarized app.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Submit and staple notarization

Run the documented notarization command on the signed app:

tinyjs notarize

TinyJS submits the app and staples the notarization ticket according to the repository workflow. Allow the command to complete successfully before making the file public. If you distribute a DMG, rebuild or process the image after the app has been stapled:

tinyjs notarize --dmg

The README specifically warns that a DMG created before stapling contains the pre-staple app. Shipping that older image can reintroduce the Gatekeeper problem even when the standalone app was correctly notarized.

Apple Developer Program membership is required for this public notarization route. Apple’s terms and pricing can change, so confirm the current enrollment requirements when you set up the signing account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Distribute each platform artifact

macOS delivery

For a direct download, provide the notarized .app or the DMG containing it. Keep the architecture label clear when you publish separate arm64 and x86_64 files. If you created a universal app, say so and account for its larger size. Preserve the bundle structure; do not extract the executable from the .app and present it as a replacement.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Windows delivery

Upload or otherwise transfer the complete portable dist/ directory generated on Windows. Explain that the package is portable rather than an installed Start-menu application, and state the WebView2 prerequisite. Test extraction, launch and removal instructions on a clean Windows 10 or Windows 11 machine.

Linux delivery

Distribute the complete portable dist/ directory generated on Linux. Include the supported distribution examples and runtime requirements you verified, especially WebKitGTK 4.1 and the glibc baseline. A package that launches on the build machine may still fail on a different distribution with an older runtime.

Use a release record

For every upload, retain the source revision, TinyJS version, target OS, architecture, build date and artifact filename. This record lets you match a support report to the exact binary and prevents an update manifest from pointing at a file that was later replaced.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set up TinyJS app updates

Configure the manifest address

In tinyjs.json, set update.url to the URL where your update manifest will live. The URL should be stable: users keep checking it after they install the first release. Use HTTPS and a host that can serve static files reliably. The repository lists GitHub Releases, S3 and nginx as examples of suitable static hosting; these are hosting patterns, not a requirement to use one particular provider.

Publish a release

From the release build environment, run:

tinyjs publish

You can include release notes using the options supported by your installed TinyJS version. The command generates an update archive and a manifest. Upload both to the location represented by update.url. The manifest is described as carrying the version, download URL, SHA-256 hash and notes, so do not upload an archive without its matching manifest or edit one field independently.

For Mac architecture-specific publishing, run the two documented commands:

tinyjs publish --arch arm64
tinyjs publish --arch x86_64

The README says the manifest merges the two architectures. Publish the arm64 and x86_64 archives first, then make the merged manifest visible. This ordering avoids a short interval in which the feed advertises a download that is not yet reachable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the updater does

TinyJS describes an updater that checks the archive’s SHA-256 value and code signature, swaps the application in place, relaunches it and rolls back if the update fails. Those checks protect against a damaged download and help the app recover from an unsuccessful replacement. They do not remove your responsibility to upload the correct archive, keep the manifest accurate and test each release before changing the public feed.

Manual downloads versus an update feed

Release route Advantages Responsibilities
Manual download Simple first release; no manifest hosting required You must announce every version and users must download it themselves.
Hosted TinyJS manifest The app can discover, verify and install later releases through the documented updater Maintain a stable manifest URL, upload matching archives, preserve hashes and test rollback behavior.

You can begin with manual distribution and add update.url later. If you do, make the first feed version match the version already installed by users so the updater has a correct starting point.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

A release procedure you can repeat

  1. Freeze the release. Select the source revision, version number, supported operating systems and Mac architecture policy.
  2. Check prerequisites. Confirm the correct TinyJS CLI, the target operating system, WebView2 on Windows, or WebKitGTK and glibc compatibility on Linux.
  3. Build on the target OS. Run tinyjs build; add --arch, --universal or --dmg only when that output is part of your plan.
  4. Complete Mac trust steps. For public macOS distribution, configure signIdentity, hardened runtime and secure timestamp, then run tinyjs notarize. Process the DMG with tinyjs notarize --dmg if you ship one.
  5. Test the artifact. Copy the exact files to clean machines representing each supported OS and architecture. Launch as a normal user and verify the app’s core workflow.
  6. Choose delivery. Upload the standalone app, DMG or portable directory to your manual-download location, or continue to publishing.
  7. Generate the update feed. Set update.url, run tinyjs publish (or the architecture-specific publish commands), and inspect the generated version, URL, hash and notes.
  8. Upload in a safe order. Place every archive at its final URL before exposing the manifest. Check that the manifest URL returns the expected content without authentication.
  9. Test updating. Install the previous release, point it at the feed, and verify download, signature/hash checks, relaunch and recovery from a deliberately invalid or unavailable update in a non-public test feed.
  10. Record the release. Save artifact names, hashes, signing identity, notarization result, target environments and the date published.

Common failure modes and fixes

The app works on the build machine but not elsewhere

This usually indicates an untested runtime or an incomplete portable directory. Rebuild on the target OS, distribute the complete output, and test on a clean machine. For Windows, check WebView2. For Linux, compare WebKitGTK 4.1 and glibc versions with the target distribution.

A Mac user sees Gatekeeper warnings

Check whether the app uses TinyJS’s ad-hoc default signature. For public distribution, configure Developer ID signing, hardened runtime and secure timestamp, rebuild, run tinyjs notarize, and distribute the resulting app. If the warning appears only for a DMG, recreate or process the image with tinyjs notarize --dmg so it contains the stapled app.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Only one Mac CPU family can run the app

A normal build follows the build Mac’s architecture. Produce a matching architecture with --arch arm64 or --arch x86_64, or create a universal build with --universal. Remember that universal output is larger and requires Xcode Command Line Tools.

The updater downloads nothing

Check that update.url is present in the shipped configuration, that the manifest is publicly reachable, and that its download URL points to the archive actually uploaded. Confirm that the version in the manifest is newer than the installed version and that the SHA-256 value belongs to that exact archive.

The updater reports a verification or signature failure

Regenerate the manifest with the archive produced by the same release process. Do not modify or recompress an archive after its hash is generated. On macOS, verify that the downloadable app is the signed and notarized artifact, not an earlier ad-hoc build.

An update leaves the app unusable

The updater is documented to roll back when replacement fails. Preserve the previous release while diagnosing the problem, remove the bad archive from the feed or correct the manifest, and publish a new tested build rather than repeatedly serving the same broken file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to choose a release route

Decision Recommended choice Reason
Internal Mac testing Ad-hoc signed app Fast for controlled use, but not appropriate as the frictionless public path.
Public Mac download Developer ID, hardened runtime, secure timestamp and notarization Reduces Gatekeeper friction for recipients.
One Mac file for both CPU families tinyjs build --universal One download covers arm64 and x86_64, at the cost of a larger app and the Command Line Tools requirement.
Smallest Mac downloads Separate --arch arm64 and --arch x86_64 builds Each user receives only the architecture-specific app; the update manifest can merge both.
Windows or Linux release Native build and portable dist/ output TinyJS packages the host platform’s launcher and signing tools; both platforms are currently beta.
Infrequent releases Manual downloads Less hosting and manifest maintenance.
Regular releases Hosted manifest with tinyjs publish Users can receive the documented hash- and signature-checked update flow.

Keep compatibility claims current

TinyJS’s official changelog lists version 0.47.0 dated 2026-10-04 and notes security fixes. Treat that as the project-published release information at that date, not as independent confirmation that every platform is stable. Before each publication, check the current TinyJS changelog, documentation and repository instructions for changed command options, prerequisites or signing behavior.

When documentation and repository examples differ, state the narrower range you tested or identify both examples explicitly. This is especially important on Linux, where WebKitGTK and glibc availability varies by distribution. A precise compatibility statement is more useful than claiming that every modern Linux or Windows installation is supported.

Final release checklist

  • Target operating system and supported CPU architectures are written in the release notes.
  • The build was run on the operating system being shipped.
  • The complete macOS .app, Windows dist/ folder or Linux dist/ folder was retained.
  • Public Mac builds use the configured Developer ID identity, hardened runtime, secure timestamp and completed notarization.
  • Any DMG was created or processed after the app was stapled.
  • Windows WebView2 and Linux WebKitGTK/glibc requirements were tested on clean target machines.
  • Architecture-specific Mac artifacts or a tested universal artifact are clearly labeled.
  • The manifest’s version, URLs, SHA-256 values and notes match the files actually hosted.
  • The update manifest is published only after all referenced archives are reachable.
  • A previous-version update test and a recovery test have passed.

The practical sequence is therefore straightforward: select the target, build natively, create the correct platform artifact, notarize public Mac releases, and publish a manifest only when you are ready to maintain hosted updates. That sequence matches TinyJS’s documented packaging model without pretending that one build or one compatibility claim covers every desktop platform.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

app updatesdesktop appsLinuxmacOS notarizationsoftware distributionTinyJSWindows

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.