Proposal for a non-JS, lightweight, cloud webapp: slcl

Summary
slcl is a small and lightweight cloud solution that I personally wrote in C99 + POSIX. It aims to provide an efficient and simple alternative to Nextcloud that can run well on lower-end hardware, such as single-board computers:

Problem
After a few years self-hosting a Nextcloud instance on a Raspberry Pi 3B to store personal data, I became recurrently frustrated at its poor performance and high system requirements, both from client and server side, largely caused by Nextcloud being far from a simple solution to host my files, as well as choices in its design.

Solution
In lack of simpler alternatives that could run well on low-end hardware, I wrote my own software from scratch, called slcl (for “small and lightweight cloud”), in C99 + POSIX at the server side, with very few dependencies. At the client side, I also got rid of JavaScript, making use of plain old HTTP/1.1 “multipart/form-data” to upload files, as well as HTML5 features and some simple CSS.

This results in efficient, simple and reliable software that requires very few resources from the server, and loads fast on clients’ lower-end devices, such as the PinePhone.

slcl aims to provide similar features compared to Nextcloud’s “Files” app:

  • Private user directory
  • Configurable quota
  • Read-only public file sharing
  • Simple to configure, simple to use

slcl is free software licensed under the GNU Affero General Public License, version 3 or later.

Screenshots/Layouts

user

Alternatives

  • ownCloud: similar issues compared to Nextcloud
  • rsync: despite its simplistic design, slcl is meant also for non-technical users. rsync was unsuitable because it is a command-line application.
  • SeaFile: requires running JavaScript on the client side. slcl was meant for users that explicitly disable JavaScript on their web browsers for security or privacy reasons.
  • FTP: unfortunately, not supported by web browsers any more.
  • WebDAV: requires the use of specialized software. Again, one of the design goals for slcl was to be usable from a common web browser.

Tasks
I suggest the FreedomBox team to consider slcl as a new app into its toolchain, considering how both projects are meant to empower users with efficient, self-hosted software. Of course, contributions and improvements to slcl are welcome.

2 Likes

Thanks, this looks interesting.

Freedombox only relies on debian packages. Is there one for slcl?

EDIT: you made me notice that firefox removed support of ftp, apparently a while ago, which is a bit of a shock to me…

Unfortunately not. slcl is somewhat recent, and I have not contacted any packagers yet. Do you know how could I contact them?