---
title: Digital spring cleaning: open-sourcing my &#39;sweeties&#39; web-app
author: George Mandis <george@mand.is>
date: 2014-04-23
tags: post, post, open-source, sweet, spring-cleaning, projects, creative
---

<p>&nbsp;</p>
<p>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.</p>
<p>One of those projects is a simple, mobile-optimized web app I called Sweeties. It's in the spirit of <a href="http://www.usatoday.com/story/tech/personal/2014/01/23/between-app-korea-between-android-ios/4797107/">a number of apps</a> 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.</p>
<p>So here it is:</p>
<p><a href="https://s3-us-west-1.amazonaws.com/georgemandis/media/iOS-Simulator-Screen-shot-Apr-23-2014-2.11.15-AM.png"><img class="aligncenter wp-image-887 size-medium" src="https://s3-us-west-1.amazonaws.com/georgemandis/media/iOS-Simulator-Screen-shot-Apr-23-2014-2.11.15-AM-200x300.png" alt="Sweeties Screenshot" width="200" height="300" /></a></p>
<p><a href="https://github.com/georgemandis/sweeties">https://github.com/georgemandis/sweeties</a></p>
<p>It's in PHP and doesn't require any kind of database <span class='footnote'>(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.)</span>. You just plop it in a couple of folders on your server, make sure the <code>config.json</code> files knows where the other installation is and what you two call one another and it should work.</p>
<p>The code is kludgy and compact, lending to its handmade charm I like to think <span class='footnote'>(You might say it was stream-of-consciously-<a href="http://en.wikipedia.org/wiki/Cowboy_coding">cowboy-coded</a>)</span>. 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.</p>
<p>I explain it a little bit in the GitHub repo, but you setup the urls like this:</p>
<p><code>your-website.com/sweeties/romeo</code><br />
<code>your-website.com/sweeties/juliette</code></p>
<p>The first URL is for Romeo, the second is for Juliette. The <code>config.json</code> files are updated so that they know about one another's installation and can send messages back and forth <span class='footnote'>(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.)</span>.</p>
<p>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 <a href="https://github.com/snaptortoise/konami-js">my other, silly, surprisingly-popular open-source contribution</a>, I think it will appeal to amateurs and tinkerers.</p>
<p>So I open-sourced it to see if anyone might take on the task of fixing some things:</p>
<ul>
<li>Auto-rotating images as needed. Depending on the size your device images can get skewed.</li>
<li>Fixing image orientation when taken in landscape mode.</li>
<li>Implementing video, in some fashion.</li>
<li>Fixing my lazy approach so the thing doesn't simply reload the page to get back to the main screen.</li>
<li>A better interface for flipping through past sweeties.</li>
</ul>
<p>More ambitiously:</p>
<ul>
<li>Employ some kind of notification system so people know when they've received their sweeties. An email? A text?</li>
<li>Perhaps ability to save drafts?</li>
<li>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.</li>
</ul>
<p>I really hope some people pick it up and run with it. It would be fun project to watch grow in the wild.</p>
<p>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!</p>