Digital spring cleaning: open-sourcing my 'sweeties' web-app

• ~700 words • 3 minute read

 

I'm cleaning out my project folders for springtime. Along the way I'm trying to determine what to keep, what to trash and what to reinvent in some capacity — either open-sourcing it to let others have at it or integrating it into another project of mine.

One of those projects is a simple, mobile-optimized web app I called Sweeties. It's in the spirit of a number of apps that let two people share special mash notes, photos and the like, but simpler in most ways. I didn't want to make a full-fledged app, go through the app store and maintain it for other people. I wanted something straightforward, simple and self-contained with a minimal interface — the real feature would be in the things you wrote and shared, I reasoned.

So here it is:

Sweeties Screenshot

https://github.com/georgemandis/sweeties

It's in PHP and doesn't require any kind of database (PHP is ubiquitous and has a low barrier-to-entry. Those two qualities make it ideal for a silly little one-off app that would appeal largely to amateurs I imagine. You can simply stick this in a folder on your server and it will just work. It drives me crazy sometimes when I see framework and package manager dependencies for things that, I feel, would be better served as self-contained scripts.). You just plop it in a couple of folders on your server, make sure the config.json files knows where the other installation is and what you two call one another and it should work.

The code is kludgy and compact, lending to its handmade charm I like to think (You might say it was stream-of-consciously-cowboy-coded). It's quirky - by design it doesn't let you review your own messages, but somehow I thought that made it more special. Kind of like dropping a letter in the mailbox, you can't get it back.

I explain it a little bit in the GitHub repo, but you setup the urls like this:

your-website.com/sweeties/romeo
your-website.com/sweeties/juliette

The first URL is for Romeo, the second is for Juliette. The config.json files are updated so that the the know about one another's installation and can send messages back and forth (Were I more forward thinking and open-minded I guess I would've enabled connecting with any number of other installations. There's a joke in there about "Open" source or something, I think.).

It could be written better, but I like the super-lower barrier to entry by making it a simple thing you can stick in a folder on your server and have working with minimal configuration. Like my other, silly, surprisingly-popular open-source contribution, I think it will appeal to amateurs and tinkerers.

So I open-sourced it to see if anyone might take on the task of fixing some things:

  • Auto-rotating images as needed. Depending on the size your device images can get skewed.
  • Fixing image orientation when taken in landscape mode.
  • Implementing video, in some fashion.
  • Fixing my lazy approach so the thing doesn't simply reload the page to get back to the main screen.
  • A better interface for flipping through past sweeties.

More ambitiously:

  • Employ some kind of notification system so people know when they've received their sweeties. An email? A text?
  • Perhaps ability to save drafts?
  • Simple password protecting? It does just kind of sit there on the server. But you have to know it's there to find it... I never saw a need ultimately, but it was on the list.

I really hope some people pick it up and run with it. It would be fun project to watch grow in the wild.

Now only 86 more folders to go through and figure out what to do with... Melodies generated from earthquake feeds, half-implemented project management software, a script the makes poetry out of books, strange drawing apps, word games and literally thousands of pennies spent asking people what was on their mind. Man, at least I know I'm not going to be short on things to write about here!