Tag Archives: sunlit

Preview of Sunlit 2.0

A few years ago, Jon Hays and I built an app for photos called Sunlit, powered by the App.net API. We evolved it to work with other services, like Flickr and Instagram, but as App.net faded away we could never justify the investment to rewrite significant parts of the app to bring it forward and keep it relevant. It also wasn’t clear what the app should do if we were to modernize it. So we let the app sit in the App Store, kind of neglected, and even discussed removing it from sale.

As I rolled out Micro.blog to Kickstarter backers, Jon dusted off the Sunlit project and experimented with something that should’ve been obvious to us earlier: Sunlit should post to blogs. And more than that, it should work well with microblogs and IndieWeb standards. It should become a great app for photoblogging. The new version of Sunlit can post photos to Micro.blog, WordPress, or any site that supports the Micropub API.

To play nicely with microblogs, we introduced a new post type in the app for single photos. For longer posts, you can still collect multiple photos together, add text, and post them as a story directly to your blog. There’s also a brand new editing interface with filters and advanced adjustments:

screenshots

Jon has put a bunch of work into this while I focus on Micro.blog. Sunlit 2.0 is already feature complete and in beta testing now. We expect to ship it sometime this summer.

Two weeks notice: new products

Tonight I worked on some bug fixes to one of the new apps I hope to ship for Riverfold Software. I have just a handful of beta users, but got some good feedback and bug reports last week, things I want to address before opening it up to more users.

When I think of the in-progress apps that I can ship soon to help increase revenue, there are really only 2:

  • Clipstart 2.0, which will be renamed Sunlit for Mac, to complement the iPhone version.
  • Unannounced microblogging-related web app, which may also come with iPhone and Mac apps.

The problem with Sunlit for Mac is that I’m requiring 10.11 El Capitan. So no matter how much progress I make on it, I can’t ship it until Apple releases their next version of Mac OS X. I want to chip away at the new features, but I can’t spend all of my time on it yet. I need to focus attention on projects that have a chance of bringing in additional revenue in the very near future, not by the end of the year.

So the microblogging app — the one I worked on tonight — keeps coming to the front. Since it’s mostly a web app, it has the least number of external API and App Store dependencies that would hold it up. I can ship the core functionality whenever it’s ready. The sooner I get it out the door, the sooner I’ll know if it’s something I can count on as business income.

Retiring App.net support for Sunlit

Sunlit 1.3.1 shipped today. It’s a minor update focused on fixing bugs, but it is also the first version to remove App.net support. Existing users still have access to all the App.net features — the code still exists in the app for now — but the App.net sign-in button and settings have been removed for new users to simplify the requirements and UI.

It was difficult to let go of the App.net-specific features. A significant amount of the codebase was around syncing and collaboration features via App.net. There was also some great location check-in support built on App.net locations and compatibility with Ohai. I had to remove screenshots and prune down the App Store description to account for the removed features.

What’s left is an app that has fewer features but which feels light and simple again. Maybe this should have been our 1.0 version all along.

Two years ago, I wrote about waiting for App.net’s killer app:

“The promise of App.net is bigger than one type of app. App.net isn’t just a blank slate; it’s an amplifier. It’s waiting to power the next new idea and help it grow into something big.”

This vision didn’t pan out. But I’m proud that we gave it a shot and put a lot of effort into the platform even after others had given up on it. Now that we’ve finished this “reset”, of sorts, we’ll move forward to build other features we always wanted in Sunlit.

Preservation State and App Stories

I was the guest on 2 podcasts recently. First, on Preservation State with Philip Mozolak and Christopher Radliff, we talked for an hour about App.net, Beats Music, and more. It was fun to do a longer podcast that’s free to kind of meander through different topics, and I think we covered a lot.

Next, on App Stories, Vic Hudson interviewed me about how Sunlit came to be. We talk about App.net, design choices in Sunlit, and the future for the app. There’s a lot in there that I’ve never talked about before. Hope you enjoy these episodes!

Sunlit 1.2

Sunlit version 1.2 is now available in the App Store. It includes a few minor improvements and one major change: you can now use the app with only a Flickr account. It no longer requires App.net.

We hope this will allow more people to try the app. At any time, you can always add your App.net account to the app’s settings and it will unlock the more advanced features: syncing, sharing stories to other App.net users, and multi-user collaboration so that anyone can add photos and edit text in a story.

Making App.net optional instead of required meant rethinking what the minimum features were that all users should have. Obviously you have to be able to create stories, add photos, include text descriptions, and use filters. But we also kept coming back to one thing: we could not ship without also supporting web publishing. The bulk of work on Sunlit 1.2 was creating a parallel implementation for publishing that would seamlessly work with exactly the same UI, with or without App.net.

Some people may ask why we chose Flickr instead of creating our own user accounts system, or simply having no registration. To support publishing, it helps to have some unique username for a user, and a secure way to authenticate them on the server. It won’t surprise anyone to hear that a lot of people have Yahoo accounts. With a redesigned web and mobile experience, plus 1 TB of free photo storage, Yahoo’s giving Flickr something of a new resurgence. There’s a lot we could build on the Flickr API.

At the same time, Sunlit’s App.net support is a powerful differentiator and we’ll continue to improve it. It lets you own your data, share it with other apps like Ohai, and sync to multiple users. I still believe in the App.net API and user community; it’s too good a platform to give up on.

The risk of a small platform

Marco Arment responds to my comment that developers should have seen the potential of the App.net API as something much bigger than Twitter. I wanted my post to be short, but Marco makes good points that are worth following up on. He writes:

“Building an app on someone else’s API, rather than making your own, is a huge risk: it usually only pays off if the service provides a huge existing userbase and hard-to-duplicate functionality. App.net never offered either. They started out facing the typical social-network chicken-and-egg problem, put a huge paywall in front to prevent any growth, and tried to alleviate that by adding more chicken-and-egg problems to their offerings.”

Building entirely on App.net for Sunlit was indeed a huge risk, and one that we expected would take time to pay off. It was a bet on the future. We are incredibly proud of our app and the response it got in the App.net community, but our goal was always to make an app that appealed to everyone, not just a small niche of tech folks. We’ve actually been working for over a month on a new version of Sunlit that expands the reach of the app beyond App.net, and coincidentally it just went into review at Apple this week.

But I think the chicken-and-egg problem was solvable. The main issue with iOS apps is that they couldn’t sign up a new user directly in the app. This made sense when App.net was a paid-only service, because you’d run into in-app purchase issues with Apple, but it became more technically feasible when the free tier launched.

The App.net founders also seemed receptive to the idea. There just wasn’t time to make it happen. I believe this single roadblock prevented any potentially-mainstream killer apps built on App.net from getting off the ground. If it’s not easy to open a third-party app, create an account, and start using the service, too many people will give up. (Our numbers showed that only 40% of Sunlit downloads actually signed in to use the app for real.)

However, building our own backend for the app would also be very challenging and expensive. We are not syncing small bits of data around. It’s a photo sharing app, so right off the bat you’ve got big files that have to be hosted somewhere. On top of that there’s collaboration features, so you need not just user accounts but private sync channels that have specific read/write access to certain users. Plus all the metadata and formats to support syncing text, photos, and location check-in information. Not to mention publishing HTML, thumbnails, and maps. It’s daunting.

(In fact, it’s so daunting, I don’t think there’s a single app in the App Store that has feature-parity with Sunlit. The app simply could not have been built by a tiny team of 2 part-time developers if building a whole backend infrastructure first was a prerequisite.)

Marco closes with this:

“As much as App.net wanted to be — and eventually was — much more than a Twitter clone, it got the vast majority of its initial funding, enthusiasm, and developer support from people’s anger at Twitter’s dickification. But internet outrage doesn’t last long. Since App.net never became the new primary place where our friends all hung out, most of us never left Twitter — we all just accept that they’re dicks now, and we forgot about App.net.”

There’s an argument to be made that App.net’s core mistake was building the Alpha web interface only far enough to match Twitter’s features and then moving on to other things. Instead, they could have kept improving Alpha until it was significantly better than Twitter, so good that it couldn’t be ignored. By doing so, maybe they would have also more effectively demonstrated the power of the API underneath.

I assume that App.net chose not to do this so they wouldn’t compete with developers. After all, the service was founded on the idea that developers should be respected and given every opportunity to succeed. Finding the right balance to showcase the platform with first-party apps without stepping on developers is not always easy. We can argue about which missteps were the most costly, but the founders never wavered on their original principles and they promoted every app that launched on the platform. That means something.

As for outrage not lasting long on the internet, Marco’s totally right. I just don’t forget that easily.

Prompt for push notifications

David Smith says to not bother the user with alerts on first launch:

“I have just sorted through the App Store and settled on trying out your app. I open it up and you immediately ask if you can send me Push Notifications? I have no context about what these are going to be used for or why they might be useful to me.”

I agree. For Sunlit, we only prompt to enable push notifications after you’ve chosen to enable sharing for a story. While it might be useful to have push notifications for everyone, by waiting until we really need it, most users are never bothered with the alert. And it forced us to focus on specific and valuable uses of notifications, such as sending a push notification when someone subscribes to your shared story.

Podcast appearances and slides

I forgot to mention a few weeks back that I was a guest on the iPhreaks Show podcast. The format is a panel of regulars and usually one guest, making it feel more like a roundtable discussion. They had me on to talk about subscription pricing: charging every month for your app or service.

Some of what we talked about was covered in 2 talks I gave last year about subscriptions, at NSConference and CocoaConf Dallas. I’ve finally pulled together the slides from these talks and put the latest version from CocoaConf here as a PDF (17 MB). It’s different than the NSConference one, but I think works better standalone. You can still purchase the videos from NSConference 2013 to get my talk and many other great ones.

This week I was also on the Release Notes podcast with Joe Cieplinski and Charles Perry. They do a great job each episode focusing on something from the business side of running an indie software company, and they’ve had some excellent guests as well. From the show notes for episode 41:

“We talk about creating products vs. services, changing products from free to paid, and the advantages and challenges of subscription pricing. Manton also shares his experience in creating apps like Sunlit that build on top of other services like Twitter and App.net, his recent foray into freemium pricing, and the launch of the new Core Intuition Jobs Board.”

If you enjoy Core Intuition, I think you’ll really like Release Notes. Let me know if you have any feedback on the show.

Sunlit 1.1

Today we shipped version 1.1 of Sunlit, our app for collecting photos and text together to make and publish stories. Some of the bigger changes include:

  • Instagram and Flickr import. You can now add any of your own Instagram or Flickr photos into a story. With Flickr, you can even browse from your Flickr sets.

  • Improved Dropbox support. The first version of Sunlit assumed most of your photos on Dropbox were in the Camera Uploads or Photos folder. For 1.1, we’ve added a full Dropbox browser so you can pick any folder you want.

  • Multi-user text syncing. Now anyone subscribed to a story can add both photos and text descriptions, and the text will sync to all users. This is a really powerful feature for collaborating on stories. We think it puts Sunlit in a class above any other app like this.

  • Confirm deleted photos. What happens if you let other people add photos to your story, but they accidentally delete one of your photos? Sunlit now tracks this and shows a special confirmation alert so that you can either allow the photo to be deleted or keep it.

There are other fixes and improvements too, which you can see in the release notes. Here are a few screenshots of the new Dropbox and Flickr screens:

Sunlit v1.1

Sunlit is available in the App store as a free download. If you like it, pay just $4.99 to unlock the full app, and leave a review in the App Store to help others discover the app. Thanks!

Launch Center Pro and Sunlit

I’ve long been a fan of Launch Center Pro, an iPhone app from my local Texas friends David Barnard and Justin Youens. It’s handy even for fairly simple tasks — firing off web searches or other shortcuts into apps — but it’s especially powerful when wiring up multiple apps together. For Sunlit it was nice to provide some full actions that Launch Center Pro users could use to automate bringing content into Sunlit.

Jonathan has the full rundown on the URL schemes that Sunlit supports and why we think they’re important. You can also use the Action Composer inside Launch Center Pro to access these actions without having to type them in.

And just today, Launch Center Pro for iPad shipped. Check it out and explore some of the many apps like Sunlit that are supported.

Launching as a paid app

Dan Counsell has a great post about paid vs. freemium pricing in the App Store, suggesting that paid apps are often still the best choice:

“Launching as a paid app is still one of the most straightforward and safest ways to enter the App Store. Regardless of what you may have heard or read, the paid app market is not dead. As long as you’re smart with your marketing and price carefully you can make a great return on your initial investment.”

I’m pretty sure we left some money on the table with our Sunlit launch by making it a free download. We had an audience of folks on App.net looking forward to picking it up, plus curious people who had signed up for our announcement mailing list, and others who would find out about it in the first week of press. Many of these people upgraded to the full version inside the app, but I believe many more would have bought it for a few bucks even if the app ultimately wasn’t for them.

And that’s how the App Store works, right? People are always buying 99-cent apps they don’t need. It seems wrong, coming from a Mac background where you download the demo of an app and then pay a fair price after trying it, but so much of the iOS App Store works on cheap gimmicks and over-the-top marketing. People will buy on the promise of an app alone.

But we made Sunlit free anyway, for two reasons. First, because it requires an App.net account, we didn’t want anyone to buy it and then decide not to sign up for an App.net account, making the app they paid for worthless. It’s been great to see people sign up for App.net just to use the app, but we’re realistic enough to know that not everyone will do that.

Second, and most importantly, we have big plans for the app. Plans that include reaching people who don’t pay for apps often. I want my kids to be using this so that when we go on trips, all our best photos can sync to everyone’s device. I want extended family to use this, so that grandparents can stay in touch with what their children and grandchildren are up to. I want it to start free so that anyone can try it, because you never know who’s going to take the app and use it for something new, for ideas we haven’t even thought of.

Sunlit 1.0 is about laying the groundwork. I don’t want to change the price again, and our eye is on the market 6 months from now, a year from now. I think free with in-app purchase is the right approach for that.

Core Intuition 121

On the latest episode of Core Intuition, we talk about how the Sunlit launch is going, expanding on my post about Sunlit and Storehouse. We also follow up with some comments from the Glassboard on privacy policies and the App Store review guidelines.

This week’s show was sponsored by CocoaConf. They have 5 cities planned for the next few months: Chicago, Washington DC, Austin, San Jose, and Raleigh. I’ll be speaking at the stop here in Austin. If you’re in the area and attending, hope to see you there!

Press for Sunlit

We’ve been really happy to see the reviews of Sunlit popping up around the web. With a new type of app like this, there’s always the risk that people won’t get it. But that hasn’t been a problem at all. I’ve included some quotes below.

Jon Russell on The Next Web:

“The design is beautifully clean and the app is easy to navigate. […] Sunlit is an easy way to curate a collection of images that you actually want to share.”

Federico Viticci on MacStories:

“You choose some photos that ‘tell a story’ – could be a trip, a family gathering, anything you want to remember – and the app pulls in their metadata for date and location. You can add text comments to jot down memories, import photos from Dropbox if you don’t keep them in the Camera Roll, and even add check-ins manually, from Foursquare, or from Steve Streza’s Ohai app.”

John Gruber on Daring Fireball:

“Sunlit has an interesting collaboration and sync model, based on App.net, and a clever integration of maps. You can publish stories on the web, but most of the features are geared toward private group sharing and collaboration through the app.”

Thorin Klosowski on Lifehacker:

“The app itself is great looking and provides fantastic maps to go along with your photos as well as a place to write down any thoughts you might have.”

Charlie Sorrel on Cult of Mac:

“Apps like Sunlit make sharing your pictures easy, fun and fast.”

Thanks to everyone who tried the app and told people about it. Version 1.0.1 was approved this week, and you can download it for free and upgrade inside the app. Enjoy!

Sunlit maps

Map

iOS already ships with a mapping framework from Apple that all apps can use, so why did we ignore it in Sunlit and use Mapbox instead? Two main reasons:

Custom map colors. I was interested in creating beautiful new maps that would give Sunlit a unique design. Maps in every other iOS app look exactly the same. Sunlit is automatically more distinctive just by choosing something different, and we barely scratched the surface of the customization that is possible on Mapbox.

Direct web API. Mapbox gives you access to your maps not just in a native iOS map view, but also over the web. For the story backgrounds in Sunlit, we grab rendered maps directly with an HTTP call. This is a lot simpler and faster than having to build an interactive map view and snapshot it.

It also helped that I’ve been following the cool stuff Mapbox has been doing ever since Justin Miller joined their team a few years ago. I could tell this was a company that wanted to push the technology of maps forward. Apple needs to spend all their time building a viable alternative to Google Maps — driving directions, business locations, better search. But I don’t care about any of those things in my app. For Sunlit I want to use a framework from people who clearly love maps, and I think that’s Mapbox.

Sunlit sync and publishing

It was Macworld Expo in 1997, and Steve Jobs had just come back to Apple. Somehow I was lucky enough to get a seat in the keynote, and I sat there with a big grin on my face as Steve came out to talk about NeXTSTEP, which would eventually become the foundation for Mac OS X. He likened developing an app to constructing a building, one level at a time. A good OS allowed you to build higher.

Microsoft’s DOS gave you very little, so you had to start at the ground floor. Developing for the Mac and Windows was like starting out on a 5-story building. But the developer tools from NeXT were like starting out on the 20th floor, because they were so advanced, because they “lifted the developer up” and let apps be developed more quickly than if you had to deal with all the basic foundational stuff every app needs.

I think the App.net API is that same kind of advancement for apps compared to most other web APIs. It is significantly more consistent and full-featured than anything else out there.

Sunlit syncs stories and photos with App.net, using your App.net private file storage (for storing photo data) as well as private channels and messages (for syncing story titles, permissions, and other metadata). We like this solution because everyone who signs in to the app with their App.net credentials gets sync automatically. It also means that if you authorize other apps to see your App.net files, you can manage the data Sunlit syncs there, or get it out again without us having to directly build an export feature.

(Although we do offer a number of export choices in Sunlit, such as saving photos to your camera roll, sharing them on social networks, or sending them to any app that supports “Open In”. We do this with OvershareKit.)

Publishing in Sunlit is another feature that utilizes App.net file storage. It allows you to take a story — photos and text — and publish it to a URL. The URL is public, but it’s not linked from anywhere unless you directly share the URL with someone. This makes it convenient for quickly publishing a set of photos and sending the link to family, for example.

Here’s what the published stories currently look like: http://sunlit.io/manton/nationalparks

On the surface this may look like Sunlit is uploading photos and other data to sunlit.io, where it’s probably stored in a relational database or on the server filesystem somewhere. But that’s not how it works at all.

The iPhone app actually uploads all photos to App.net file storage, marks the new files public, then generates a static HTML page and also uploads that to App.net. It then registers the story with sunlit.io, which caches the HTML just to make things a little faster. We never store any photos on sunlit.io itself, instead merely referencing their public URLs on App.net. (View source on the page to see the proof.)

This difference means you can move the site anywhere just by copying files from App.net, with any number of available file management tools. Or just copy the HTML file to your own server to serve the page from your own domain. The CSS and JavaScript is all bundled inline in the HTML, except jQuery, which loads from a URL.

We think this approach makes the whole system a lot more flexible and open. Your data is never hidden inside the app and your published pages are never locked behind a server.

Several months ago I wrote this about App.net:

“The promise of App.net is bigger than one type of app. App.net isn’t just a blank slate; it’s an amplifier. It’s waiting to power the next new idea and help it grow into something big.”

I still believe that. It’s making apps easier to build and more powerful, just like NeXTSTEP was. There’s really no other web platform like it. That’s why we picked it for Sunlit.

No coincidence

We released Sunlit yesterday and the response has been really great. It’s so amazing to see all the replies on App.net, emails of encouragement, and tweets telling people about the app. I think 1.0 is off to an excellent start. We’ll keep making it better.

I was a little anxious about the release, though. It was a challenging app to build, and it’s different enough from other apps that it’s hard to predict how the market will react. I was also surprised that the same morning we shipped our app, Storehouse was released. This is a beautiful iPad app from Mark Kawano and his new team. The interactions are extremely polished and it’s getting justifiably good praise and lengthy write-ups from Techcrunch and elsewhere.

(Of course, we think Sunlit is pretty awesome too. I’ll be writing more about what makes it special in future blog posts, especially highlighting how it leverages the App.net API, the URL schemes support, and why we use Mapbox.)

At first I was stunned by Storehouse. How could it be that we were both working on a similar idea for the last year, and both apps were finished at the same time? The apps have different UIs, and a different approach, maybe even different goals, but they both create stories, revolve around photos, and publish to the web. I’ve seen a lot of people compare the apps, and I think that’s fair.

To be honest, for a few minutes I was a little bummed out. If I had seen this tweet from Jackson Harper at the time, and not later in the day, I might have been nodding in agreement:

“Having a somewhat similar free app from a funded developer launch the same day as you must be a little disappointing.”

That doesn’t really capture it, though, because I’m also really happy for the Storehouse team. I’ve known Mark for years. I’m confident that his app is going to be one of the most impressive apps on so many people’s iPads.

And they have a full-time team. Jon and I are just two guys, working in our spare time to build something — something we think is new, something for us to use, but also something ambitious in how big it could be.

It seems like a big coincidence that both apps shipped with a similar set of features, but now I realize why it happened. Sure, it’s funny that the release days were identical, and not a few days or weeks apart. But the general timing shouldn’t be at all surprising, because this is an idea whose time has come. There are photo “album”-type apps popping up all over the App Store, such as Cluster, Albumatic, and Heyday, all of which Apple has featured. Plus there are web-based apps like Exposure and Medium, which was recently updated with great photo support as well.

It’s no coincidence; it’s just a good idea. And it’s a huge market: everyone who loves writing and taking photos. That understanding gives me a lot of confidence to double down on our plans for Sunlit 1.1, 1.2, and after. 2014 is going to be an awesome year for sharing stories.

Why we built Sunlit

Montreal

You have that feeling when hanging out with friends — everyone snapping pictures of their surroundings, of people, events, food, anything — that photo sharing should be better. That years later, you should be able to go back to that time, to see the best photos collected together from several people. And not just photos, but maps of where you were, and text to describe its significance.

One afternoon before Çingleton in 2012, this subject came up as Jonathan Hays and I were taking photos around Montreal. It seemed remarkable and disappointing to us that there was no easy way to put those photos together. And I liked the idea of buildling a new app around photos, with the same themes of curation and preserving past events that are so important to my other Riverfold products.

So we let the idea sit in the back of our minds, and later we wrote a little code as time allowed. At the App.net hackathon before WWDC 2013 we dove into the project in earnest, figuring out how it would sync, then over the summer took some more time to think through the user experience.

Sharing a single photo has been done a hundred times on iOS. Instagram was an important app to nail the timeline UI, and Favd is currently my favorite way to post and browse new photos (it’s really great). But hardly anyone has even attempted to tackle photo curation, group sharing, and publishing, let alone gotten it right. Sunlit 1.0 is our first pass at this and we couldn’t be more excited about trying to solve a new problem with photos.

They say you should spend money on experiences — on memories, not things. Sunlit helps you put those memories together, share them as a group, and rediscover them when it matters. The first version will ship tomorrow. I hope you like it.

Never ship, never fail

Andy Brice had a good post recently about shipping:

“Continually abandoning work in progress for a new idea is also a form of cowardice. If I never ship, then I can’t fail. But I can’t succeed either. And I won’t learn anything useful from a string of half-finished products that never shipped.”

I’ve been reminding myself of this to combat any self-doubt as Jon and I prepare Sunlit 1.0 for release. There is plenty to worry about: bugs we might have missed, potential confusion about how sync works, whether free with in-app purchase was the right call. But I’m proud that we took an idea from well over a year ago, prototyped it, rewrote it, and refined it, finally building it into an app that will ship.

Quality photos

I’ve been slowly moving photos to Dropbox over the last year, using the Dropbox camera import feature so that all new photos from my phone get synced up automatically. It’s worked out so well that last week I decided to go all in. I moved about 13 years of photos there and upgraded to Dropbox’s 200 GB of storage.

In the process I’ve been poking around at old photos, photos of my kids from 6-7 years ago when we had a basic point-and-shoot camera. There are some great photos in there, but also so many that are blurry or out of focus. We were too cheap to buy a good camera at the time. Now I would pay any amount of money to go back in time and reshoot the photos with a better camera.

Gus Mueller learned this lesson more quickly than I did:

“It’s quite amazing what a difference a nice lens and a nice camera can do. Kirstin was shocked at the quality. The cameras on iPhones are getting better, but they don’t hold a candle to camera tech today.”

We don’t use our DSLR every day. It’s for big events, birthdays, school performances, and the iPhone suffices for the rest of the time. But it’s worth every penny and more, to look back on these photos years later and know we have captured them at their best.

Photos are also at the heart of my new app, Sunlit. We’ll be shipping soon. Enter your email address on the site to be notified when it hits the App Store.