New Experimental Apps: mTodo and mWiki

27 views
Skip to first unread message

Jacob Weisz

unread,
Aug 12, 2020, 11:54:57 PM8/12/20
to sandst...@googlegroups.com
Okay, so, I have packaged some apps! James Mills (GitHub user @prologic) created a bunch of "micro" selfhosted apps in Go, which are, by design, super simple, and lack things like user accounts and sharing and such. They also tend to be single-file executables which have a easy way to set the location for the database. Turns out, this makes them pretty ideal for Sandstorm app packaging... which I have started to do. There's a few that should be very trivial to package yet, but I've been experimenting so far with two of them.

I chose to put the mu symbol leading their names, for "micro", which is convention I saw used in his issues before, to give them a manner of distinguishment/branding as a set, since the names of these apps were particularly generic.

mTodo: https://apps.sandstorm.io/app/p4z5hactgfhv2k5k845fvth60cnm78yn5k39r62jxwyzhrtqpn00?experimental=true
(Ian's Yet Another TODO is more functional since you can uncheck things... but this one has a bit more style applied. Todo actually just got a style makeover that'll let us skin it to match Sandstorm's color scheme, but there is a wee flaw in how this was done for our use case: https://github.com/prologic/todo/issues/33)

mWiki: https://apps.sandstorm.io/app/gt3gw225gurm5czhgev7c26n8thtezd1nefhghjdmczjwdk0mkth?experimental=true
(Really, really simple Markdown wiki.)

You can see the full list of micro apps here: https://gist.github.com/prologic/c165403fb6ac07c16dc9fd6eeb8efbd2

--
Jacob Weisz
in...@jacobweisz.com

Dan Krol

unread,
Aug 13, 2020, 10:46:08 AM8/13/20
to Jacob Weisz, sandst...@googlegroups.com
Trivial point FWIW: With only Latin characters available, I've seen "mu" displayed as as "u" rather than "m", perhaps to distinguish from mili.

https://en.wikipedia.org/wiki/Micro- (Search for "ISO documents" in the first paragraph).

--
You received this message because you are subscribed to the Google Groups "Sandstorm Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sandstorm-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sandstorm-dev/9706125d-3434-4cfc-9ad7-7592e6b33f60%40www.fastmail.com.

Jacob Weisz

unread,
Aug 13, 2020, 11:40:32 AM8/13/20
to Dan Krol, sandst...@googlegroups.com
That is true/fair. (FWIW, I think I only used that convention in this email out of convenience, the app uses the correct character everywhere.)

--
  Jacob Weisz

Dan Krol

unread,
Aug 13, 2020, 11:57:34 AM8/13/20
to Jacob Weisz, sandst...@googlegroups.com
Right, I only meant for the rare case where you're talking about it in emails etc. I saw you used the Greek letter in the app.

Dan Krol

unread,
Aug 13, 2020, 11:59:29 AM8/13/20
to Jacob Weisz, sandst...@googlegroups.com
Anyway, enough of that distraction. Cool and thanks! I like the idea of packaging simple apps. It'll be much less buggy, easier to upgrade, etc etc. Does @prologic know about Sandstorm? Any interest in keeping a .sandstorm directory upstream?

Jacob Weisz

unread,
Aug 13, 2020, 12:07:26 PM8/13/20
to Dan Krol, sandst...@googlegroups.com
These apps are upstreamed! :D The source repo is prologic's and all of the packaging files were submitted as PRs and merged. I've sent prologic an invitation to test out my Sandstorm server but I do not believe he has done so.

A really nice thing about how these are designed is (apart from the bug mentioned at the top of the thread), these apps can be packaged with no code changes, so everything Sandstorm specific is contained in the .sandstorm folder.

--
  Jacob Weisz

Thierry Pasquier

unread,
Aug 15, 2020, 4:46:05 AM8/15/20
to Jacob Weisz, Dan Krol, sandst...@googlegroups.com
Hi

That's the right way. This simplicity for users is, with security, the
essence of Sandstorm.

It would be nice to build a generic micro-application in the same way
to easily build other specific micro-applications ;)

Some time ago, I experimented with that using mavo (https://mavo.io/).
https://groups.google.com/g/sandstorm-dev/c/YtbR8x5j2Hs/m/jD4G1z0DAQAJ
But I made it too complicated with an editor and a pages manager.
Besides, I was using the internal php web server which is very rustic.

We have to keep the idea of a single page app coupled with a simple
editing mode (for sandstorm admin user role) and a light and rich
stylesheet library like picnic (https://picnicss.com/).

This kind of Go application developed by James and adapted by Jacob
for sandstorm solves the issues. It would only be necessary to develop
a simple Go storage backend for mavo (without identification) and
adapt μWiki or more generic code of self-hosted Go web apps project of
James.
https://mavo.io/docs/storage#creating-your-own-storage-backend
This application μApp would be specific to sandstorm to manage roles
and publish static web site.

But I don't know Go (yet) ....

--
Thierry Pasquier
Responsable de l'édition et de la communication
Portable : 06 01 27 54 14

Espace Mendès France — Poitiers
Centre de culture scientifique, technique et industrielle en Nouvelle-Aquitaine
Tel 05 49 50 33 00 — emf.fr
1 place de la Cathédrale CS80964, 86038 Poitiers cedex, France

Revue L'Actualité Nouvelle-Aquitaine

Jacob Weisz

unread,
Aug 15, 2020, 11:00:20 AM8/15/20
to sandst...@googlegroups.com
I remember your Mavo package! I do think there is potential for apps where you can create the app inside the app, though a lot of people also want to just install an app and use it for a given function.

I don't know Go yet either, but someone on this list has suggested I learn it a few times. There's definitely perks to using a language or framework that's more currently popular in terms of user contribution. I figure these Go apps are potentially easy to build onto for both Sandstorm and non-Sandstorm users alike.

Regarding storage backend, James created a key-value store called Bitcask in Go, that's what a bunch of his apps use for storage: github.com/prologic/bitcask

--
Jacob Weisz
in...@jacobweisz.com
> --
> You received this message because you are subscribed to the Google
> Groups "Sandstorm Development" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to sandstorm-de...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sandstorm-dev/CAOhR71Gwme%2B1FkLNXhEm4q%3DXYMj-s%2BoOYUZMvxO8BctM6r6Hwg%40mail.gmail.com.
>

Ian Denhardt

unread,
Aug 15, 2020, 2:53:31 PM8/15/20
to Jacob Weisz, Thierry Pasquier, Dan Krol, sandst...@googlegroups.com
Quoting Thierry Pasquier (2020-08-15 04:45:51)

> But I don't know Go (yet) ....

Go is pretty easy to pick up; don't let that stop you!

Dan Krol

unread,
Aug 15, 2020, 3:02:03 PM8/15/20
to Ian Denhardt, Jacob Weisz, Thierry Pasquier, sandst...@googlegroups.com
I just tried out the apps. Some quick feedback:

1) They both call on external assets. bootstrapcdn .com and jsdelivr .net for uWiki, unpkg .com for uTodo. You probably want to package those. (I run uMatrix so I noticed)
2) I couldn't figure out how to create new lists or new wiki pages. Or rename the existing ones. Stuck with "TODO" and "Wiki" respectively.

Jacob Weisz

unread,
Aug 15, 2020, 3:49:09 PM8/15/20
to Dan Krol, Ian Denhardt, Thierry Pasquier, sandst...@googlegroups.com
Good catches, Dan! I use Privacy Badger, and I can see those too (now that I'm looking...). I'll see what I can do there.

In this case, "TODO" and "Wiki" are more like the "app title" than a page or list heading, they're static text.

With regards to todo, there is only one todo list, it's super simple. If you want more todo lists, make more todo grains. ;)

For the wiki, you can create a link to a new page, and then click on it to edit it, which is pretty common for wikis. I do note that the title of the page you are on isn't displayed *anywhere*, which is annoying. (And probably trivial to add upstream.)

--
  Jacob Weisz

Jacob Weisz

unread,
Aug 17, 2020, 8:40:50 AM8/17/20
to sandst...@googlegroups.com
So, I just looked at uTodo's unpkg reference: It's already been switched to using the local file in master. I am waiting for a fix for the issue linked at the top of this thread before I update that package: https://github.com/prologic/todo/issues/33

uWiki I am going to have to spend a little bit more time tracking it down. bootstrapcdn is a weird thing to see in here, because AFAIK, it doesn't use Bootstrap... uWIki could use a fair bit of sprucing up anyways, there's a lot of placeholder functionality: https://github.com/prologic/wiki/blob/master/templates/view.html#L39

--
  Jacob Weisz

--
You received this message because you are subscribed to the Google Groups "Sandstorm Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sandstorm-de...@googlegroups.com.

Thierry Pasquier

unread,
Aug 18, 2020, 9:35:12 AM8/18/20
to Jacob Weisz, sandst...@googlegroups.com
Le sam. 15 août 2020 à 17:00, Jacob Weisz <in...@jacobweisz.com> a écrit :
> I do think there is potential for apps where you can create the app inside the app,
> though a lot of people also want to just install an app and use it for a given function.

We can imagine several use cases depending on the role of the
Sandstorm user: the administrator can edit the code, the user can edit
the data and the visitor can only see the page ; the Mavo language
allows us to restrict even more if you prefer.

It is also possible and easy to create your own custom package, with
one or more pages, with or without editing permission. Finally, such
an application can look like a classic one but its development is
limited to writing the Mavo code ; we could also create a store of
templates.

> I don't know Go yet either, but someone on this list has suggested I learn it a few times.
As Ian said, it's quite easy to begin.
So I moved forward. Here is a first experiment of Mavo micro-app in Go
with some standard Mavo demos and without storage backend (on server
side).
https://github.com/jeau/sandstorm-mavo-micro-app

> Regarding storage backend, James created a key-value store called Bitcask in Go,
yes, but it's specific to Mavo, I'll try to solve this issue

--
Thierry Pasquier
Reply all
Reply to author
Forward
0 new messages