PostcardApp 1.0 nearing release!

Tags: postcards, development, news


Anyone keeping score at home (and I know there’s just scads of you out there!) may have noticed the build numbers busily revving on the PostcardApp’s implementation site in the last day or so and wondered just what was happening.


Wait no longer! The list of changes is long, because there’s been so many things that have happened in the last couple of weeks since the 0.9 release was announced. Most exciting in my mind are the changes which enabled users to authenticate, save, and share their postcards! View the announcement postcard here: 

This is exciting!

There are so many different features and cool things that I think could be done with the site. My choice of domains was, in hindsight, one of the best choices I could have made given my goals for the project. As I said in the linked page,

The goal of this effort is simple: provide a reference for myself, potential clients, and other developers on how to develop, expand, and maintain a modern web application using the latest and greatest in technologies.

It’s fortuitous that the domain of creating and sharing postcards is simple enough to be understandable without in-depth expertise, yet complex enough to require real solutions instead of contrived or simple ones.

Logging in

This latest release adds OpenId support (via Windows Azure Access Control services, ACS) for Windows Live, Google, and Yahoo authentication. The reason there was such a delay between release announcements is because I wanted to take the time to try and think through the complications around user authentication and authorization. See, I don’t want to make users register for the site – no one likes creating yet another username and password combination that they’ll then have to remember and manage. For me, I don’t want to have to worry about storing and securing credentials and access in the system. OpenAuth and OpenID seem like good matches, since they allow my application to be secured without having to concern itself with the nuts and bolts of creating and maintaining user’s login data. In addition, the site doesn’t need to really know much – if anything – about the people accessing the site. All I really care about is that the user is not a spambot and that people sending content can be held accountable for actions if needed. I’m willing to trust that if Google, Live, or Yahoo (Facebook and Twitter will be added in the near future) tell me that someone is authenticated, they are most likely legitimate.

Sharing is caring

With authentication taken care of, the main event can begin. Really, it’s the main event for the app. Users aren’t very likely to want to create postcards that only they can view, they are going to want to share them via social networking, email, etc… This release includes basic support for all of those scenarios in the simplest way that I could think of that would possibly have a chance of working. Any authenticated user can obtain a hyperlink to the currently viewed postcard in the form of a URL. The “U” in URL does its job here, since a textual hyperlink is truly a universal means of sharing. In the future, it is my hope to implement more advanced sharing options, like direct posting to FB, tweeting of card links, even snail mail print fulfillment!

If content is king, then put a crown on the card

What will bring users to the site and get them to continue using the site, despite annoyances and issues, will be the presentation of the postcard. The front side of the postcard is a good start in this direction, despite the relative inconvenience in styling of front text. The back of the card, however, is a designer’s nightmare of mess. People who know me are well aware of this fact, but the truth is, I’m a pretty crappy graphic designer. There’s a very strong rate of diminishing returns inherent in implementing designs, and I hit that limit on the back of the card a bit before the initial release. After tweaking and struggling with layout, formatting, and styling, I made the decision that I would have to be content with simply getting the back of the card to stay within its boundaries and display text in a legible manner. There’s a ton of graphic design work that could be done with the site, so if you’re a graphic designer reading this who needs some portfolio work on a public project, feel free to contact me if you’re interested in contributing.

Contributions will be accepted

Although the application’s source is not yet publicly available, I hope to remedy that situation in the near future. This is my first time starting an open-source project, so it may take me some time to figure out how to do stuff, but we’ll get there eventually Smile

Most likely, the source will be posted to GitHub under some form of OSS license. Again, there is still a whole bunch of reading and research that I need to do in order to educate myself on how not to shoot myself or anyone else in the foot (or worse), but rest assured, it’ll get there.

So, what’s left? I’m ready to go!

After reading this post, some could wonder, ‘why haven’t you made this the 1.0 release?’. The reason I haven’t simply gone with a 1.0 release is that there are still some critical gaps in functionality in terms of project goals, mainly in the mobile arena. Until the site is fully usable in the majority of browsers (sorry IE7, it’s time to let go) and on at least one device in the three major form factors (desktop, tablet, mobile), it’s not ready for prime-time.

<!—if [lt IE7] –>


The project has gotten to the point where there are less and less technical objectives left to complete than there are logistical and operational. I’ve been around long enough to not have this happen, and yet I always find myself surprised at just how much *smelly stuff*[Ed note – use your imagination] is involved in producing a full lifecycle product that has nothing to do with coding. I’ll conclude with this statement:

Ideas are ethereal things that coalesce as effort is put into them. Ideas take on a real-world substance as they grow. Being a part of the world gives ideas an always increasing appetite for resources without which the idea will starve, wither and die.

It’s easy to sketch out an idea

It’s moderately difficult to prototype an idea

It’s gobsmackingly hard to implement an idea