# Tiddlywiki

**URL:** <https://forum.malleable.systems/t/tiddlywiki/65>\
**Category:** General\
**Created:** [5 May 2023 06:03 UTC](https://forum.malleable.systems/t/tiddlywiki/65 "2023-05-05T06:03:35Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![akkartik](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/akkartik/32/43_2.png) [@akkartik](https://forum.malleable.systems/u/akkartik)\
**Post date:** [5 May 2023 06:03 UTC](https://forum.malleable.systems/t/tiddlywiki/65/1 "2023-05-05T06:03:35Z")

</div>

I’ve been reading [Grok Tiddlywiki](https://groktiddlywiki.com/read) based on [@khinsen’s recommendation](https://forum.malleable.systems/t/freewheeling-apps/52/24). Tiddlywiki’s achilles heel is [the complexity of saving data](https://tiddlywiki.com/#GettingStarted). I don’t know why it says browser **File/Save** doesn’t work. I just tried it on Firefox and it seems to work just fine. With some minor issues:

- `ctrl-s` saves to a new filename
- `Alt-f a` can save to same file but it’s a lot more typing/clicking
- Firefox’s open/save dialogs have gotten extremely flaky over the past year. In general, much of my [apocalyptic feeling about the web](https://merveilles.town/@akkartik/107687413458195682) stems from using Firefox over Linux [[1](https://merveilles.town/@akkartik/109088268257932258), [2](https://merveilles.town/@akkartik/109889024153662035)].

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [5 May 2023 06:38 UTC](https://forum.malleable.systems/t/tiddlywiki/65/2 "2023-05-05T06:38:54Z")

</div>

I suppose the “doesn’t work” warning refers to the fact that what happens is browser-dependent and changes over time. It should really read “play with it if you want, but don’t bother us with questions”.

This is an issue for all in-browser editors, and one big reason why I prefer to avoid them. It seems you can’t have in-browser tools with local-first data, unless you run a server on every device and let the user deal with the resulting interfacing issues (port number conflicts etc.).

---

<div class="post-metadata">

**Author:** ![Offray](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/offray/32/48_2.png) [@Offray](https://forum.malleable.systems/u/Offray)\
**Post date:** [5 May 2023 13:35 UTC](https://forum.malleable.systems/t/tiddlywiki/65/3 "2023-05-05T13:35:35Z")

</div>

Yes, TW has a lot of varieties of ways to save data and no predefined default. In our workshops we start by making the apprentices to get and account in [TiddlyHost](https://tiddlyhost.com/), replace the default wiki with one of our custom wiki seeds (usually our [mod of projectify](https://wikilexias.tiddlyhost.com/) with prepackaged learning projects and lessons for the participants). If they want to use TW offline, including saving, we advice them to use [Timimi](https://ibnishak.github.io/Timimi/) (and in fact is one of the optional lessons included in our wiki seed).

You may find the previous learning path useful to you, as it has been tested with dozens of TW novices before. Of course, suggestions are welcomed.

---

<div class="post-metadata">

**Author:** ![akkartik](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/akkartik/32/43_2.png) [@akkartik](https://forum.malleable.systems/u/akkartik)\
**Post date:** [6 May 2023 07:00 UTC](https://forum.malleable.systems/t/tiddlywiki/65/4 "2023-05-06T07:00:02Z")

</div>

I’ve created [https://akkartik.tiddlyhost.com/](https://akkartik.tiddlyhost.com/) and uploaded a copy of [Projectify — Manage projects in TiddlyWiki.](https://thaddeusjiang.github.io/Projectify/empty.html). It’s too bad I can’t use your mod due to the language barrier.

---

<div class="post-metadata">

**Author:** ![colby](https://forum-cdn.malleable.systems/letter_avatar_proxy/v4/letter/c/d07c76/32.png) [@colby](https://forum.malleable.systems/u/colby)\
**Post date:** [22 June 2023 23:59 UTC](https://forum.malleable.systems/t/tiddlywiki/65/5 "2023-06-22T23:59:00Z")

</div>

> [@khinsen](#):
>
> It seems you can’t have in-browser tools with local-first data, unless you run a server on every device and let the user deal with the resulting interfacing issues

[Redbean](https://redbean.dev/) exists. It’s new-ish but not nearly enough people seem to appreciate the implication of its existence. It’s more or less how you’d go about solving the problems you mentioned.

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [23 June 2023 07:39 UTC](https://forum.malleable.systems/t/tiddlywiki/65/6 "2023-06-23T07:39:33Z")

</div>

Thanks for the pointer! Redbean looks very interesting indeed, and I had never seen it before.

It’s still not what I would propose for “ordinary” users, because you have to be at ease on the command line to deploy the server. But for use in small communities with a few techies, it looks great.

BTW, [Fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki) can be used in a similar way. It doesn’t include the executable, so you have to install that on each machine, you store a complete Web site in a Fossil repository (which is a single SQLite file) and deploy it with a single command. Not programmable, so no Web apps, but great for static sites and Wikis.

---

<div class="post-metadata">

**Author:** ![colby](https://forum-cdn.malleable.systems/letter_avatar_proxy/v4/letter/c/d07c76/32.png) [@colby](https://forum.malleable.systems/u/colby)\
**Post date:** [23 June 2023 14:06 UTC](https://forum.malleable.systems/t/tiddlywiki/65/7 "2023-06-23T14:06:41Z")

</div>

> [@khinsen](#):
>
> It’s still not what I would propose for “ordinary” users, because you have to be at ease on the command line to deploy the server.

The docs on the landing page are written for developers, but I don’t know of anything that would preclude using Redbean as an app that can be run without having to use a terminal emulator to launch it. Is there something you know of?

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [23 June 2023 15:06 UTC](https://forum.malleable.systems/t/tiddlywiki/65/8 "2023-06-23T15:06:38Z")

</div>

I suppose it can be done by adding a suitable wrapper, but that wrapper would have to be different for each platform. You thus lose both the “all-in-one-file” feature and straightforward portability.

---

<div class="post-metadata">

**Author:** ![colby](https://forum-cdn.malleable.systems/letter_avatar_proxy/v4/letter/c/d07c76/32.png) [@colby](https://forum.malleable.systems/u/colby)\
**Post date:** [29 June 2023 00:38 UTC](https://forum.malleable.systems/t/tiddlywiki/65/9 "2023-06-29T00:38:53Z")

</div>

> [@akkartik](#):
>
> `Alt-f a` can save to same file but it’s a lot more typing/clicking

Note that in-browser apps can themselves trigger a file save (and thus assist with naming) by using the `a` element’s `download` attribute.

---

<div class="post-metadata">

**Author:** ![colby](https://forum-cdn.malleable.systems/letter_avatar_proxy/v4/letter/c/d07c76/32.png) [@colby](https://forum.malleable.systems/u/colby)\
**Post date:** [24 July 2023 17:17 UTC](https://forum.malleable.systems/t/tiddlywiki/65/10 "2023-07-24T17:17:03Z")

</div>

> [@khinsen](#):
>
> that wrapper would have to be different for each platform. You thus lose both the “all-in-one-file” feature and straightforward portability.

I don’t see why that would be so.

On a Mac, that “wrapper” would consist of making sure the binary is in a directory `Foo.app/` (for your app Foo), right? This doesn’t pose a problem for Windows or Linux. Mac users will see “Foo.app” as an opaque app that can be launched by clicking. Windows and Linux users upon double-clicking will be taking _into_ `Foo.app/` where they will see the binary, which in turn can be double-clicked.

It’s not exactly the same experience, but close enough to idiomatic for each platform and doesn’t require abandoning the one-size-fits-all distribution strategy (i.e. different form of packaging on each platform).

Am I wrong? Is this something about the fact that recent versions of Mac OS don’t by default like running unsigned apps that are just downloaded willy nilly from the Internet, rather than going through the anointed channels on on the Mac App Store? I haven’t had a Mac in several years and don’t have one handy to check.

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [27 July 2023 14:03 UTC](https://forum.malleable.systems/t/tiddlywiki/65/11 "2023-07-27T14:03:31Z")

</div>

The macOS app layout would be

Foo.app/Contents/MacOS/foo

for the executable plus at least one configuration file (XML) under

Foo.app/Contents/Resources

Other platforms could ignore the configuration file, but their users would need to be convinced to run an executable from a folder called `MacOS`.

---

<div class="post-metadata">

**Author:** ![colby](https://forum-cdn.malleable.systems/letter_avatar_proxy/v4/letter/c/d07c76/32.png) [@colby](https://forum.malleable.systems/u/colby)\
**Post date:** [27 July 2023 14:49 UTC](https://forum.malleable.systems/t/tiddlywiki/65/12 "2023-07-27T14:49:57Z")

</div>

What if there were a stub loader at Foo.app/foo that when run was hardcoded to invoke Foo.app/Contents/MacOS/foo? (Alternatively, Foo.app/Contents/MacOS/foo would invoke Foo.app/foo?) That’s a minor piece of overhead, but it could also be put into the toolchain that produces the Actually Portable Executable in the first place, so the developer doesn’t see it either—even though it would be an acceptable tradeoff if they did have to, since the user’s experience should be prioritized. (The APE toolchain is, after all, already going through the process of emitting correctly formed executables that satisfy each platforms’ executable format in a roundabout way.)

cc: jart

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [27 July 2023 19:56 UTC](https://forum.malleable.systems/t/tiddlywiki/65/13 "2023-07-27T19:56:04Z")

</div>

I can’t say if that would work. I know what is minimally required for a macOS app, but I don’t know the complete rules. My vague memory is that you cannot have anything else than the “Contents” folder inside the root app folder, otherwise the directory is not recognized as an app. But I left macOS two years ago, so all my memories are slowly fading away.
