• File: index.cache.php
  • Full Path: /home/daemondevin/public_html/portableapps/data/backups/20261023081324-1.2.0-to-1.3.0/files/index.cache.php
  • Date Modified: 10/26/2026 8:57 PM
  • File size: 134.57 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php http_response_code(404); exit; ?>
a:2:{s:3:"sig";s:32:"02af2efab62d9e9ceb1a89adf0ee11e1";s:5:"posts";a:31:{i:0;a:15:{s:4:"slug";s:14:"7-zip-portable";s:5:"title";s:14:"7-Zip Portable";s:4:"date";s:16:"2026-10-21 09:50";s:7:"updated";s:16:"2026-10-23 15:48";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:9:"Utilities";}s:11:"description";s:0:"";s:5:"image";s:59:"/~daemondevin/portableapps/uploads/2026/10/7-zip-9b5911.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:31:"7-Zip Portable v26.04 released!";s:5:"words";i:1573;s:7:"minutes";i:8;s:5:"plain";s:4000:"7 zip portable v26.04 released < more 7 zip portable 7 zip portable is a portable build of 7 zip https://www.7 zip.org/ , the open source file archiver by igor pavlov. one package carries the x86, x64 and arm64 builds, runs the one that is native to the computer, and keeps itself up to date. it's built with the portableapps compiler https://github.com/daemondevin/pac man pac man : every change it makes to windows is recorded first and undone when 7 zip closes, or on the next launch if something went wrong. download downloads are in the releases section https://github.com/daemondevin/7 zipportable/releases/latest . the package is in portableapps.com https://portableapps.com/ format, so it installs into the portableapps.com platform or any folder you like. features the full 7 zip file manager, plus the 7 zip command line and gui tools. native on every pc: x86, x64 and arm64 builds in one package. arm64 pcs run the arm64 build instead of x64 under emulation. see builds builds updates itself: checks the official 7 zip releases at start and updates all three builds. a failed or interrupted update keeps the version you had. see updates updates leaves nothing behind: file associations, the explorer context menu and the sendto shortcut exist only while 7 zip runs. if 7 zip or the pc crashes, the next launch cleans up before it starts. no administrator rights: everything, the context menu included, is registered for the current user only. portable settings: 7 zip's settings travel with the package in data\settings , including the folder history when the drive letter changes. command line support: parameters passed to the launcher go to 7zg.exe , so 7 zipportable.exe a backup.7z myfolder works as it would with an installed 7 zip. see command line command line runs from a usb drive, a cloud folder or a hard drive. system requirements microsoft windows 10 or later: x86, x64 or arm64. portableapps.com platform https://portableapps.com/download optional . an internet connection for updates optional . configuration 7 zipportable.ini , next to the launcher 7 zipportable\7 zipportable.ini , holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\7 zipportable.ini over it. ini 7 zipportable additionalparameters= runlocally=false fileassociations=true shellextension=false updatecheck=true architecture=auto banner=false key values default what it does fileassociations true , false true "open with" entries for archive types while 7 zip runs. see associations associations . shellextension true , false , auto false the 7 zip menu in explorer's context menu while 7 zip runs. auto adds it only when no installed 7 zip already provides one. see context menu context menu . updatecheck true , false true check for a new 7 zip at start and offer to update. architecture auto , x86 , x64 , arm64 auto which build to run. auto picks the native one. banner true , false false show a banner while 7 zip starts. additionalparameters text empty extra command line switches passed to 7 zip. runlocally true , false false copy 7 zip to the temp folder and run it from there. builds the package holds three builds: folder build runs on app\7 zip x86 every windows pc app\7 zip64 x64 64 bit windows: x64, and arm64 under emulation app\7 ziparm64 arm64 arm64 windows the launcher runs the build that matches the architecture windows itself runs on, so an arm64 pc is told apart from an x64 one. if that build is missing, it falls back to the next one arm64, then x64, then x86 instead of failing to start. to force a build, set architecture=x86 , x64 or arm64 in 7 zipportable.ini . the arm64 build can only be forced on arm64 windows. updates with updatecheck=true , the launcher looks up the latest release on 7 zip's github page https://github.com/ip7z/7zip/releases each time it starts. when there's a newer version, or one of the three builds is missing in copies made before the arm64 build existed, for example , it asks before doing anyt";}i:1;a:15:{s:4:"slug";s:5:"about";s:5:"title";s:5:"About";s:4:"date";s:16:"2026-10-23 21:21";s:7:"updated";s:16:"2026-10-25 23:36";s:6:"status";s:9:"published";s:4:"type";s:4:"page";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:66:"/~daemondevin/portableapps/uploads/2026/10/portableapps-6d7527.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:158:"I build portable versions of Windows apps. This page explains how I do it, what I promise about every release, and how to stop Windows warning you about them.";s:5:"words";i:819;s:7:"minutes";i:4;s:5:"plain";s:4002:"i build portable versions of windows apps. this page explains how i do it, what i promise about every release, and how to stop windows warning you about them. what pac man is pac man stands for portableapps compiler & management . it is the launcher framework i use for my portable apps. it is built on top of the official portableapps.com launcher pal , not instead of it, and it is not associated with portableapps.com. if you have a problem with one of my launchers, please bring it to me and not to them. pal deliberately leaves out apps that need to reach deep into windows. pac man is for those. a launcher built with it can handle: windows services, scheduled tasks, dll and com registration, and device drivers registry and file system redirection, including 32 and 64 bit, plus fragile registry keys that are copied to a safe place before the app starts symlinks, junctions and hardlinks fonts that are installed when the app starts and removed when it closes firewall rules, java, ghostscript, qt and xml configuration cleanup of leftover files and folders after the app exits each of these is its own segment, and a launcher only contains the segments it turns on, so a simple app does not carry the weight of a complex one. when an app needs something unusual, there is a hook for custom code. the point of all of it is that the app behaves like a guest on your machine. it runs from its own folder or drive, and when you close it, your system goes back to how it was, even if the app crashed on the way out. my promise: no cracked software every release i publish is made from software obtained legitimately. that means: no cracks, keygens, patched binaries or license bypasses. ever. no repackaged pirated installers. if an app needs a license, you bring your own, or it ships as the vendor's own free or trial edition. the app itself is not modified to remove protections, ads, checks or telemetry unless the vendor allows it, and if i do change something, the release notes say so. what i add is the launcher. the pac man launcher, its settings and its cleanup are my work, and you can read what they do. if you ever find a release of mine that breaks this promise, tell me and i will pull it. signed releases and the warning you may see i sign my launchers with a code signing certificate, using the signing tools built into pac man. the signature proves two things: the file came from me, and it has not been changed since i signed it. if someone tampers with a release or passes off their own build as mine, the signature breaks. my certificate is not one that windows trusts out of the box, so the first time you run one of my launchers, windows may warn you about an unknown publisher. that warning is windows saying it does not know me yet. it is not saying the file is bad. stop the warnings if you trust my releases and want the warnings to go away, add my certificate to your certificate manager. 1. download the certificate: daemon.devin certificate https://envs.net/ daemondevin/portableapps/uploads/daemon.devin.p7b 2. check it is mine before you trust it. open the file, go to the details tab and compare the thumbprint with this one: 070f1dc3f30dd5da9beae822cf2de256b8ad434b . if they differ, do not install it. 3. press win + r , type certmgr.msc and press enter. this installs it for your account only. use certlm.msc to install it for every user on the pc, which needs administrator rights. 4. open trusted root certification authorities , right click certificates , choose all tasks → import , and pick the file i gave you. 5. repeat the import into trusted publishers . 6. run one of my launchers. the unknown publisher warning should be gone. a few honest notes: only do this if you trust me. a certificate in your trusted store tells windows to believe whatever is signed with it. that is the whole idea, and it is also why you should check the thumbprint and not take a certificate from anyone else's page. you can undo it any time. open the same store, find my ";}i:2;a:15:{s:4:"slug";s:30:"adobe-illustrator-cs3-portable";s:5:"title";s:30:"Adobe Illustrator CS3 Portable";s:4:"date";s:16:"2026-10-22 22:15";s:7:"updated";s:16:"2026-10-23 19:22";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:21:"Graphics and Pictures";}s:11:"description";s:0:"";s:5:"image";s:65:"/~daemondevin/portableapps/uploads/2026/10/illustrator-a3fc1f.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:40:"Adobe Illustrator CS3 Portable released!";s:5:"words";i:909;s:7:"minutes";i:5;s:5:"plain";s:4000:"adobe illustrator cs3 portable released < more a portable launcher for adobe illustrator cs3, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when illustrator closes, or on the next launch if something went wrong. the package doesn't include or handle illustrator's licensing: use it with a copy of illustrator cs3 you're licensed to run. pacman : https://github.com/daemondevin/pac man system requirements windows, 32 bit or 64 bit. illustrator cs3 is a 32 bit application. administrator rights for the launcher. illustrator itself runs with your normal rights see drag and drop drag and drop . data on a local drive a usb drive is fine; a network share isn't . see data data . portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/illustratorportable cs3 english.paf.exe drag and drop windows doesn't let explorer, or any other program running with normal rights, drag files into a program that runs as administrator. so a launcher that runs illustrator elevated also breaks drag and drop. the launcher still needs administrator rights, for the shared files in common files and program data and the language setting in the machine wide registry. but once it has set those up, it starts illustrator the way explorer would: with the rights of the signed in user, using explorer's own credentials. drag and drop from explorer, the desktop and other programs then works as it does with an installed illustrator. a second launch while illustrator runs opening a file from the portableapps.com platform, for example isn't elevated at all, so there's no uac prompt. it hands its files to the running illustrator. if the launcher was elevated with a different account's password a standard user typing an administrator's password , illustrator has to run as that administrator, and drag and drop from your own explorer can't work. signing in with an account that is an administrator avoids that. configuration illustratorportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\illustratorportable.ini over it. ini illustratorportable additionalparameters= disablesplashscreen=false runlocally=false productlanguage=en us key default what it does productlanguage en us the language adobe's shared code is told illustrator runs in, written the way adobe writes it en us , de de , fr fr and so on . it has to be a language the illustrator in the package has. additionalparameters empty extra command line switches passed to illustrator. disablesplashscreen false don't show the launcher's splash screen. runlocally false copy illustrator to the temp folder and run it from there, for read only media. changes made in that session aren't saved back. launching the package again while illustrator runs passes the files to the running illustrator. data while illustrator runs, these are linked into data with ntfs junctions, so nothing is copied back and forth: illustrator uses kept in %appdata%\adobe\adobe illustrator cs3 settings data\adobe illustrator cs3 settings %programdata%\adobe\adobe pdf data\adobe pdf common files\adobe\plug ins\cs3 data\commonfiles\plug ins\cs3 common files\adobe\typesupport data\commonfiles\typesupport common files\adobe\xmp\custom file info panels data\commonfiles\xmp\custom file info panels common files\adobe\help\en us\illustrator data\commonfiles\help\illustrator common files is the 32 bit one program files x86 \common files on 64 bit windows , which is where illustrator cs3 looks. if an installed adobe application already has one of these folders, it's moved aside for the session and put back when illustrator portable closes. close installed adobe applications before starting illustrator portable, so they don't run without their shared files in the meantime. important junctions can only point to a local d";}i:3;a:15:{s:4:"slug";s:28:"adobe-photoshop-cs3-portable";s:5:"title";s:28:"Adobe Photoshop CS3 Portable";s:4:"date";s:16:"2026-10-22 22:06";s:7:"updated";s:16:"2026-10-23 19:22";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:21:"Graphics and Pictures";}s:11:"description";s:0:"";s:5:"image";s:63:"/~daemondevin/portableapps/uploads/2026/10/photoshop-d93089.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:28:"Adobe Photoshop CS3 Portable";s:5:"words";i:892;s:7:"minutes";i:5;s:5:"plain";s:4000:"adobe photoshop cs3 portable < more a portable launcher for adobe photoshop cs3, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when photoshop closes, or on the next launch if something went wrong. the package doesn't include or handle photoshop's licensing: use it with a copy of photoshop cs3 you're licensed to run. pacman : https://github.com/daemondevin/pac man system requirements windows, 32 bit or 64 bit. photoshop cs3 is a 32 bit application. administrator rights for the launcher. photoshop itself runs with your normal rights see drag and drop drag and drop . data on a local drive a usb drive is fine; a network share isn't . see data data . portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/photoshopportable cs3 english.paf.exe drag and drop windows doesn't let explorer, or any other program running with normal rights, drag files into a program that runs as administrator. so a launcher that runs photoshop elevated also breaks drag and drop. the launcher still needs administrator rights, for the shared files in common files and the language setting in the machine wide registry. but once it has set those up, it starts photoshop the way explorer would: with the rights of the signed in user, using explorer's own credentials. drag and drop from explorer, the desktop and other programs then works as it does with an installed photoshop. a second launch while photoshop runs opening a file from the portableapps.com platform, for example isn't elevated at all, so there's no uac prompt. it hands its files to the running photoshop. if the launcher was elevated with a different account's password a standard user typing an administrator's password , photoshop has to run as that administrator, and drag and drop from your own explorer can't work. signing in with an account that is an administrator avoids that. configuration photoshopportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\photoshopportable.ini over it. ini photoshopportable additionalparameters= disablesplashscreen=false runlocally=false productlanguage=en us key default what it does productlanguage en us the language adobe's shared code is told photoshop runs in, written the way adobe writes it en us , de de , fr fr and so on . it has to be a language the photoshop in the package has. additionalparameters empty extra command line switches passed to photoshop. disablesplashscreen false don't show the launcher's splash screen. runlocally false copy photoshop to the temp folder and run it from there, for read only media. changes made in that session aren't saved back. data while photoshop runs, these are linked into data with ntfs junctions, so nothing is copied back and forth: photoshop uses kept in %appdata%\adobe\adobe photoshop cs3 settings, presets, actions data\appdata\adobe\adobe photoshop cs3 %appdata%\adobe\color data\appdata\adobe\color %appdata%\adobe\save for web data\appdata\adobe\save for web %appdata%\adobe\adobe pdf data\appdata\adobe\adobe pdf %appdata%\adobe\workflow data\appdata\adobe\workflow %localappdata%\adobe\color data\localappdata\adobe\color common files\adobe\adobe pcd , caps and backup data\commonfiles\adobe\... common files is the 32 bit one program files x86 \common files on 64 bit windows , which is where photoshop cs3 looks. a folder that data doesn't have yet is filled from app\defaultdata first. photoshop's registry settings hkcu\software\adobe\photoshop and hkcu\software\adobe\iac are kept in data\settings\hkcu.reg and iac.reg . they're loaded when photoshop starts and saved when it closes. if an installed adobe application already has any of these, it's moved aside for the session and put back when photoshop portable closes. close installed adobe applications before starting photos";}i:4;a:15:{s:4:"slug";s:13:"aimp-portable";s:5:"title";s:13:"AIMP Portable";s:4:"date";s:16:"2026-10-25 18:59";s:7:"updated";s:16:"2026-10-25 20:35";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:15:"Music and Video";}s:11:"description";s:0:"";s:5:"image";s:58:"/~daemondevin/portableapps/uploads/2026/10/aimp-1dcd9a.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"AIMP Portable v5.40.2722 released!";s:5:"words";i:965;s:7:"minutes";i:5;s:5:"plain";s:4000:"aimp portable v5.40.2722 released < more a portable launcher for aimp https://www.aimp.ru/ , the music player with its own audio library, audio converter and tag editor, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when aimp closes, or on the next launch if something went wrong. aimp isn't included: its license only allows aimp's original installer to be passed on. you add aimp yourself, once see adding aimp adding aimp . pacman : https://github.com/daemondevin/pac man system requirements windows 7 or later. portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/aimpportable 5.40.2722.paf.exe mirror https://drive.proton.me/urls/gg2rarhmnw 5yjskm4snsis adding aimp 1. download aimp from aimp.ru https://www.aimp.ru/?do=download . 2. run its installer and choose the portable install, into this package's app\aimp folder. or copy the program folder of an aimp that's already installed to app\aimp . 3. start aimpportable.exe . until aimp is there, the launcher says which folder to copy and where, offers to open the app folder, and stops. it checks for aimp.exe , aimp.runtime.dll and aimp.shared.dll , so a copy of only aimp.exe is caught too. an aimp.ini that comes with the copied program is taken over the first time; from then on the one in data is used, set to keep aimp's profile in the package. configuration aimpportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\aimpportable.ini over it. ini aimpportable additionalparameters= systemintegration=false key default what it does systemintegration false let aimp register itself with windows. see system integration system integration . additionalparameters empty extra command line switches passed to aimp. data aimp keeps everything in its profile. with usermode=0 in the aimp.ini next to aimp.exe , that profile is the profile folder beside it rather than %appdata%\aimp . both live in data and are moved into place while aimp runs: aimp uses kept in app\aimp\aimp.ini data\aimp.ini app\aimp\profile settings, playlists, audio library, skins you add data\profile recordings data\recorded when the package moves another drive letter, another folder , the paths stored in aimp's settings, tag editor and converter settings are updated to match. note aimp's audio library data\profile\audiolibrary\local.adb stores the full path of every file in it, in a format the launcher doesn't change. if your music is on the same drive as the package and that drive gets a different letter, rescan the library folders in aimp. system integration in its settings aimp can register itself with windows: as the player for file types, in explorer's right click menu, as an autoplay handler, and in default programs. it does that through elevator.exe , which asks for administrator rights and changes windows for every user. the launcher runs with your normal rights, so it couldn't undo those changes. that's why, with systemintegration=false the default , elevator.exe is set aside while aimp runs and those options do nothing. it's renamed to elevator.exe.disabled for the session and put back when aimp closes; if aimp updated itself meanwhile, the new elevator.exe is kept. with systemintegration=true , aimp can make those changes, and they stay until you turn the options off in aimp again. what aimp changes, and how it's undone aimp changes put back when it closes "run aimp at windows startup": the aimp value in hkcu\software\microsoft\windows\currentversion\run removed, or put back exactly as it was an installed aimp's entry, for example elevator.exe set aside see above put back a portable aimp can't start with windows from a drive that may not be there, which is why the startup entry is removed. updates aimp can update itself in place; its update checker is in its setti";}i:5;a:15:{s:4:"slug";s:18:"bearsampp-portable";s:5:"title";s:18:"Bearsampp Portable";s:4:"date";s:16:"2026-10-23 19:45";s:7:"updated";s:16:"2026-10-23 20:43";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:63:"/~daemondevin/portableapps/uploads/2026/10/bearsampp-871900.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:39:"Bearsampp Portable v2026.9.13 released!";s:5:"words";i:1270;s:7:"minutes";i:6;s:5:"plain";s:4000:"bearsampp portable v2026.9.13 released a portable launcher for bearsampp https://bearsampp.com/ , the portable wamp style development stack apache, mysql, mariadb, postgresql, php, node.js, mailpit, memcached and more , built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when bearsampp closes, or on the next launch if something went wrong. it also keeps bearsampp itself up to date from its github releases. pacman : https://github.com/daemondevin/pac man system requirements windows 10 or later, 64 bit. bearsampp has no 32 bit version. administrator rights. bearsampp installs windows services and sets machine wide environment variables, and refuses to start without them. an ntfs drive a usb drive formatted ntfs is fine; fat32, exfat and network shares aren't . bearsampp creates current links inside its own folders for the module versions in use. portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/bearsamppportable 2026.9.13.paf.exe configuration bearsamppportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\bearsamppportable.ini over it. ini bearsamppportable updatecheck=true updateedition=lite keeprootca=false key default what it does updatecheck true check github for a newer bearsampp each time it starts, and offer to update. updateedition lite the release download an update is taken from: lite , basic or full . see updates updates . keeprootca false leave bearsampp's development root certificate trusted on this computer after it closes. see certificates certificates . what bearsampp changes, and how it's undone bearsampp is a server stack, so unlike most portable apps it has to change the computer while it runs. before it starts, the launcher records the state of everything below; when bearsampp closes, it puts each one back. bearsampp changes put back when it closes services bearsamppapache , bearsamppmysql , bearsamppmariadb , bearsampppostgresql , bearsamppmailpit , bearsamppmemcached , bearsamppxlight stopped and deleted, if they weren't there before launch. services that already existed are left alone. machine environment variables bearsampp path and bearsampp bins restored to their previous value and type, or deleted if they weren't set. %bearsampp bins% added to the machine path only that entry is removed. everything else in path , including changes other programs made during the session, is kept in order. "launch on startup" shortcut in your startup folder deleted, if it wasn't there before launch. bearsampp's root certificate added to your trusted certificates removed, unless keeprootca=true or it was already trusted before launch. after the environment is restored, running programs are told it changed, so new command prompts see the original path . bearsampp normally deletes its services itself when you choose exit . the launcher's cleanup is what covers a crash, a forced shutdown, or bearsampp being killed. not undone windows firewall rules. if you let apache or mysql through the firewall when windows asks, those rules are created by windows, not bearsampp, and stay. remove them from windows defender firewall if you don't want them. firefox settings. when bearsampp installs its certificate it may also turn on security.enterprise roots.enabled in firefox profiles so firefox trusts it. that setting is harmless and is left as it is. certificates bearsampp uses mkcert https://github.com/filosottile/mkcert to make https://localhost and your virtual hosts trusted in the browser. it creates a development root certificate, app\bearsampp\ssl\rootca.pem , and adds it to your trusted root certificates. with keeprootca=false , the certificate is only trusted while bearsampp portable runs: when bearsampp closes, the certificate is removed. windows shows a confirmation dialog f";}i:6;a:15:{s:4:"slug";s:16:"discord-portable";s:5:"title";s:16:"Discord Portable";s:4:"date";s:16:"2026-10-21 09:40";s:7:"updated";s:16:"2026-10-22 22:28";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:8:"Internet";}s:11:"description";s:0:"";s:5:"image";s:61:"/~daemondevin/portableapps/uploads/2026/10/discord-da4f6d.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:42:"Discord Portable v1.0.9264-rev.3 released!";s:5:"words";i:1755;s:7:"minutes";i:8;s:5:"plain";s:4000:"discord portable v1.0.9264 rev.3 released < more discord portable discord portable is a portable build of discord https://discord.com/ , the voice, video and text chat app. it runs the build that's native to the computer x64 or arm64 , keeps itself up to date, and can load betterdiscord https://betterdiscord.app/ , vencord https://vencord.dev/ or equicord https://equicord.org/ if you want it to. it's built with the portableapps compiler https://github.com/daemondevin/pac man pac man : every change it makes to windows is recorded first and undone when discord closes, or on the next launch if something went wrong. i was given permission by discord inc. to continue developing this project. they can't officially endorse it because, "...we do not have a hand in development directly." they go on to say: "as a result, if they happen to be released, we recommend to all of our users to be cautious when using third party applications with discord in general and any usage is at their own risk." download downloads are in the releases section https://github.com/daemondevin/discordportable/releases/latest . the package is in portableapps.com https://portableapps.com/ format, so it installs into the portableapps.com platform or any folder you like. features the full discord desktop app. native on every pc: x64 and arm64 builds. on windows on arm the launcher downloads and runs the arm64 build instead of running x64 under emulation. see builds builds updates itself: checks discord's official downloads at start, and also runs any update discord installs for itself. a failed or interrupted update keeps the version you had. see updates updates repairs itself: if discord's files are missing or damaged, the launcher offers to download discord again instead of failing to start. optional client mods: betterdiscord, vencord or equicord, chosen with one setting. see client mods client mods your data travels with it: settings, sign in and your client mod's plugins, themes and settings are kept in data . leaves nothing behind: the discord:// link, the "open discord" at startup entry, the uninstall entry and the shortcuts discord makes for itself only exist while it runs. an installed discord's are put back exactly as they were. no administrator rights: everything is done for the current user only. system requirements windows 10 or later, 64 bit x64 or arm64 . discord has had no 32 bit build since december 2023. portableapps.com platform https://portableapps.com/download optional . an internet connection. data on a local drive a usb drive is fine; a network share isn't . see data data . configuration discordportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\discordportable.ini over it. ini discordportable additionalparameters= updatecheck=true architecture=auto clientmod=none key values default what it does updatecheck true , false true check for a new discord at start and offer to update. architecture auto , x64 , arm64 auto which build to run. auto picks the native one. clientmod none , betterdiscord , vencord , equicord none load a client mod into discord. see client mods client mods . additionalparameters text empty extra command line switches passed to discord. builds folder build runs on app\discord x64 x64 windows, and windows 11 on arm under emulation app\discordarm64 arm64 arm64 windows each folder is laid out the way discord's installer leaves it, with one app <version folder per version. the launcher always starts the newest one. the package ships the x64 build. the first time it starts on arm64 windows with updatecheck=true , it offers to download the arm64 build; until then the x64 build runs under emulation. to force a build, set architecture=x64 or arm64 . the arm64 build can only be forced on arm64 windows. updates discord updates its own modules every time it starts, and sometimes installs a new version of itself too. the launcher always starts the n";}i:7;a:15:{s:4:"slug";s:31:"emsisoft-emergency-kit-portable";s:5:"title";s:31:"Emsisoft Emergency Kit Portable";s:4:"date";s:16:"2026-10-23 19:27";s:7:"updated";s:16:"2026-10-23 20:43";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:8:"Security";}s:11:"description";s:0:"";s:5:"image";s:66:"/~daemondevin/portableapps/uploads/2026/10/emergencykit-147a1c.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:57:"Emsisoft Emergency Kit Portable v2025.7.0.12683 released!";s:5:"words";i:943;s:7:"minutes";i:5;s:5:"plain";s:4000:"emsisoft emergency kit portable v2025.7.0.12683 released a portable launcher for emsisoft emergency kit https://www.emsisoft.com/en/emergency kit/ , emsisoft's second opinion malware scanner and cleaner, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when emergency kit closes, or on the next launch if something went wrong. the package contains only the launcher. emergency kit itself comes from emsisoft, and its license applies: it's free for private, non commercial use, and businesses need emsisoft's commercial license. pacman : https://github.com/daemondevin/pac man system requirements windows 10 or later, 64 bit. emergency kit has no 32 bit version. administrator rights. emergency kit needs them to scan memory, other users' files and the registry. a local drive a usb drive is fine; a network share isn't . portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/emergencykitportable 2025.7.0.12683.paf.exe two scanners start what runs emergencykitportable.exe the emergency kit scanner, with its full window clscannerportable.exe a menu for the emsisoft commandline scanner a2cmd.exe , in a command prompt the menu offers a quick scan, a malware scan, or a scan of a folder or drive you choose, with options for potentially unwanted programs, archives and ntfs alternate data streams. detected objects can be quarantined, deleted or only reported. it can also list, restore and delete quarantined objects, and update the signatures. each scan's log is saved in data\logs . clscannerportable.exe starts emergencykitportable.exe /clscanner , so both go through the same launcher, with the same clean up. configuration emergencykitportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\emergencykitportable.ini over it. ini emergencykitportable additionalparameters= language= key default what it does language empty the language emergency kit uses, for example de de . see language language . additionalparameters empty extra command line switches passed to emergency kit. language started from the portableapps.com platform, emergency kit uses the platform's language, if it has a translation for it; otherwise english. started on its own, it keeps the language you chose in emergency kit. language= in emergencykitportable.ini overrides both. emergency kit has czech, dutch, english, farsi, finnish, french, german, hungarian, italian, japanese, korean, polish, portuguese brazil , russian, simplified and traditional chinese, slovenian, spanish and turkish. data emergency kit keeps everything in its own folder, app\eek . your settings, logs, reports and quarantine are kept in data and moved into place while it runs: emergency kit uses kept in app\eek\a2settings.ini and its other settings files data\settings app\eek\logs data\logs app\eek\reports data\reports app\eek\quarantine data\quarantine note the quarantine holds the malware emergency kit found, stored so it can't run. copying data copies it too. updates emergency kit updates its signatures and its own program files itself, in app\eek\bin64 : use update in its window, or in the command line menu. nothing else is needed. after each session the launcher reads the version of a2emergencykit.exe and writes it to appinfo.ini , so the portableapps.com platform shows the version emergency kit has updated itself to. moving from an older package older versions of this package kept the signatures and translations in app\defaultdata or data , and moved them into emergency kit's folder for each session. emergency kit updates both itself, so they now stay in app\eek\bin64 . the first launch moves them there once. what emergency kit changes, and how it's undone before emergency kit starts, the launcher records the state of each of these. when it closes, everything ";}i:8;a:15:{s:4:"slug";s:18:"fl-studio-portable";s:5:"title";s:18:"FL Studio Portable";s:4:"date";s:16:"2026-10-25 20:35";s:7:"updated";s:16:"2026-10-25 20:42";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:15:"Music and Video";}s:11:"description";s:0:"";s:5:"image";s:62:"/~daemondevin/portableapps/uploads/2026/10/flstudio-3fa831.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"FL Studio Portable v25.1 released!";s:5:"words";i:915;s:7:"minutes";i:5;s:5:"plain";s:4000:"fl studio portable v25.1 released < more a portable launcher for fl studio https://www.image line.com/fl studio/ , the digital audio workstation by image line, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when fl studio closes, or on the next launch if something went wrong. the package doesn't include or handle fl studio's licensing: use it with a copy of fl studio you're licensed to run. pacman : https://github.com/daemondevin/pac man system requirements windows 10 or later, 64 bit. fl studio has no 32 bit version; on windows 11 on arm the x64 version runs emulated. no administrator rights. fl studio runs with your normal rights, so dragging samples, presets and projects into it from explorer works. data on a local drive a usb drive is fine; a network share isn't . see data data . portableapps.com platform https://portableapps.com/download optional . downloads direct link https://github.com/daemondevin/portableapps/releases/download/1.0/flstudioportable 25.1 english.paf.exe mirror https://drive.proton.me/urls/zv53s7tf0w r8kw0f6g3duk configuration flstudioportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\flstudioportable.ini over it. ini flstudioportable additionalparameters= disablesplashscreen=false runlocally=false scaled=false symlinks=true key default what it does scaled false start fl64 scaled .exe instead of fl64.exe . windows scales that version up on high dpi screens, like the "fl studio scaled " shortcut of an installed fl studio. symlinks true link fl studio's folders into data while it runs. with false , fl studio uses the folders on the computer and nothing in them travels with the package. additionalparameters empty extra command line switches passed to fl studio. disablesplashscreen false don't show the launcher's splash screen. runlocally false copy fl studio to the temp folder and run it from there, for read only media. changes made in that session aren't saved back. opening a project or sample from the portableapps.com platform while fl studio runs hands it to the running fl studio. data while fl studio runs, these are linked into data with ntfs junctions, so nothing is copied back and forth: fl studio uses kept in documents\image line the user data folder: projects, presets, recordings, renders, hardware scripts, settings files data\image line %appdata%\image line data\appdata\image line %programdata%\fl cloud plugins data\programdata\fl cloud plugins if an installed fl studio already has one of these folders, it's moved aside for the session and put back when fl studio portable closes. the one exception is fl cloud plugins : an installed fl studio's copy of it belongs to the administrator, so the launcher can't always move it. then it's left in place and fl studio portable uses it for that session. fl studio's registry settings, hkcu\software\image line its preferences, and its registration once you've unlocked it , are kept in data\settings\image line.reg . they're loaded when fl studio starts and saved when it closes, whatever fl studio version wrote them. an installed fl studio's settings are put back afterwards. close an installed fl studio before starting fl studio portable; the launcher won't start while one is open. important junctions can only point to a local drive. running from a network share isn't supported. coming from an earlier fl studio portable the first launch takes over what earlier packages kept, so nothing has to be moved by hand: data\settings\flstudio.reg and ilreg.reg are loaded once and saved as image line.reg . the old files are left alone and can be deleted afterwards. data\appdata and data\programdata held the contents of %appdata%\image line and fl cloud plugins directly. they're moved one folder down, to data\appdata\image line and data\programdata\fl cloud plugins . registry besides hkcu\software\image line , the launc";}i:9;a:15:{s:4:"slug";s:23:"github-desktop-portable";s:5:"title";s:23:"GitHub Desktop Portable";s:4:"date";s:16:"2026-10-21 09:59";s:7:"updated";s:16:"2026-10-21 10:12";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:60:"/~daemondevin/portableapps/uploads/2026/10/github-4724ea.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:40:"GitHub Desktop Portable v3.6.7 released!";s:5:"words";i:1239;s:7:"minutes";i:6;s:5:"plain";s:4000:"github desktop portable v3.6.7 released < more github desktop portable github desktop portable is a portable build of github desktop https://desktop.github.com/ , github's open source app for working with git and github repositories. it runs the build that's native to the computer x64 or arm64 and keeps itself up to date. it's built with the portableapps compiler https://github.com/daemondevin/pac man pac man : every change it makes to windows is recorded first and undone when github desktop closes, or on the next launch if something went wrong. download downloads are in the releases section https://github.com/daemondevin/githubdesktopportable/releases . the package is in portableapps.com https://portableapps.com/ format, so it installs into the portableapps.com platform or any folder you like. features the full github desktop, with its bundled git. native on every pc: x64 and arm64 builds. on windows on arm the launcher downloads and runs the arm64 build instead of running x64 under emulation. see builds builds updates itself: checks github's official downloads at start and updates the builds the package has. a failed or interrupted update keeps the version you had. see updates updates your data travels with it: settings, the repository list, and the repositories you clone into the default folder are kept in data . see data data leaves the pc's git alone: your git name and email live in data\.gitconfig , not in the pc's .gitconfig . leaves nothing behind: the x github client , x github desktop auth and github windows links github desktop registers for itself only exist while it runs. an installed github desktop's links are put back exactly as they were. no administrator rights: everything is done for the current user only. system requirements windows 10 or later, 64 bit x64 or arm64 . github desktop has no 32 bit build. portableapps.com platform https://portableapps.com/download optional . an internet connection for updates and for working with github. data on a local drive a usb drive is fine; a network share isn't . see data data . configuration githubdesktopportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\githubdesktopportable.ini over it. ini githubdesktopportable additionalparameters= runlocally=false updatecheck=true architecture=auto key values default what it does updatecheck true , false true check for a new github desktop at start and offer to update. architecture auto , x64 , arm64 auto which build to run. auto picks the native one. additionalparameters text empty extra command line switches passed to github desktop. runlocally true , false false copy github desktop to the temp folder and run it from there. builds folder build runs on app\githubdesktop x64 x64 windows, and windows 11 on arm under emulation app\githubdesktoparm64 arm6 4 arm64 windows the package ships the x64 build. the first time it starts on arm64 windows with updatecheck=true , it offers to download the arm64 build; until then the x64 build runs under emulation. if the build the launcher wants is missing, it falls back to the other one instead of failing to start. to force a build, set architecture=x64 or arm64 . the arm64 build can only be forced on arm64 windows. updates with updatecheck=true , the launcher asks github for the latest github desktop each time it starts, the same download links the github desktop website https://desktop.github.com/ uses. when there's a newer version for a build the package has, it asks before doing anything. an update is all or nothing: 1. every installer is downloaded, with a progress bar. if a download fails, nothing changes. 2. github desktop is unpacked straight out of each installer, next to the current build. the installer is never run, so nothing gets installed on the pc. if anything can't be unpacked, or isn't the version github announced, nothing changes. 3. the new builds are swapped in. each swap is recorded firs";}i:10;a:15:{s:4:"slug";s:20:"komodo-edit-portable";s:5:"title";s:20:"Komodo Edit Portable";s:4:"date";s:16:"2026-10-21 12:28";s:7:"updated";s:16:"2026-10-22 21:02";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:64:"/~daemondevin/portableapps/uploads/2026/10/komodoedit-838d59.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:38:"Komodo Edit Portable v12.0.1 released!";s:5:"words";i:561;s:7:"minutes";i:3;s:5:"plain";s:3781:"komodo edit portable v12.0.1 released < more komodo edit portable a portable launcher for komodo edit ko , activestate's free multi language code editor, built with the portableapps compiler pacman pac man . everything komodo changes on the pc is recorded first and undone when komodo closes, or on the next launch if something went wrong. activestate has stopped developing komodo; version 12 is the last release, and its source is on github https://github.com/komodo/komodoedit . ko : https://www.activestate.com/products/komodo edit/ pacman : https://github.com/daemondevin/pac man download https://drive.proton.me/urls/djcgqnekac byv4dxxeaelh system requirements windows 7 or later. no administrator rights. portableapps.com platform https://portableapps.com/download optional . configuration komodoeditportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\komodoeditportable.ini over it. ini komodoeditportable additionalparameters= runlocally=false key default what it does additionalparameters empty extra command line switches passed to komodo. runlocally false copy komodo to the temp folder and run it from there, for read only media. changes made in that session aren't saved back. launching the package again while komodo runs passes the files to the running komodo. data komodo keeps its settings, toolbox, projects list and mozilla profile in one folder per version. the launcher points komodo at data\activestate\komodoedit with komodo's own komodo userdatadir setting, so the folder for version 12 is data\activestate\komodoedit\12.0 . nothing is copied, linked or moved, and an installed komodo edit keeps its own settings. new projects go to data\workspace unless you change the project folder in komodo's preferences. when the package moves another drive letter or folder , the paths komodo remembered inside the package are updated in its preferences and mozilla's add on list. mozilla's startup cache is cleared after each session, since it holds those paths too; komodo rebuilds it on the next start. what's cleaned up komodo and the mozilla platform it's built on make a few folders outside its settings folder: %appdata%\activestate\komodo edit crash reports %localappdata%\activestate\komodo edit the update folder %localappdata%\activestate\komodoedit %appdata%\mozilla any of these that didn't exist before komodo started is removed when it closes, or on the next launch if komodo didn't close properly. folders that already existed from an installed komodo are left alone. %appdata%\mozilla is also where firefox and thunderbird keep their profiles, so it's only removed when komodo made it and no mozilla program has started using it since. if something goes wrong if komodo edit portable didn't close properly a crash, a power cut, a usb drive pulled out , the next launch tells you and undoes everything the last session changed before it starts again. when reporting a problem, please include an export of the hkey current user\software\pac man\journal registry key and the contents of %localappdata%\pac man\journal . building from source the launcher is built with the portableapps compiler pacman . its configuration lives in app\appinfo : file contents app\appinfo\appinfo.ini package details, version and file types app\appinfo\launcher\komodoeditportable.ini the launcher configuration: the data folder, the folders to clean up and the path updates app\appinfo\launcher\custom.nsh cleaning up the folders komodo makes outside data credits komodo edit is developed by activestate software inc. portableapps.com platform https://portableapps.com/download by portableapps.com https://portableapps.com/ . portableapps compiler pacman developed by daemon.devin. ";}i:11;a:15:{s:4:"slug";s:19:"komodo-ide-portable";s:5:"title";s:19:"Komodo IDE Portable";s:4:"date";s:16:"2026-10-22 21:02";s:7:"updated";s:16:"2026-10-22 21:09";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:63:"/~daemondevin/portableapps/uploads/2026/10/komodoide-f473e6.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:43:"Komodo IDE Portable v12.0.1-91869 released!";s:5:"words";i:557;s:7:"minutes";i:3;s:5:"plain";s:3738:"komodo ide portable v12.0.1 91869 released < more a portable launcher for komodo ide ko , activestate's multi language ide, built with the portableapps compiler pacman pac man . everything komodo changes on the pc is recorded first and undone when komodo closes, or on the next launch if something went wrong. activestate has stopped developing komodo; version 12 is the last release, and its source is on github https://github.com/komodo/komodoedit . ko : https://www.activestate.com/products/komodo ide/ pacman : https://github.com/daemondevin/pac man system requirements windows 7 or later. no administrator rights. portableapps.com platform https://portableapps.com/download optional . download https://drive.proton.me/urls/nev7ae65h4 0r4wne0i6fhx configuration komodoideportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\komodoideportable.ini over it. ini komodoideportable additionalparameters= runlocally=false key default what it does additionalparameters empty extra command line switches passed to komodo. runlocally false copy komodo to the temp folder and run it from there, for read only media. changes made in that session aren't saved back. launching the package again while komodo runs passes the files to the running komodo. data komodo keeps its settings, toolbox, projects list and mozilla profile in one folder per version. the launcher points komodo at data\activestate\komodoide with komodo's own komodo userdatadir setting, so the folder for version 12 is data\activestate\komodoide\12.0 . nothing is copied, linked or moved, and an installed komodo ide keeps its own settings. new projects go to data\workspace unless you change the project folder in komodo's preferences. when the package moves another drive letter or folder , the paths komodo remembered inside the package are updated in its preferences and mozilla's add on list. mozilla's startup cache is cleared after each session, since it holds those paths too; komodo rebuilds it on the next start. what's cleaned up komodo and the mozilla platform it's built on make a few folders outside its settings folder: %appdata%\activestate\komodo ide crash reports %localappdata%\activestate\komodo ide the update folder %localappdata%\activestate\komodoide %appdata%\mozilla any of these that didn't exist before komodo started is removed when it closes, or on the next launch if komodo didn't close properly. folders that already existed from an installed komodo are left alone. %appdata%\mozilla is also where firefox and thunderbird keep their profiles, so it's only removed when komodo made it and no mozilla program has started using it since. if something goes wrong if komodo ide portable didn't close properly a crash, a power cut, a usb drive pulled out , the next launch tells you and undoes everything the last session changed before it starts again. when reporting a problem, please include an export of the hkey current user\software\pac man\journal registry key and the contents of %localappdata%\pac man\journal . building from source the launcher is built with the portableapps compiler pacman . its configuration lives in app\appinfo : file contents app\appinfo\appinfo.ini package details, version and file types app\appinfo\launcher\komodoideportable.ini the launcher configuration: the data folder, the folders to clean up and the path updates app\appinfo\launcher\custom.nsh cleaning up the folders komodo makes outside data credits komodo ide is developed by activestate software inc. portableapps.com platform https://portableapps.com/download by portableapps.com https://portableapps.com/ . portableapps compiler pacman developed by daemon.devin. ";}i:12;a:15:{s:4:"slug";s:24:"mozilla-firefox-portable";s:5:"title";s:24:"Mozilla Firefox Portable";s:4:"date";s:16:"2026-10-26 01:23";s:7:"updated";s:16:"2026-10-26 01:30";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:8:"Internet";}s:11:"description";s:0:"";s:5:"image";s:61:"/~daemondevin/portableapps/uploads/2026/10/firefox-304d90.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"Mozilla Firefox Portable released!";s:5:"words";i:1509;s:7:"minutes";i:7;s:5:"plain";s:4000:"mozilla firefox portable released < more a portable launcher for firefox https://www.mozilla.org/firefox/ , built with the portableapps compiler pacman pac man . it keeps your profile in the package, installs firefox from mozilla on the first launch and keeps it up to date itself. every change it makes to windows is recorded first and undone when firefox closes, or on the next launch if something went wrong. firefox and the firefox logos are trademarks of the mozilla foundation. this package isn't made or endorsed by mozilla; it runs mozilla's own, unmodified firefox builds. pacman : https://github.com/daemondevin/pac man system requirements windows 10 or later what current firefox needs . an internet connection for the first launch and for updates. portableapps.com platform https://portableapps.com/download optional . downloads direct link https://github.com/daemondevin/portableapps/releases/download/1.0/firefoxportable x.x.x.paf.exe mirror https://drive.proton.me/urls/ytf51yhxr4 jtiaiddayqfs first launch the package doesn't include firefox. the first launch offers to download it: 1. it asks mozilla which version is current product details.mozilla.org . 2. it downloads the full windows installer from archive.mozilla.org : the 64 bit edition on 64 bit windows, the 32 bit one otherwise. 3. it checks the download against the sha 512 checksum mozilla publishes for that exact file. a download that doesn't match is never used. 4. it unpacks the installer with its own /extractdir option, which writes the program files to a folder and stops, without installing anything, and puts them in app\firefox64 or app\firefox . then firefox starts. if you say no, or the download fails, nothing is left behind and the launcher stops. updates firefox's built in updater is turned off: it needs the mozilla maintenance service or administrator rights for some updates, and writes its state to %programdata% . the launcher does the updating instead, the same way as the first install: before firefox starts, at most once every updateinterval days, it asks mozilla for the latest version on your channel. if there's a newer one, it asks whether to update now updatecheck=ask , or just does it updatecheck=auto . say no and firefox starts as it is; you're asked again after the interval. the new firefox is downloaded and checked as above, then swapped in. the old folder is kept until the new one is in place, and the swap is journaled: if the launcher is stopped halfway, the next launch puts the old firefox back. your additions to the firefox folder are carried over: the distribution folder your own policies, bundled add ons , preference files in defaults\pref and autoconfig files .cfg . if anything fails no connection, a checksum that doesn't match , it says why and starts the firefox you have. both editions are updated when the package has both. if you only use one, delete the other folder to halve the download. to stop firefox's own updater, the launcher puts a policies.json in each firefox folder's distribution folder it also turns off the default browser check and the default browser agent . because of that policy, firefox's settings page says your browser is being managed by your organization . if you put your own policies.json there, the launcher leaves it alone; include "disableappupdate": true in it. configuration firefoxportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\firefoxportable.ini over it. ini firefoxportable additionalparameters= updatecheck=ask updatechannel=release updateinterval=1 locale= key default what it does updatecheck ask ask asks before updating, auto updates without asking, off never checks. updatechannel release release or esr extended support release https://www.mozilla.org/firefox/enterprise/ . updateinterval 1 days between update checks. 0 checks on every launch. locale empty firefox's language as mozilla names it: en us , de , fr , pt br ,";}i:13;a:15:{s:4:"slug";s:19:"o-o-defrag-portable";s:5:"title";s:19:"O&O Defrag Portable";s:4:"date";s:16:"2026-10-22 21:50";s:7:"updated";s:16:"2026-10-23 19:15";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:9:"Utilities";}s:11:"description";s:0:"";s:5:"image";s:62:"/~daemondevin/portableapps/uploads/2026/10/oodefrag-5e566d.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:46:"O&O Defrag Portable v30.0 Build 1056 released!";s:5:"words";i:667;s:7:"minutes";i:4;s:5:"plain";s:4000:"o&o defrag portable v30.0 build 1056 released < more a portable launcher for oo defrag professional https://www.oo software.com/en/oodefrag , built with the portableapps compiler https://github.com/daemondevin/pac man pac man . every change it makes to windows is recorded first and undone when o&o defrag closes, or on the next launch if something went wrong. o&o defrag is commercial software. the package doesn't include or handle a license: enter your own license in o&o defrag. system requirements windows 10 or 11, 64 bit. o&o defrag professional has no 32 bit version, and can't be used on windows server. administrator rights: o&o defrag does its work through a windows service. the .net 8 desktop runtime x64 . if it's missing, the launcher offers to install it from app\prerequisites . that install stays on the computer, since other programs may come to rely on it. data on a local drive a usb drive is fine; a network share isn't . portableapps.com platform https://portableapps.com/download optional . downloads direct link https://github.com/daemondevin/portableapps/releases/download/1.0/o odefragportable 30.0 build 1056.paf.exe configuration o&odefragportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\o&odefragportable.ini over it. ini o&odefragportable additionalparameters= disablesplashscreen=false symlinks=true key default what it does symlinks true link o&o defrag's data folder into data while it runs. with false , it uses the folder on the computer. additionalparameters empty extra command line switches passed to o&o defrag. disablesplashscreen false don't show the launcher's splash screen. what happens while it runs change undone by the oodefragagent service, which does the actual defragmenting, is created pointing at the package and started. an installed o&o defrag's agent is pointed at the package instead. deleting the service, or putting the installed agent back as it was the drive map control oodpeo.ocx is registered. an installed o&o defrag's registration is backed up first. unregistering it and restoring the backup hklm\software\o&o\o&o defrag settings, jobs and your licence is loaded from data\settings\o&odefrag.reg saving it back to data, then restoring what was there before %localappdata%\oo software\oo defrag is linked to data\oo defrag with an ntfs junction removing the junction and putting back anything that was there close an installed o&o defrag, including its tray icon, before starting o&o defrag portable. the launcher waits for o&o defrag's tray icon and update check to close before it removes the service. important junctions can only point to a local drive. running from a network share isn't supported. if something goes wrong if o&o defrag portable didn't close properly a crash, a power cut, a usb drive pulled out , the next launch tells you and undoes everything the last session changed. start it again afterwards. settings changed in the session that crashed aren't saved. when reporting a problem, please include an export of the hkey current user\software\pac man\journal registry key and the contents of %localappdata%\pac man\journal . building from source the launcher is built with the portableapps compiler https://github.com/daemondevin/pac man . its configuration lives in app\appinfo : file contents app\appinfo\appinfo.ini package details and version app\appinfo\launcher\o&odefragportable.ini the launcher configuration: the service, the drive map control, the data link and the .net check app\appinfo\launcher\custom.nsh the portable registry settings app\\prerequisites must hold windowsdesktop runtime 8.0.21 win x64.exe the .net 8 desktop runtime, which includes the base runtime . update the name in the launcher configuration if you ship a newer one. credits o\&o defrag is developed by o\&o software gmbh https://www.oo software.com/ . portableapps.com platform https://portableapps.com/download by portableapps.com ht";}i:14;a:15:{s:4:"slug";s:22:"o-o-regeditor-portable";s:5:"title";s:22:"O&O RegEditor Portable";s:4:"date";s:16:"2026-10-25 21:57";s:7:"updated";s:16:"2026-10-25 22:03";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:9:"Utilities";}s:11:"description";s:0:"";s:5:"image";s:65:"/~daemondevin/portableapps/uploads/2026/10/ooregeditor-6288b7.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:43:"O&O RegEditor Portable v16.1.6660 released!";s:5:"words";i:968;s:7:"minutes";i:5;s:5:"plain";s:4000:"o&o regeditor portable v16.1.6660 released < more a portable launcher for oo regeditor https://www.oo software.com/en/ooregeditor , o&o software's free registry editor: full text search with a results list, favorites, an address bar that takes pasted key paths, and copying and moving of whole keys. it's built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when o&o regeditor closes, or on the next launch if something went wrong. o&o regeditor isn't included: o&o's license only allows it to be passed on unmodified and on its own, and counts packaging it in an installer or wrapper as a modification. you add it youself. pacman : https://github.com/daemondevin/pac man system requirements windows vista or later, 32 bit or 64 bit o&o regeditor 12 . administrator rights. o&o regeditor is built to always run as an administrator, so the launcher asks for them uac every time. portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/o oregeditorportable 16.1.6660.paf.exe mirror https://drive.proton.me/urls/qq9wryn0pr ebmtgm9di7zh adding o&o regeditor 1. download o&o regeditor from oo software.com https://www.oo software.com/en/ooregeditor . 2. extract or copy its program files into this package's app\ooregeditor folder: ooregedt.exe , ooregedt32.exe , and the en and de folders. 3. start o&oregeditorportable.exe . until the program is there, the launcher says which folder to copy and where, offers to open the app folder, and stops. on 64 bit windows it starts ooregedt.exe , the 64 bit edition, which sees the whole registry without wow64 redirection; on 32 bit windows it starts ooregedt32.exe . configuration o&oregeditorportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\o&oregeditorportable.ini over it. ini o&oregeditorportable additionalparameters= language=auto key default what it does language auto en or de sets the language. auto follows the portableapps.com platform's language when started from the platform german for german, english for everything else , and otherwise leaves the choice to o&o regeditor, which goes by the system locale. additionalparameters empty extra command line switches passed to o&o regeditor. o&o regeditor has no language setting of its own: it uses the language whose folder is there. to set one, the launcher renames the other folder de becomes de.off for the session and puts it back when o&o regeditor closes. data o&o regeditor keeps every setting in ooregedt.ini next to the program, shared by both editions: the window and toolbar layout, favorites, the address bar history and the last key opened. it's kept in data\ooregedt.ini and moved into place while o&o regeditor runs. if o&o regeditor was started without the launcher, its ooregedt.ini is left in app\ooregeditor . the next launch takes it into data , or, if data already has one, keeps it as data\ooregedt.found.ini , so neither is lost. what o&o regeditor changes, and how it's undone o&o regeditor changes put back when it closes always open .reg files with o&o regeditor : the default value of .reg in hklm\software\classes or hkcu\software\classes if you have your own .reg entry there put back exactly as it was, normally regfile the ooregedit.document file type it registers for that, in the same places removed, or put back as it was the de or en folder set aside for the language see above put back explorer can't open a .reg file with a program on a drive that isn't there, which is why the association only lasts while o&o regeditor runs. to open .reg files with it from the portableapps.com platform, use the platform's own file type associations. everything you change in the registry with o&o regeditor is, of course, not undone: that's what a registry editor is for. export a key before changing it. updates o&o re";}i:15;a:15:{s:4:"slug";s:8:"portable";s:5:"title";s:13:"PortableApps?";s:4:"date";s:16:"2026-10-02 09:05";s:7:"updated";s:16:"2026-10-21 09:25";s:6:"status";s:9:"published";s:4:"type";s:4:"page";s:4:"tags";a:0:{}s:11:"description";s:128:"Explains what a portable application is, it's pros and cons, what PortableApps.com is, it's competitors, and why PAC-MAN exists.";s:5:"image";s:66:"/~daemondevin/portableapps/uploads/2026/10/portableapps-af922c.jpg";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:203:"A portable application is a program that runs from its own folder without being installed and keeps everything it needs, including its settings, inside that folder. You can copy the folder to a USB dr…";s:5:"words";i:1979;s:7:"minutes";i:9;s:5:"plain";s:4000:"a portable application is a program that runs from its own folder without being installed and keeps everything it needs, including its settings, inside that folder. you can copy the folder to a usb drive, an external ssd, a cloud synced directory, or another pc, and it runs the same way with the same configuration. there are two kinds: 1. natively portable apps are written to keep their config next to the executable and avoid the registry, so they just work from any folder. 2. portablized apps are normal apps that expect to be installed and write to the registry and %appdata% . a launcher such as pal or pac man makes them portable by staging their settings onto the host when the app starts, redirecting paths, and moving everything back into the app's data folder and cleaning up when it closes. benefits no installation or admin rights needed. useful on locked down work, school, or client machines. your setup goes with you. settings, extensions, history, and plugins are the same on every machine. host machines stay clean. no leftover registry keys, appdata folders, or uninstall entries. easy backup and versioning. an app is a folder. you can copy it, archive it, or roll back by restoring an older copy. multiple versions side by side. you can run a stable and a beta version, or an old version for compatibility, without conflicts. safe testing. you can try software without committing your system to it. disaster recovery. a drive full of diagnostic and repair tools works on a machine that won't install anything. simple deployment. for your own tools, distribution is just a zip or a paf.exe installer. downsides technical limits not everything can be made portable. services, kernel drivers, shell extensions, com servers, and anything that needs admin rights to register either can't be made portable or need special handling and admin rights on the host anyway, which defeats much of the point. this is the hardest part of portablizing. weak system integration. file associations, context menu entries, default app status, and "open with" mostly don't exist unless the launcher temporarily registers them. cleanup depends on the exit. if the app crashes, the host loses power, or the drive is pulled, staged registry keys and files can be left on the host and the portable data folder may not be updated. this is the main reason crash resilience matters. path rewriting can break. apps that store absolute paths in config files, databases, or binary blobs can fail when the drive letter changes, unless the launcher knows about every place those paths are stored. conflicts with installed copies. running a portable app while the same app is installed locally can cause profile clashes or single instance locks. performance and hardware slow media. cheap usb sticks have poor random read and write speeds, so large apps such as office suites, ides, and browsers with big profiles can feel slow. flash wear. apps that write caches heavily wear down low end flash drives over time. startup overhead. launchers that copy settings in and out add time when the app starts and closes, which is noticeable with large profiles. security and policy antivirus false positives. unsigned nsis launchers that modify the registry and move files look suspicious to heuristic scanners, and defender for endpoint in particular flags them. portableapps had to ship a defender specific fix as recently as platform 30.1.3. lost or stolen drives. your browser profile, saved sessions, and credentials are on a small, easily lost device unless you encrypt it. untrusted hosts. running your apps on someone else's pc exposes your data to whatever that machine has on it, such as keyloggers or malware. corporate blocking. many organizations block executables from removable drives or user writable paths through applocker or wdac, which stops portable apps completely. not completely traceless. windows itself records some activity outside the app's control, including prefetch, recent files lists, j";}i:16;a:15:{s:4:"slug";s:21:"portableapps-compiler";s:5:"title";s:21:"PortableApps Compiler";s:4:"date";s:16:"2026-10-23 14:18";s:7:"updated";s:16:"2026-10-23 14:44";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:7:"PAC-MAN";}s:11:"description";s:0:"";s:5:"image";s:61:"/~daemondevin/portableapps/uploads/2026/10/pac-man-9a4a22.jpg";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:36:"PortableApps Compiler v3.0 released!";s:5:"words";i:707;s:7:"minutes";i:4;s:5:"plain";s:4000:"portableapps compiler v3.0 released < more portableapps compiler portableapps compiler & management portableapps compiler or pac man for short is an enhanced, compatibility aware launcher framework inspired by the portableapps.com launcher pal . it is designed to support complex, modern and legacy windows applications that pal intentionally does not target. pac man's framework is built on top of pal and still produces packages that follow the portableapps.com format https://portableapps.com/manuals/portableapps.comlauncher/ref/paf/index.html portableapps com format specification . pac man does not replace pal. it augments pal by adding: structured lifecycle segments crash recovery guarantees explicit rollback journaling windows 10/11 compliant integration patterns pac man is designed to behave like a transactional runtime environment , not an installer. it exists to solve a different class of problems than pal. download https://github.com/daemondevin/pac man/releases/tag/v3.0 design principles 1. no permanent system mutation 2. every mutation must be reversible 3. recovery must not depend on successful startup 4. user scope first, system scope only when required 5. deterministic execution order 6. fail closed, not open the one deliberate exception to the first two is installing a shared runtime visual c++ or .net system wide: it can't safely be removed again, because other programs may start using it. the runtime segment only does that when the user agrees in a prompt that says it is permanent, and prefers a portable copy whenever one is available. functional comparison feature pal pac man crash recovery limited journal based file associations not supported user scoped url protocols not supported supported windows services not supported temporary firewall rules not supported reversible scheduled tasks not supported session bound com registration minimal fully tracked fonts limited fully reversible hosts file not supported transactional windows 11 compliance partial explicit the pac man column describes the target behavior. the implementation status implementation status table shows how far each row has got. crash recovery model crash recovery in pac man is: deterministic , not heuristic journal driven , not best effort idempotent , safe to re run if pac man detects that a previous session ended unexpectedly, it recovers first , before any new changes are made. the check runs right after the instance mutex checks, so only the primary instance can recover: if another launcher for the same app is alive, its journal is not stale and is left alone. a segment cleans up after itself with the same rollback call that crash recovery uses, so the normal shutdown path and the recovery path are one and the same code. the unload step also rolls back anything a segment left behind, as a safety net. when launch :waitforprogram=false the launcher exits while the app is still running, so its changes have to outlive the launcher. in that case the session is marked detached and the next launch rolls it back quietly. intended use cases pac man is suitable for portable developer tools, security tooling, controlled enterprise environments and forensic or sandbox workflows. it is not intended for silent system takeover, persistent background services or circumventing os security policies. documentation check out the wiki section for various related articles related to creating portableapps. the wiki serves who need a quick reminder on certain functions and macros for use within the custom.nsh file. as an added bonus, all not yet but most of the source code i've used here is outlined and better explained/documented there as well. for instance, a short guide on registering dlls and all the macros i used to create the registerdll.nsh segment can be found in the wiki. you can also find an exhaustive tutorial on dealing with windows services; plus it explains what each macro is and does within the services.nsh segment and how to use them in action. visit ";}i:17;a:15:{s:4:"slug";s:17:"ripx-daw-portable";s:5:"title";s:17:"RipX DAW Portable";s:4:"date";s:16:"2026-10-25 20:42";s:7:"updated";s:16:"2026-10-25 21:56";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:15:"Music and Video";}s:11:"description";s:0:"";s:5:"image";s:58:"/~daemondevin/portableapps/uploads/2026/10/ripx-93bf78.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"RipX DAW Portable v7.0.2 released!";s:5:"words";i:882;s:7:"minutes";i:5;s:5:"plain";s:4000:"ripx daw portable v7.0.2 released < more a portable launcher for ripx daw https://hitnmix.com/ , hit'n'mix's stem separation and audio editing workstation, built with the portableapps compiler pacman pac man . every change it makes to windows is recorded first and undone when ripx closes, or on the next launch if something went wrong. the package doesn't include or handle ripx's licensing: use it with a copy of ripx daw you're licensed to run. pacman : https://github.com/daemondevin/pac man system requirements windows 10 or later, 64 bit. ripx daw has no 32 bit version. administrator rights for the launcher. ripx itself runs with your normal rights see drag and drop drag and drop . data on a local drive a usb drive is fine; a network share isn't . see data data . portableapps.com platform https://portableapps.com/download optional . downloads direct link https://github.com/daemondevin/portableapps/releases/download/1.0/flstudioportable 25.1 english.paf.exe mirror https://drive.proton.me/urls/9bx2pcw1p8 tw7jk8f73r3i drag and drop windows doesn't let explorer, or any other program running with normal rights, drag files into a program that runs as administrator. so a launcher that runs ripx elevated also breaks dragging audio files into it. the launcher still needs administrator rights for the machine wide registry key ripx reads see registry registry . but once it has set that up, it starts ripx the way explorer would: with the rights of the signed in user, using explorer's own credentials. dragging audio into ripx from explorer, the desktop and other programs then works as it does with an installed ripx. a second launch while ripx runs opening a rip from the portableapps.com platform, for example isn't elevated at all, so there's no uac prompt. it hands its files to the running ripx. if the launcher was elevated with a different account's password a standard user typing an administrator's password , ripx has to run as that administrator, and dragging from your own explorer can't work. signing in with an account that is an administrator avoids that. configuration ripxdawportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\ripxdawportable.ini over it. ini ripxdawportable additionalparameters= disablesplashscreen=false symlinks=true key default what it does symlinks true link ripx's folders into data while it runs. with false , ripx uses the folders on the computer and nothing in them travels with the package. additionalparameters empty extra command line switches passed to ripx. disablesplashscreen false don't show the launcher's splash screen. data while ripx runs, these are linked into data with ntfs junctions, so nothing is copied back and forth. that matters here: a single rip is often several hundred megabytes. ripx uses kept in documents\ripx rips, stems, loops, sound palettes, riplists, ripscripts data\ripx %appdata%\hit'n'mix shared instrument data data\hit'n'mix if an installed ripx already has one of these folders, it's moved aside for the session and put back when ripx daw portable closes. ripx's preferences, hkcu\software\hitnmix\hitnmix\kit , are kept in data\settings\ripx.reg . they're loaded when ripx starts and saved when it closes; an installed ripx's preferences are put back afterward. close an installed ripx before starting ripx daw portable; the launcher won't start while one is open. important junctions can only point to a local drive. running from a network share isn't supported. registry ripx reads where its resources are, and the user details its installer leaves, from hklm\software\hitnmix . without them it treats itself as a broken installation. for the session, the launcher writes what ripx's installer would, pointing at the package: hitnmix\applicationpath : the package's ripx.exe hitnmix\kit\datapath : resourcepath and hitnmixsharedpath , the package's app\ripxdaw folder hitnmix\kit\user info : the installer's defau";}i:18;a:15:{s:4:"slug";s:15:"vscode-portable";s:5:"title";s:15:"VSCode Portable";s:4:"date";s:16:"2026-10-19 09:26";s:7:"updated";s:16:"2026-10-21 09:49";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:60:"/~daemondevin/portableapps/uploads/2026/10/vscode-ba98fa.jpg";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"VSCode Portable v1.142.0 released!";s:5:"words";i:1135;s:7:"minutes";i:6;s:5:"plain";s:4000:"vscode portable v1.142.0 released < more visual studio code portable vs code portable is a portable version of the popular visual studio code https://code.visualstudio.com/ application. support to recompile this paf you must use my portableapps compiler https://github.com/daemondevin/pac man . download all downloads available in the releases section https://github.com/daemondevin/vscodeportable/releases/latest . this portable application was packaged using a modified version of the portableapps.com http//portableapps.com/ launcher. features runs the full visual studio code desktop app. completely portable runs off a usb, cloud drive dropbox, icloud drive, onedrive, etc or hard drive. no need for any external software simply download extract and run packaged in portableapps.com format for easy integration. user configuration file for advanced portable settings see configuration configuration below allows for some developmental environments to be recognized by visual studio code across various devices see environments environments below open with entries and an open with code portable context menu while it runs, removed again on exit see associations associations below installs bundled vsix extensions, each one once. see vsix installations vsix installs below self sustaining; no need to update this package as it should update itself, showing the download's progress. an update that fails or is interrupted puts the previous version back. crash safe: everything the launcher changes on the computer is journaled and undone on exit, or on the next launch if it was interrupted. system requirements microsoft windows 10 or later. portableapps.com platform http://portableapps.com/download optional configuration an optional user configuration file called vscodeportable.ini is available in the vs code portable root directory i.e. vscodeportable\vscodeportable.ini . if this file somehow becomes corrupted or you just need to go back to a default state, there's a default user configuration file located in the source folder located at .\other\source\vscodeportable.ini copy this file to the root directory next to the launcher file vscodeportable.exe to reset these options. refer to the example example section for a brief explanation for each user configuration option. example ini vscodeportable additionalparameters= runlocally=false banner=true fileassociations=true updatecheck=true installvsix=false = environment settings ; uncomment the configurations below to use them ;git=%pal:commonfiles%\git ;python=%pal:commonfiles%\python ;nodejs=%pal:commonfiles%\node.js = advanced settings ; uncomment the configurations below to use them ;githomepath=true ;pythonuserpath=true ;nodeprefixpath=true = banner= ; enable or disable the initialization banner. = updatecheck= ; enable or disable automatic portable updating. = installvsix= ; enable or disable the installation of vsix files found in ; .\app\defaultdata\code\extensions. each file is offered once. = fileassociations= ; turn the open with entries and the open with code portable context menu ; on or off true false . everything is removed again when vs code closes. ; for more information refer to the readme.txt file located at: ; .\other\source\readme.txt = additionalparameters= ; pass additional command line switches. = runlocally= ; application is copied to & executed from $temp directory. = git= ; path to the git directory = githomepath= ; change git home path to "data\git\home" = python= ; path to the python directory = pythonuserpath= ; change python user path to "data\python" = nodejs= ; path to the nodejs directory = nodeprefixpath= ; change node.js npm prefix path to "data\node.js\npm" environments vs code portable has support for certain development environments i.e. git , node.js , etc . preconfigured environments to set up your development environments, follow the steps below. 1. using your preferred text editor, open the optional user configuration file located in the base directory i.e. v";}i:19;a:15:{s:4:"slug";s:18:"webuilder-portable";s:5:"title";s:18:"WeBuilder Portable";s:4:"date";s:16:"2026-10-22 21:10";s:7:"updated";s:16:"2026-10-23 19:19";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:1:{i:0;s:11:"Development";}s:11:"description";s:0:"";s:5:"image";s:63:"/~daemondevin/portableapps/uploads/2026/10/webuilder-c95005.png";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:34:"WeBuilder Portable v18.4 released!";s:5:"words";i:452;s:7:"minutes";i:3;s:5:"plain";s:3068:"webuilder portable v18.4 released < more a portable launcher for webuilder https://www.webuilderapp.com/ , the all in one code editor by karlis blumentals, built with the portableapps compiler https://github.com/daemondevin/pac man pac man . webuilder is commercial software. the package doesn't include or handle a licence: register webuilder with your own licence from inside webuilder. system requirements windows 10 or later. no administrator rights. webuilder runs with your normal rights, so dragging files into it from explorer works. data on a local drive a usb drive is fine; a network share isn't . portableapps.com platform https://portableapps.com/download optional . download direct link https://github.com/daemondevin/portableapps/releases/download/1.0/webuilderportable 18.4 english.paf.exe configuration webuilderportable.ini , next to the launcher, holds the user settings. if it gets damaged, or you want to go back to the defaults, copy other\source\webuilderportable.ini over it. ini webuilderportable additionalparameters= disablesplashscreen=false firefox= chrome= opera= difftool= key default what it does firefox , chrome , opera empty browsers webuilder previews pages in, for example %pal:portableappsdir%\firefoxportable\firefoxportable.exe . difftool empty the file compare tool, with %file1 and %file2 where the two files go. additionalparameters empty extra command line switches passed to webuilder. disablesplashscreen false don't show the launcher's splash screen. the tool settings are written to webuilder's settings each time it starts, with %pal:...% variables expanded, so they follow the drive the package is on. leave one empty to keep what's set in webuilder itself. data webuilder runs in portable mode when app\webuilder\settings exists, and keeps all its settings there. while it runs, that folder is an ntfs junction to data\config , so nothing is copied back and forth; the junction is removed when webuilder closes, or on the next launch if something went wrong. earlier packages moved the settings folder in and out of data\config . if one of them left app\webuilder\settings behind after a crash, the first launch moves it into data\config and keeps the previous data\config as data\config.old . important junctions can only point to a local drive. running from a network share isn't supported. building from source the launcher is built with the portableapps compiler https://github.com/daemondevin/pac man . its configuration lives in app\appinfo : file contents app\appinfo\appinfo.ini package details and version app\appinfo\launcher\webuilderportable.ini the launcher configuration: the settings link and the section the tool settings go to app\appinfo\launcher\custom.nsh the tool settings and taking over earlier packages' settings credits webuilder is developed by karlis blumentals https://www.webuilderapp.com/ . portableapps.com platform https://portableapps.com/download by portableapps.com https://portableapps.com/ . portableapps compiler https://github.com/daemondevin/pac man developed by daemon.devin. ";}i:20;a:15:{s:4:"slug";s:9:"analytics";s:5:"title";s:9:"Analytics";s:4:"date";s:16:"2026-10-26 05:36";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:203:"TSBlog can show you how many people read your posts, where they came from, and which links they click. It runs on your own server: no cookies, no outside service, nothing sent anywhere. It is off unti…";s:5:"words";i:687;s:7:"minutes";i:4;s:5:"plain";s:3797:" analytics tsblog can show you how many people read your posts, where they came from, and which links they click. it runs on your own server: no cookies, no outside service, nothing sent anywhere. it is off until you turn it on under settings → analytics , and the results are under analytics at the top of the admin. what is recorded record how contains page view the server, when a page is built time, page, referring site, browser, system, device, ip address, a visitor code link click a 1 kb script assets/track.js time, the page it was on, the address clicked, the same browser details not found the server the address that did not exist clicks are counted for links to other sites, for downloads zip, pdf, office files, audio, video and similar and for email and phone links. links between your own pages are not. left out: your own visits while you are signed in, requests from bots and crawlers they are only counted, and shown as a number , the rss feed, and browser prefetching. a “visitor” is a distinct browser, worked out from a keyed hash of the address and browser. it is not a person, and it cannot be matched with anything on another site. the page choose the last 7, 30, 90 or 365 days. you get page views, visitors, link clicks and broken addresses with today's numbers; a views per day chart hover a bar for the day ; top pages; where visitors came from; links clicked; browsers, systems and devices; visitor ip addresses with request counts; addresses that were not found; and the latest 60 events. export csv downloads the raw records for the range. clear data deletes everything after asking. ip addresses and privacy an ip address can identify a person, and the law in some places the eu and uk, for instance treats it as personal data. under visitor ip addresses choose: keep the full address. the most detail. useful for spotting one visitor or a scanner. keep a shortened address. the last number of an ipv4 address is set to 0, and an ipv6 address is cut to its first three groups. do not keep addresses. the ip address list disappears. views and visitors still work. records are deleted after keep records for days 90 by default . if your visitors are in a region with privacy rules, shorten or drop the addresses and say what you collect on a privacy page. ip address cards hover or tab to any ip address on the page and a themestrap hovercard shows where it is: place, provider, time zone and whatever else the lookup service returns. the blog asks the service https://www.publicsofttools.com/api/ip geolocation?ip=address when you first hover an address, never automatically, and remembers the answer for 30 days in data/ipinfo.php , so each address is looked up once. your browser never contacts the service itself. this sends the visitor's ip address to that service, which is a disclosure to a third party. if you do not want that, store shortened or no addresses a shortened address looks up the wrong place , or point ip lookup url in config.php at a service you run. private and local addresses such as 127.0.0.1 are not sent anywhere. clear data also clears the remembered lookups. where it is stored one file per month in data/ , such as hits 2026 10.php , one line per record, behind the same guard as your other private files. a month stops growing at 25 mb. analytics are not part of the backup download. copy the hits .php files yourself if you want them. limits pages served from another cache a cdn, say are never seen by the blog, so they are not counted. a click is sent by the browser, so someone could send false ones. treat click lists as a guide. there is no location lookup, no search keywords and no time on page. keeping it small is the point. themes need no changes: the click script is added to every public page just before </body . ";}i:21;a:15:{s:4:"slug";s:12:"architecture";s:5:"title";s:12:"Architecture";s:4:"date";s:16:"2026-10-23 15:13";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:203:"Architecture How the blog is built, for anyone who wants to understand it, change it or extend it. You do not need any of this to use the blog. Design rules - Works the moment it is uploaded. No setti…";s:5:"words";i:2331;s:7:"minutes";i:11;s:5:"plain";s:4000:" architecture how the blog is built, for anyone who wants to understand it, change it or extend it. you do not need any of this to use the blog. design rules works the moment it is uploaded. no settings file, no server rules, no root access. every feature that needs the server to cooperate has a fallback that does not. files first. posts are markdown files. the database is optional. no dependencies. no composer packages and no framework. the markdown renderer, router, feed, sitemap, settings and login are all in lib/ . one path in. every request that is not a real file goes to index.php . public pages ship almost nothing. no cookies, no framework, one stylesheet and one tiny script. folder map index.php tiny bootstrap: php version check, then lib/front.php config.sample.php optional overrides copy to config.php .htaccess, .user.ini optional extras for apache and php fpm hosts lib/ front.php public router app.php urls, http, sessions, csrf, feed, sitemap settings.php settings layers, private data files, folder setup, health checks store.php the store interface and both drivers analytics.php lite analytics: monthly guarded logs, bot and author filtering, reports, csv comments.php lite comments: storage in data/comments.php, form checks, thread and section markup media.php entry formats: validates media addresses and builds safe players markdown.php the markdown renderer admin.php the admin controller compat.php fallbacks for hosts without mbstring or ctype version.php the installed version, plus the built in update address and public key update.php the self updater vendor/ bundled third party code sodium compat, used only when php has no sodium extension views/ admin templates theme/default/ the plain public theme templates, style.css, reading.js, post.js, vendor/ theme/themestrap/ the bootstrap style theme adds functions.php for its helpers assets/admin/ admin interface: stylesheet, scripts, themestrap plugins content/posts/ markdown files file store uploads/ pictures data/ settings, password, state, caches, log tools/migrate.php copy posts between stores from a terminal tools/build release.php builds signed update and install packages publishers only, never shipped in packages release.json the file list and hashes of the installed release every file in lib/ , lib/views/ and theme/ starts with defined 'ts root' or exit; , so none of them does anything when requested directly. settings layers ts boot builds the configuration from three sources, later ones winning: 1. ts defaults in lib/settings.php 2. data/settings.php , written by the settings page 3. config.php , if present. its keys are recorded in locked , which the admin uses to grey out fields it also reads data/state.php , which holds facts the blog learned about the server, and derives: derived value from pretty pretty urls on , off , or auto with state.pretty === true guard post files protected , plain , or auto with state.exposed == false base , url script name and the request host, unless url is set private data files ts data read and ts data write store json in data/<name .php , behind the guard line <?php http response code 404 ; exit; ? . writes are atomic temp file, then rename and use mode 0600 where the host allows it. state key meaning pretty true once a clean address has reached the blog or the browser test succeeded exposed true if a visitor could download a file inside content/ , false if not, absent if unknown sqlite file the random name of the sqlite database self setup ts prepare dirs runs on every request. it creates data/ , content/posts/ and uploads/ if missing, and drops index.html and .htaccess files and a probe file content/ts probe.txt in them. all errors are silenced, because the health check reports what could not be done. the life of a request 1. the web server hands any request that is not a real file to index.php and php s serves real files itself . on php older than 8.1 a friendly page is shown instead. 2. lib/front.php loads the settings, in";}i:22;a:15:{s:4:"slug";s:8:"comments";s:5:"title";s:8:"Comments";s:4:"date";s:16:"2026-10-23 03:45";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:132:"TSBlog has a small built in comment system. It needs no account, no database and no outside service. It is off until you turn it on.";s:5:"words";i:458;s:7:"minutes";i:3;s:5:"plain";s:2625:" comments tsblog has a small built in comment system. it needs no account, no database and no outside service. it is off until you turn it on. turning it on open settings → comments and choose a mode: mode what happens off nothing is shown and nothing is accepted. your existing comments are kept on, i approve each comment first new comments wait until you approve them on, show comments right away comments appear at once. a comment with more than two links still waits for you closed existing comments stay visible. the form is replaced by “comments are closed” comments appear under posts only, not pages. scheduled and draft posts do not accept comments. what readers see a list of approved comments, oldest first, then a form with a name, an optional email and the comment. readers can reply to a comment, one level deep. text is plain: line breaks are kept and web addresses become links marked nofollow ugc , so a spammer gets nothing from them. the email address is never shown on the site. with javascript the form sends without reloading the page. without it, the form still works and brings the reader back to the comments. moderating when comments are on, or any are waiting, a comments link appears at the top of the admin, with a count of comments waiting. the page lists every comment with approve , spam and delete . filter by waiting, approved or spam. deleting asks first. deleting a post deletes its comments, and changing a post's address keeps them with the post. spam protection each form carries a token that proves it came from your site. it lasts 24 hours, and the pages stay cacheable. a hidden field that people never see. anything that fills it in is silently dropped. a limit of 5 comments per visitor in 10 minutes and 30 per day. visitors are told apart by a keyed hash of their address, never the address itself. comments with more than two links wait for approval, even in the open mode. the same comment cannot be posted twice. length limits: name 60, comment 2000 characters. if a spam wave still gets through, switch to “i approve each comment first”. where they are stored all comments are in data/comments.php , a guarded private file like your settings, for both the file and sqlite storage options. it is included in the backup download. copy it to move comments to another install. themes a theme shows comments by calling ts comments section $post in post.php , which returns the whole section or an empty string when comments are off , and loading its own comments.js when tscomments::accepting . the markup uses tsc classes that the theme styles. see themes themes.md . ";}i:23;a:15:{s:4:"slug";s:13:"configuration";s:5:"title";s:8:"Settings";s:4:"date";s:16:"2026-10-26 05:36";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:192:"Almost everything is changed on the Settings page in the admin. There is no file to edit. For people who want more control, an optional config.php can override the page. Both are covered here.";s:5:"words";i:1735;s:7:"minutes";i:8;s:5:"plain";s:4013:" settings almost everything is changed on the settings page in the admin. there is no file to edit. for people who want more control, an optional config.php can override the page. both are covered here. how settings work there are three layers. later ones win. 1. built in defaults. the blog works with these from the first visit. 2. the settings page. what you save is stored in data/settings.php . 3. config.php optional . for advanced users. anything set here overrides the settings page, and that setting shows as set in config.php and is greyed out in the admin. changes take effect immediately. there is nothing to restart. the settings page your blog setting what it does blog name shown in the header, page titles, the feed and social cards tagline a few words added to the home page title, such as my blog · notes on building for the web description the home page's description in search results, and the feed's description your name shown in the footer and in structured data. falls back to the blog name reading setting what it does posts per page how many posts a list shows before it paginates 1 to 50 date style how dates look on the site. choose from six styles time zone decides when scheduled posts go live and how dates are shown. detected from your browser during setup language code the language of the pages and feed, such as en , fr or pt br analytics setting what it does count visits and clicks off by default. when on, page views and link clicks are recorded and shown under analytics in the admin. see analytics analytics.md visitor ip addresses keep the full address, a shortened one the last part removed , or none. visitors are counted either way keep records for 7 to 730 days. older records are deleted automatically comments setting what it does comments off the default : no comments are shown or accepted. on, i approve each comment first: new comments wait in the admin until you approve them. on, show comments right away: comments appear at once, except any with more than two links, which wait for approval. closed: existing comments stay visible, no new ones are accepted see comments comments.md for how they work and how they are protected from spam. reading aids setting what it does show a reading progress bar on posts a thin bar at the top of the screen that fills as the reader works through the post. it measures the post's own text, so the footer and the next/previous links do not count. it hides itself when the whole post fits on screen. about 1 kb of script show a “keep reading” fade on posts a soft fade at the bottom of the screen with a small “keep reading” pill while there is more of the post to read, plus edge shadows on wide code blocks and tables. it uses themestrap's pluginscrollshadow , which needs jquery, so it adds about 110 kb to post pages. turn it off for the lightest possible pages both are on by default. they only appear on post pages, never on the home page or lists. advanced options these are folded away on purpose. the defaults suit almost everyone. footer line a short line added to the footer after the copyright. page links choice meaning automatic recommended the blog finds out whether pretty links work on your server and uses them if so always pretty addresses look like /my post . needs the server to send unknown addresses to index.php , see hosting deployment.md pretty links always plain addresses look like /index.php?r=my post . works everywhere plain links are not a problem, just longer. pretty links look nicer in search results and when shared. pretty links turn on by themselves when they can. in automatic mode the blog notices when a clean address reaches it, and it also tests your server during setup and whenever you press test my server again . if you force “always pretty” on a server that cannot do it, links break. to recover, open yoursite/index.php?r=admin/settings , which works on every server, and switch back to automatic. where posts are kept choice meaning files one file per post in c";}i:24;a:15:{s:4:"slug";s:10:"deployment";s:5:"title";s:22:"Hosting and deployment";s:4:"date";s:16:"2026-10-17 19:00";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:140:"On ordinary shared hosting you do not have to do anything except upload the files and open /admin. The blog adapts to your server by itself:";s:5:"words";i:1045;s:7:"minutes";i:5;s:5:"plain";s:4014:" hosting and deployment short version on ordinary shared hosting you do not have to do anything except upload the files and open /admin . the blog adapts to your server by itself: pretty links need server rules. if they are missing, the blog uses plain links that work everywhere. some servers hand out private files. if yours does, the blog stores posts in a protected format. if a folder cannot be written to, the setup page tells you in plain words which one and how to fix it. everything in the rest of this page is optional, for people who want pretty links on a server that needs a nudge, or who want to tune things. shared hosting cpanel, plesk and similar 1. upload the contents of the tsblog folder to public html or a subfolder . 2. check that php is 8.1 or newer: look for php version or select php version in the control panel. 3. open yoursite/admin and answer the three questions. no root access, no command line and no configuration are needed. if you want a free security certificate, look for ssl or let’s encrypt in the control panel and switch it on. then open the site with https:// . settings → health tells you if your connection is not secure. if the setup page shows a red box the blog could not write to a folder. this is the most common first run problem, and it is fixed in your file manager: 1. find the folder named in the red box data , content/posts or uploads . 2. right click it and choose permissions or change permissions . 3. set it to 755 . if the box is still there after you click check again , try 775 , then 777 . once saved, the red box disappears. these three are the only places the blog writes to. pretty links pretty links look like /my post . plain links look like /index.php?r=my post . both work. the blog starts with plain links and upgrades to pretty ones automatically when it detects that your server supports them. apache most shared hosting nothing to do. the included .htaccess file turns pretty links on, and the blog detects that during setup. make sure .htaccess was uploaded it is a hidden file . the server needs mod rewrite and must allow .htaccess files, which is standard. nginx, caddy and others advanced, optional on shared hosting you usually cannot change these. if you can, add the rules below. then open settings → advanced → page links and press test my server again in the health section. without these rules, the blog simply keeps using plain links. nginx: nginx server { server name example.com; root /var/www/blog; index index.php; client max body size 20m; location / { try files $uri $uri/ /index.php?$query string; } location ^/ lib data content tools / { deny all; } location = /config.php { deny all; } location ^/uploads/. \.php$ { deny all; } location \.php$ { include fastcgi params; fastcgi pass unix:/run/php/php fpm.sock; fastcgi param script filename $document root$fastcgi script name; } } the deny rules are optional extras. private files are already stored in a form that is safe to serve, but denying direct access is still good practice. find your php socket with ls /run/php/ ; it may be versioned, such as php8.3 fpm.sock , or a tcp address like 127.0.0.1:9000 . test with sudo nginx t && sudo systemctl reload nginx . caddy: example.com { root /var/www/blog @private path /lib/ /data/ /content/ /tools/ /config.php respond @private 403 php fastcgi unix//run/php/php fpm.sock file server } in a subfolder upload into /blog/ and open /blog/admin . links, the feed and the sitemap follow the folder automatically. on apache nothing else is needed. on nginx, put the rules under location /blog/ and make the try files fallback /blog/index.php?$query string . https turn it on in your host's control panel, then visit the site with https:// . the blog does not redirect for you, so enable the redirect at the host usually a toggle called “force https” . behind a proxy or load balancer, make sure it sends x forwarded proto: https , and consider setting the site address in settings → advanced. php settings a ";}i:25;a:15:{s:4:"slug";s:15:"getting-started";s:5:"title";s:15:"Getting started";s:4:"date";s:16:"2026-10-17 19:00";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:99:"From download to your first published post in about five minutes. No technical knowledge is needed.";s:5:"words";i:691;s:7:"minutes";i:4;s:5:"plain";s:3785:" getting started from download to your first published post in about five minutes. no technical knowledge is needed. what you need a web hosting account that runs php 8.1 or newer. almost every host does. if yours is older, look for php version in the hosting control panel and pick 8.1 or higher. a way to upload files: your host's file manager in the control panel or an ftp program such as filezilla. you do not need a database, a command line, or any settings. 1. upload 1. unzip the download on your computer. you will see a folder named tsblog . 2. open your host's file manager or ftp program and go to your website's main folder. it is often called public html , www or htdocs . 3. upload the contents of the tsblog folder there. to put the blog in a subfolder of your site, such as example.com/blog , create a blog folder first and upload into it. tip: if uploading many files is slow, upload the zip file itself and use the file manager's extract option. make sure you can see the hidden files .htaccess and .user.ini after uploading. your file manager may have a “show hidden files” option. they are optional, but they help. 2. open the admin in your browser, go to your site's address followed by /admin , for example https://example.com/admin . if you see a page that says welcome let’s set up your blog. , everything is working. if you see something else, open troubleshooting troubleshooting.md . do this straight away. the first person to open this page chooses the password. 3. answer three questions question notes what is your blog called? shown at the top of every page. you can change it later your name optional. shown on posts a password at least 8 characters. there is no username your time zone is detected from your browser, and the blog quietly checks your hosting to pick the best settings. click create my blog . you are signed in. if the page shows a red box titled one thing needs fixing first , follow the plain steps in it usually: set a folder's permissions to 755 in your file manager , then click check again . 4. write your first post 1. click new post . 2. type a title, press enter, and write. use the toolbar above the page for bold, headings, lists, quotes and links. to add a picture, paste it or drag it onto the page. 3. click save draft to keep it private, or publish to put it on your site. prefer to type symbols such as bold ? click markdown at the top instead of simple . your post is the same either way. the sliders button opens extra options: the web address, the publish date a future date schedules the post , tags, a summary for search engines, and a cover picture. you can ignore all of it. 5. make it yours click settings at the top of the admin. change the blog name, tagline, time zone, how many posts show per page and more. click save settings . the two sample items a welcome post and an about page can be edited or deleted from the posts list. 6. keep a backup in settings , click download a backup now and then. it gives you a zip of all your posts, pictures and settings. to restore, upload its folders back to your site. if something does not look right you see do this a page about php being too old change the php version in your hosting control panel to 8.1 or higher a red “needs fixing” box follow the steps in it. it is almost always one folder permission long addresses like index.php?r=about nothing is wrong. your server uses plain links. see settings configuration.md page links if you want pretty ones anything else troubleshooting troubleshooting.md where to go next i want to... read learn the editor and markdown writing writing.md change settings settings configuration.md change how the site looks themes themes.md move to another host, or tune the server hosting and deployment deployment.md ";}i:26;a:15:{s:4:"slug";s:7:"storage";s:5:"title";s:7:"Storage";s:4:"date";s:16:"2026-10-26 05:36";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:103:"Where your posts and settings live, how the two storage options differ, and what each file in data/ is.";s:5:"words";i:848;s:7:"minutes";i:4;s:5:"plain";s:4012:" storage where your posts and settings live, how the two storage options differ, and what each file in data/ is. two options, one behavior the blog stores posts in either files or sqlite . everything else behaves identically: the admin, the public site, the feed, search and tags. switch any time under settings → advanced → where posts are kept . switching copies your posts across for you and leaves the old copy in place. files default sqlite where posts live content/posts/ , one file per post one file in data/ , named like blog 3f9a….db needs nothing sqlite support in php most hosts have it; the admin tells you if not edit with the admin, or any text editor or ftp the admin, or any sqlite tool version control excellent. readable diffs poor. one binary file backups copy a folder copy one file best for almost everyone hosts where many small files are awkward if unsure, keep the default. the database file has a random name that is stored in data/state.php , so nobody can guess its address and download it. post files each post is a markdown file with front matter. see writing writing.md front matter for every field. content/posts/ welcome to your blog.md about.md plain and protected files some servers hand out any file they are asked for. on such a server, someone could type the address of a draft and read it. the blog guards against that. format file name when plain my post.md your server keeps private folders private protected my post.md.php your server does not, or the blog could not tell a protected file starts with one extra line: <?php http response code 404 ; exit; ? title: my post ... if a server runs it instead of handing it out, the visitor gets an empty "not found" page and never the text. the blog reads both formats at any time, and rewrites all posts when the format changes. settings → advanced → post file format lets you force either one. when editing a protected file by hand, keep its first line. the blog picks the format by testing your server during setup and when you press test my server again : it checks whether a harmless file in the private content/ folder can be downloaded. writing files by hand you can create, edit, rename and delete post files directly, with or without the admin. the blog notices changes on the next visit. a minimal post: title: my post date: 2026 10 02 hello. name it with lowercase letters, numbers and dashes, such as my post.md . files with other names are ignored. sqlite posts live in one table, created on first use: column holds slug primary key the address title , date , updated , status , type as in front matter tags a json array description , image as in front matter body the markdown excerpt , words , plain prepared when saving, for fast lists and search it uses write ahead logging, so reading while saving is safe. what is in data/ everything here is private, and every .php file starts with a guard line so it is safe even if a server hands it out. file holds settings.php what you saved on the settings page admin.php your password, hashed. the password itself is never stored hits yyyy mm.php analytics records, one file per month, one line per visit or click. not included in the backup. delete them to clear analytics ipinfo.php remembered ip address lookups for the analytics hover cards 30 days . safe to delete comments.php every comment, whichever storage option you use. included in the backup. delete it to remove all comments state.php what the blog learned about your server pretty links, private files and the sqlite file name login.php failed sign in counts, for the lockout index.cache.php a quick index of your posts. rebuilt on its own, safe to delete log.php the last 100 problems the blog recorded sessions/ who is signed in backups/ the program files replaced by the last two updates, for go back updating.lock exists only while an update runs, and is ignored after five minutes blog ….db the sqlite database, only if you use it index.html and .htaccess files in the private folders k";}i:27;a:15:{s:4:"slug";s:6:"themes";s:5:"title";s:6:"Themes";s:4:"date";s:16:"2026-10-23 03:45";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:185:"A theme controls everything readers see. The default theme is small on purpose: about 6 KB of CSS, a 0.7 KB script, system fonts and no frameworks. You can restyle it, or make your own.";s:5:"words";i:1430;s:7:"minutes";i:7;s:5:"plain";s:4004:" themes a theme controls everything readers see. the default theme is small on purpose: about 6 kb of css, a 0.7 kb script, system fonts and no frameworks. you can restyle it, or make your own. included themes theme what it is default small and quiet: one column, system serif text, about 6 kb of css themestrap a blog layout in the style of themestrap: sticky header, page header with breadcrumb, large entries with a date badge, a sidebar search, categories, recent and updated posts, tags and a dark footer. it shows every entry format writing.md entry formats : a standard image, a slider, a gallery with a lightbox, video, audio and codepen embeds choose one in settings theme or with 'theme' = 'themestrap' in config.php . to recolor themestrap , change accent and the dark mode value under data theme=dark at the top of its style.css . the themestrap theme has no dependencies: its slider, lightbox, tabs, menu and dark mode are one small theme.js . it does not need bootstrap, jquery except the optional "keep reading" fade or an icon font. make your own theme never edit theme/default/ or theme/themestrap/ directly, because an update would overwrite your changes. 1. copy theme/default to theme/mine . 2. set 'theme' = 'mine' in config.php . 3. edit the files in theme/mine/ . for a quick color change, edit the variables at the top of style.css . they define the whole palette in both light and dark mode: css :root { bg: fff; fg: 1f2937; muted: 6b7280; line: e5e7eb; accent: 0b8a83; accent fg: fff; code: f3f4f6; card: f9fafb; w: 42rem; } w is the width of the reading column. the dark palette is the second set of the same variables, used when the reader's system prefers dark or when they press the toggle. files in a theme file renders layout.php the frame around every page: <head , header, menu, footer home.php the home page, tag pages and search results lists of posts post.php one post or page tags.php the tag index 404.php the not found page style.css , theme.js your assets. names are up to you, since layout.php links them every template is plain php with html. there is no template language to learn. variables each template receives layout.php variable contents $content the html of the page template. print it unescaped: <?= $content ? $meta an array describing the page, see below $pages the posts of type page , for the menu. each has slug and title $meta keys: key meaning title the full page title for <title description meta description text canonical absolute canonical url, or empty image absolute image url for social cards, or empty type website or article the open graph type noindex true for search, drafts, scheduled posts and not found pages published , modified dates of a post, for article tags tags the post's tags jsonld structured data array for a post, or null home.php variable contents $posts the posts to list, see the post fields below $page , $pages the current page number and the page count $base the route the list lives at, such as '' or tag/design , for building page links $newer , $older urls of the neighboring pages, or null $heading a heading such as tagged “design” , or null on the home page $search set only on the search page: the text that was searched post.php variable contents $post the post, with html the rendered body , body the markdown , words and minutes added $prev , $next the older and newer post list fields only , or null $live false when a signed in author is previewing a draft or scheduled post tags.php variable contents $tags a list of 'name' = 'design', 'count' = 3 , most used first post fields posts in lists have these keys: slug , title , date , updated , status , type , tags array , description , image , format , media array , excerpt , words , minutes . a full post adds body and, on the post page, html . helper functions function use e $text escape text for html. use it on everything you print, except $content and $post 'html' ts url 'route' a link to a page of the blog, correct in a subfolder and in ";}i:28;a:15:{s:4:"slug";s:15:"troubleshooting";s:5:"title";s:15:"Troubleshooting";s:4:"date";s:16:"2026-10-17 19:00";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:202:"Troubleshooting Find what you see, then follow the fix. A checklist is at the end. Most problems are one folder permission or one setting. First stop: sign in and open Settings. The Health section at…";s:5:"words";i:2119;s:7:"minutes";i:10;s:5:"plain";s:4038:" troubleshooting find what you see, then follow the fix. a checklist is at the end. most problems are one folder permission or one setting. first stop: sign in and open settings . the health section at the bottom checks your server and explains in plain words what is wrong and how to fix it. before you can sign in i see “one quick change is needed” about php your hosting runs an old php. in your hosting control panel look for php version or select php version , choose 8.1 or higher, and reload. the setup page shows a red box, “one thing needs fixing first” the blog cannot write to a folder. in your file manager, right click the folder named in the box, choose permissions , and set it to 755 . click check again . if the box stays, try 775 , then 777 . only the home page works, other addresses say “not found” that cannot happen with plain links, so check for these: you switched page links to always pretty on a server that cannot do it. open yoursite/index.php?r=admin/settings this address works on every server , set page links to automatic , and save. you are using a configuration file that forces 'pretty urls' = 'on' . remove that line. a blank white page php hit an error and is hiding it. in a file manager, open data/log.php or ask your host for the php error log . or create a config.php with <?php return 'debug' = true ; to see the message on the page, then delete it afterward. “the blog could not start” the message on the page says why. common ones: message fix this server does not have sqlite support open yoursite/index.php?r=admin/settings and choose files for storage, or set 'store' = 'files' in config.php anything about a folder set that folder's permissions as described above the page has no styling the theme/ folder was not uploaded, or settings names a theme that does not exist the blog falls back to default automatically . upload the whole theme folder again. i can’t sign in, or i keep landing back on the sign in form the browser must accept cookies for your site. the blog must be able to write to the data folder see the permissions fix above . after five wrong passwords, wait ten minutes, or delete data/login.php . i forgot my password 1. in your file manager, delete the file data/admin.php . 2. open yoursite/admin . it asks you to choose a new password, like the first time. if you set admin password hash in config.php , replace it with a new hash instead see settings configuration.md the optional configphp . because this works by file access, anyone who can write to data/ can reset the password, so keep that folder private. after you are in the links are long and look like index.php?r=… nothing is wrong. your server uses plain links, which work everywhere. if you want pretty ones and you use apache, make sure the hidden file .htaccess was uploaded, then press test my server again in settings. see hosting deployment.md pretty links . my post is not on the site 1. status. a draft is hidden. open it and click publish. 2. date. a future date means scheduled. it appears when the time comes, in your time zone see settings . 3. type. a page appears in the menu, not in the post list. 4. hand made files. the file name must be lowercase letters, numbers and dashes, ending .md or .md.php , and the front matter must start on the first line after the guard line, in protected files . the summary on the home page is wrong a summary typed in the post settings always wins. clear it to use the automatic one. otherwise type < more on its own line where you want the summary to end. see writing writing.md the summary marker . “the address … is reserved” or “another post already uses the address” pick another address in the post's settings panel. reserved names are listed in writing writing.md reserved addresses . “your session expired” when saving you were signed out. copy your text, reload, and sign in again. the editor also keeps a copy in the browser and offers to restore it. “the blog could not save your post” the content/posts fol";}i:29;a:15:{s:4:"slug";s:7:"updates";s:5:"title";s:7:"Updates";s:4:"date";s:16:"2026-10-23 03:45";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:205:"The blog can check for a new version, download it, and install it for you. It is one button in Settings → Updates. This page explains how it works, how it keeps you safe, and (for whoever publishes th…";s:5:"words";i:2110;s:7:"minutes";i:10;s:5:"plain";s:4006:" updates the blog can check for a new version, download it, and install it for you. it is one button in settings → updates . this page explains how it works, how it keeps you safe, and for whoever publishes the blog how to release a new version. for site owners updating 1. open settings and scroll to updates . if a newer version exists you will also see a banner on the posts page. 2. click check for updates to look right now. it also looks by itself about once a day when you open the admin, unless you turn that off under advanced options. 3. read what is new, then click install version x . confirm. 4. the site pauses for a few seconds. when the page reloads you are on the new version. your posts, pictures, settings, password, config.php and any theme of your own are never touched. only the blog's own program files change. going back if something looks wrong after an update, click go back to x in the same place. it puts every file back exactly as it was. each update keeps a backup; the last two are kept, so you can step back twice. what an update changes updated never touched index.php , lib/ , assets/ , tools/migrate.php , docs/ , theme/default/ , theme/themestrap/ , config.sample.php , readme.md , release.json content/ , uploads/ , data/ , config.php , .htaccess , .user.ini , any theme other than default and themestrap if you edited files in theme/default/ , an update replaces them. copy the theme to a name of your own first and select it in settings see themes themes.md . what it needs the updates card tells you in plain words if something is missing. normally nothing is. need why an update address and a signing key built into releases made with the release tool. otherwise set the address under settings → advanced and the key in config.php the zip php extension to unpack the update. almost every host has it signature checking uses php's sodium extension when there is one, and a bundled pure php copy when there is not. nothing to install either way. see no sodium extension no sodium extension a way to download curl, or allow url fopen writable program folders the same permissions that let the blog save posts. usually already true on shared hosting if your server cannot update itself, you can still update by hand. see manual updating manual updating . privacy a check downloads one small file, latest.json , from the update address. the request carries the blog's version in the user agent themestrapblog/1.0.0 and nothing else about you or your site. turn automatic checks off under settings → advanced and the blog only looks when you press the button. how it keeps you safe an update is code that runs on your site, so the blog does not simply trust whatever it downloads. check what it prevents https only someone tampering with the download in transit sha 256 checksum a damaged or substituted file ed25519 signature, checked against the key already installed a hacked download server pushing code. only the holder of the publisher's secret key can make an update the blog accepts. the signature covers the version too, so an old signed release cannot be replayed as "new" every file inside must be a plain file in an allowed folder updates reaching your content, settings, config.php or other themes, and ../ tricks, absolute paths and links every file's hash must match the package's file list a package with swapped or extra files every php file must parse a broken release taking the site down backup first, then verify after writing a failure half way. anything that goes wrong puts the old files back automatically a short maintenance pause visitors seeing a half updated site all of these happen before the first file changes, except the last two. no sodium extension signature checking needs ed25519. almost every php has it built in it has shipped with php since 7.2 , but some hosts compile it out. in that case the blog uses lib/vendor/sodium compat , an open source pure php implementation of the same algorithm isc license, bundled unmodified";}i:30;a:15:{s:4:"slug";s:7:"writing";s:5:"title";s:7:"Writing";s:4:"date";s:16:"2026-10-23 03:45";s:7:"updated";s:0:"";s:6:"status";s:9:"published";s:4:"type";s:4:"post";s:4:"tags";a:0:{}s:11:"description";s:0:"";s:5:"image";s:0:"";s:6:"format";s:8:"standard";s:5:"media";a:0:{}s:7:"excerpt";s:203:"Writing Everything about creating posts: the editor, the Markdown it understands, and the front matter that describes each post. The editor The editor has two modes, switched with the Simple and Markd…";s:5:"words";i:1837;s:7:"minutes";i:9;s:5:"plain";s:4010:" writing everything about creating posts: the editor, the markdown it understands, and the front matter that describes each post. the editor the editor has two modes, switched with the simple and markdown buttons at the top. both produce the same thing: a markdown file. simple is where new posts open, and the editor remembers your last choice. a post that contains raw html opens in markdown mode so nothing is lost. markdown mode you write markdown directly. the toolbar inserts the syntax for you, and the view buttons on its right side switch between: view what you see write only your text. the page grows as you type, like a document split your text on the left and the rendered post on the right preview only the rendered post the preview is produced by the same code that renders the live site, so it matches what readers will see. simple mode rich text you format with the toolbar or by selecting text, and you can also type markdown shortcuts as you go: type you get , , at the start of a line a heading or a bullet list 1. a numbered list a quote three backticks, then enter a code block , then enter a divider bold , italic , strike , code the formatting, applied when you type the closing mark switching modes converts the text once, so nothing is lost for normal writing. see limits of simple mode limits of simple mode for the few exceptions. the summary marker see below the summary marker appears in simple mode as a dashed line labeled "summary ends here". keyboard shortcuts keys action ctrl/⌘ + s save, keeping the current status ctrl/⌘ + b bold markdown mode ctrl/⌘ + i italic markdown mode ctrl/⌘ + k link markdown mode enter in a list or quote continue it. on an empty item, end it tab / shift + tab in a list indent or outdent esc leave focus mode focus mode the expand icon hides the toolbar, the status bar and the settings panel, leaving only the page. move the mouse to the top to bring the top bar back, and press esc to leave. images paste a picture, drop it onto the editor, or use the image button. big photos are shrunk in your browser first to at most 2,000 pixels wide , so even phone photos upload quickly on any host. jpg, png, gif and webp are accepted. files are stored in uploads/yyyy/mm/ . saving, publishing and drafts button what it does save draft saves without publishing. shown while the post is a draft publish saves and makes the post public update saves a published post unpublish saves and returns the post to a draft the label next to the buttons shows where you are: unsaved changes , saving… , draft saved or published . if you click a link while there are unsaved changes, a dialog asks whether to leave or keep editing. closing the tab or reloading shows your browser's own warning instead. a copy of what you type is kept in your browser every moment. if your connection drops or the tab closes, the editor offers to restore that copy the next time you open the post. the settings panel setting notes address the url slug. follows the title until you edit it. letters, numbers and dashes only publish date pick the day from the calendar the date button . set the time beside it: click the clock to choose an hour, minutes and am or pm, or just type it 8:30pm , 830 and 20:30 all work . the arrow keys change the minutes. a future date schedules the post, and it appears on its own when the time arrives. the note under the field tells you which it is. now resets to the present type post appears in lists and the feed. page appears in the menu and stays out of the feed entry format what sits above the text. standard shows the cover image. slider and gallery take several pictures one address per line, or add pictures to upload them . video , audio and embed take one address. only post entries have a format. see entry formats entry formats tags type a tag and press enter, or paste a list separated by commas, semicolons or one per line and every item becomes its own tag. up to 20 per post. the chips show exactly what will be saved: spec";}}}