It’s been nine years! Pt. 2

Ulysses 1.5
Ulysses 1.5 — look familiar?

Last time around, I wrote that Ulysses hasn’t changed much since its introduction. I’d like to elaborate on that, given the fact that we just shipped 2.1.1. :)

When we released version 1.0, we did so with a pretty precise concept of what the app should do, and what it could become. For example, there never was a question, whether RTF could eventually make the cut or not, even if a “vast majority” of users loudly demanded it — we wouldn’t do it, period.

We also had a very clear idea of how to handle updates, namely that we wanted to do as few as humanly possible. People should *write*, not update.

As a result, any feature request, as simple and precise as it may have been, has always been treated as a mere shell for “here’s something the users wants to accomplish”. We looked at the “why” instead of the “what” and made a decision based on the overall concept and direction.

We’re also pretty good at statistics and probability calculation, so we just knew, that he who cries loudest is not to be considered “the majority”, even if the cries are echoed by various sites and forum posts. We also fully understand how positive feedback is rare and mostly broad, while negative feedback is generally very detailed, and how this might get to you (and your product), if you don’t watch out.

So whenever we added features, changed behaviors or touched the interface, and even when we rewrote large chunks of the application, we did so with the greatest respect to the vast majority of silent users. We never (!) compromized on this. We never (!) went for “possible larger audience” at the expense of silent happy users.

We had this one line, to which we still commit:

If there’s just a single customer out there who likes what we do, we will not take the app and transform it into something else. *This here* is what they bought, and by all means, they should be allowed to keep it.

So today, after nine years, you can still make Ulysses look and work as it did on day one. Hide the collection browser, hide the toolbar, keep your mouse off the notes’ popup, and you’re pretty much there: Just a grown-up, mature version of Ulysses 1.0.

And that’s where we are.

Now, however grown-up Ulysses has become, it’s also starting to show its age. Not so much visually — I think we adapted rather nicely, if slowly –, but technically, conceptually and generally overall… ish…ly. He.

For one, a lot of functionality we provided in 2003 is now being offered by Mac OS X itself: Auto-save, resume on launch, fullscreen mode, auto-update. This is now common to all apps, it’s just built-in, nothing special anymore.

Then there’s all the new system stuff that we can’t implement easily, because of how things had to be done back in the days: Versions, iCloud, iOS syncing, to name a few. There’s just no sane way to implement iCloud sync and Versions, and we can’t make Ulysses’ documents accessible for e.g. Daedalus, because of how we implemented tabs, filters and collections and all of that.

And then there are the dead ends: features that cause some problems but can’t be cut, because users rely on them. Also new ideas and fully legit requests we can’t fulfill, because of the limits of our current implementation. Think Markers and RTF notes for the former. Think multiple open projects for the latter.

Plus… the market has changed. When we introduced Ulysses to the world, there wasn’t much in terms of similar apps, and as such there wasn’t much of user’s experience and expectation. I remember heated forum discussions about the usefulness of a “fullscreen mode” as well as “these tag-things — give me RTF or give me death”.

Today, there’s a whole category of fullscreen writing apps on the Mac App Store, and Markdown is used almost everywhere, give or take a flavor or offspring.

Ulysses was a niche product when it launched. Its concept, ideas and large parts of its functionality are mainstream now.

Then there’s us, Max and me. We also have evolved. We have evolved from two guys, working at seperate places in their spare time, communicating only via email, to a real, perfectly healthy company with paid employees.

We even got kids now. :)

We still share the same passion and love for our products and our users, but we, too, have different experiences and expectations than we had at the start of this fantastic journey.

It’s 2012, and the world will come to an end is a very different place than it was nine years ago. That’s how it goes: Things change, others may come to an end. We need to adopt. You need to adopt.

So, yeah, it’s been nine years, alright.
Time for a change.
And change it will.
Ulysses… it will change.

To be continued.

5 Responses to “It’s been nine years! Pt. 2”

  1. Niklas says:

    A nice and thoughtful post, and I must say I sympathize with the approach you’ve had to this project. I guess I am one of those (not so!) silent users. And quite honestly, I’ve done so much too with Ulysses during these nine years. It’s been a great journey indeed, on the user side as well.

    Your “If there’s just a single customer out there …” quote reminded me of another quote I once read in an interview of an author, and that I have tried to keep in mind when I write myself: that if he could write one reader’s favorite book, then it has all ben worth it. A bit exaggerated I guess, in both cases, but still quite true. You cannot please everyone, and rather than creating something that lots of people kind of like, I’d rather write something that some people really love. If then the cost is that some really don’t get it, then so be it.

    Your last lines filled me with anticipation, but also made me slightly nervous…
    But I guess I should trust you by now.

    Take care, Niklas

    • Marcus says:

      Oh, don’t get nervous. All will be well. The idea of letting you work how you’re used to still applies, so don’t worry.

      As for that “one reader” line: I have been brought up with the notion that whenever *you* like something, somebody else is also going to like it. It’s just common sense, we are no islands. So there is always a “need” for your stuff, at least in some sense.

      Somebody out there is actually waiting for what you come up with, even if he/she doesn’t know it yet.

      That’s also why a lot of crap gets bought, you know? ;)

  2. Will says:

    [...] There’s just no sane way to implement iCloud sync and Versions, and we can’t make Ulysses’ documents accessible for e.g. Daedalus, because of how we implemented tabs, filters and collections and all of that.

    And then there are the dead ends: features that cause some problems but can’t be cut, because users rely on them. Also new ideas and fully legit requests we can’t fulfill, because of the limits of our current implementation.[ ...]

    Perhaps you can offer an easy way to sync a plain text version of a document with dropbox: think one check box that reads: “Sync this to dropbox as plain text”, so that we can open it in Daedalus, edit, and sync back.

  3. Will says:

    [...] There’s just no sane way to implement iCloud sync and Versions, and we can’t make Ulysses’ documents accessible for e.g. Daedalus, because of how we implemented tabs, filters and collections and all of that.

    And then there are the dead ends: features that cause some problems but can’t be cut, because users rely on them. Also new ideas and fully legit requests we can’t fulfill, because of the limits of our current implementation.[ ...]

    Perhaps you can offer an easy way to sync a plain text version of a document with dropbox: think one check box that reads: “Sync this to dropbox as plain text”, so that we can open it in Daedalus, edit, and sync back.

    If none of these are sanely possible, perhaps, it’s time for you guys to fundamentally change Ulysses’s project format, think of it as a new beginning for the future of Ulysses.

  4. Joakim says:

    Well, I’m very much looking forward to Ulysses 3.0. If I am to wish for anything it would be for Ulysses to help me out more with structuring longer works. An outline-mode would be nice. A certain competitor does this somewhat nicely, but I much prefer the semantic way of writing. It would be very interesting to see what you could come up with in this regard. I’m sure it would be jaw-dropping.

    Also, I wish Ulysses will get sophisticated import. It would be very useful to be able to parse a multimarkdown document and have it automatically split into separate documents.

    Good luck!

Leave a Reply


footerflowers