#123: Introducing Feed Wrangler.
00:00:00
◼
►
Hello and welcome to Developing Perspective. Developing Perspective is a podcast covering
00:00:03
◼
►
news of note in iOS development, Apple and the like. I'm your host, David Smith. I'm
00:00:07
◼
►
an independent iOS and Mac developer based in the Herne, Virginia. This is show number
00:00:11
◼
►
123, and today is Thursday, May 2nd, 2013. Developing Perspective is never longer than
00:00:17
◼
►
15 minutes, so let's get started. All right, so it has been a wild week for me. If you've
00:00:23
◼
►
been paying attention, this week I launched Feed Wrangler, my latest product, application,
00:00:28
◼
►
platform, whatever you want to call it.
00:00:31
◼
►
I actually intended originally to do this show the day of launch
00:00:34
◼
►
and to have that initial, hey, this is how the day went.
00:00:37
◼
►
But I was a little bit crazy.
00:00:39
◼
►
And it's been a wild week getting everything--
00:00:43
◼
►
I can give attention to everything that needs attention.
00:00:46
◼
►
And so I'll talk a little bit about that process,
00:00:48
◼
►
a little bit about what's going on.
00:00:49
◼
►
But first, now that I can talk openly and freely about it,
00:00:53
◼
►
I can talk about what Free Drangler is, where it came from.
00:00:56
◼
►
So Feed Wrangler is an RSS service.
00:01:00
◼
►
It was actually something that I started months ago
00:01:02
◼
►
before Google Reader even announced
00:01:04
◼
►
that they were going to be going out of business.
00:01:06
◼
►
It's something that I've wanted for a long time.
00:01:09
◼
►
I think about RSS in a slightly different way
00:01:11
◼
►
than a lot of services do in terms of I
00:01:16
◼
►
have a very focused and intentional sort of way
00:01:19
◼
►
in which I like to read my news and the way in which I like
00:01:21
◼
►
to follow things and the way I like to process it.
00:01:24
◼
►
And so I always wanted a system that
00:01:26
◼
►
was more geared towards that, that sort of heads
00:01:29
◼
►
in that direction.
00:01:30
◼
►
And so that's what I did with Feed Wrangler.
00:01:31
◼
►
And so it's an RSS aggregation service, kind of like you'd
00:01:34
◼
►
You give it a collection of feeds,
00:01:36
◼
►
it goes and collects all the articles and linked items
00:01:38
◼
►
from that and pulls them in.
00:01:41
◼
►
And then the place where it starts to then diverge and get
00:01:45
◼
►
beyond that is in really in two ways.
00:01:48
◼
►
It has a few power user features,
00:01:49
◼
►
things that help you really organize your news.
00:01:52
◼
►
So you can do things like what I call smart streams, which
00:01:54
◼
►
are either collections of feeds, which is like its simplest form,
00:01:59
◼
►
where basically you can just say, take these five feeds.
00:02:01
◼
►
These are my must check feeds.
00:02:04
◼
►
And you can put them into a list.
00:02:06
◼
►
And so if you have a little bit of time,
00:02:08
◼
►
you can read through your whole timeline.
00:02:09
◼
►
You can just quickly hit that and make sure you're up to date
00:02:14
◼
►
on whatever the most important things are,
00:02:15
◼
►
those kind of feeds that you always want to check.
00:02:18
◼
►
You can also apply search filters to those.
00:02:20
◼
►
I'm actually working on making it so you can apply
00:02:22
◼
►
regular expressions to them.
00:02:24
◼
►
So there's a lot of work that is heading in that direction.
00:02:26
◼
►
But it's a way to really narrowly tailor and aggregate
00:02:29
◼
►
your news in a way that's rather than just having
00:02:31
◼
►
this huge, massive, overwhelming inbox of all the news
00:02:34
◼
►
everywhere that you have to plow through.
00:02:36
◼
►
It gives you a nice, easy way to, in a proactive way,
00:02:41
◼
►
Also, it has things like filters, which I like.
00:02:43
◼
►
It lets you take a particular keyword,
00:02:45
◼
►
and items that match that keyword
00:02:47
◼
►
are automatically marked as read in the system.
00:02:50
◼
►
So this is a great thing.
00:02:51
◼
►
I find that there are certain feeds
00:02:53
◼
►
that I like half the content.
00:02:56
◼
►
Say that they're talking about mobile development,
00:02:59
◼
►
but I'm only interested in the iOS stuff.
00:03:01
◼
►
I'm not interested in, say, the Windows Phone stuff.
00:03:03
◼
►
So I could add a Windows Phone filter,
00:03:05
◼
►
and I wouldn't see the articles up front
00:03:08
◼
►
that match that criteria.
00:03:10
◼
►
And those are kind of things.
00:03:12
◼
►
And then additionally, I wanted a service
00:03:14
◼
►
that really had a next level of integration
00:03:17
◼
►
with a read-letter service.
00:03:18
◼
►
I personally use Instapaper.
00:03:20
◼
►
FeederAngler integrates the same way
00:03:21
◼
►
with Instapaper and Pocket.
00:03:24
◼
►
And really what I want is a service
00:03:25
◼
►
that it can be a bit more intelligent about what
00:03:29
◼
►
So often what I'll do-- this is kind of a typical workflow for
00:03:31
◼
►
me-- is during the day, I'll be kind of sitting on Twitter
00:03:34
◼
►
or whatever.
00:03:35
◼
►
Articles will come to my attention, interesting things
00:03:38
◼
►
people post.
00:03:39
◼
►
And typically what I'll do is just write in Twitter,
00:03:41
◼
►
write in Tweetbot, in the browser, whatever.
00:03:43
◼
►
I can right click on it and say, send to Instapaper.
00:03:45
◼
►
It goes into my queue, which is great,
00:03:48
◼
►
except for almost always what happens then is that night, a
00:03:52
◼
►
whole bunch of art, like I'll find that same article in my
00:03:55
◼
►
RSS feed, you know, for certain writers, certain people, it's
00:03:58
◼
►
the things that I am interested in are almost always also
00:04:03
◼
►
subscribed to that author's feed. And so what I wanted to do
00:04:06
◼
►
is, you know, for example, in that instance, if an article is
00:04:09
◼
►
already in your insta paper queue, or in your pocket queue,
00:04:11
◼
►
and feed wrangler can detect that, it'll go ahead and mark it
00:04:14
◼
►
as read optionally, it's up to you, you know, you can, this is
00:04:17
◼
►
feature that you can enable, but you can just say, this is what I
00:04:19
◼
►
do is that, you know, I just want any focus. What I've said
00:04:21
◼
►
is, I put it in my Instagram, I've said, I'm going to read it
00:04:24
◼
►
later, I don't need to see it again, I don't need to be
00:04:26
◼
►
constantly reminded of this article that I've already said,
00:04:28
◼
►
I'm going to deal with later. So that's the kind of thing that
00:04:30
◼
►
I've been doing. And so that's what feed Wrangler is. And it
00:04:33
◼
►
launched on Tuesday, and it's been pretty well received, kind
00:04:35
◼
►
of blown away in some ways by the nice things people have said
00:04:38
◼
►
about it. And, you know, it's just sort of a start. One thing
00:04:42
◼
►
that I'm doing very differently with feed Wrangler than I have
00:04:44
◼
►
in the past. And what I've done with other services or other products that I've launched
00:04:48
◼
►
is that feederangler rather than being a one-time charge or those types of things, you know,
00:04:53
◼
►
rather than like a weather app where you're just like, you just buy it and it just kind
00:04:56
◼
►
of works. Feederangler I'm structuring as a subscription. I'm structuring it as a yearly
00:05:00
◼
►
priced service that you buy for about $18.99 a year. I wish I could do $19, but Apple doesn't
00:05:08
◼
►
pricing in whole dollars. So it's $18.99 a year. And what I'm
00:05:13
◼
►
trying to do there is create a sustainable platform to do this
00:05:17
◼
►
with. Definitely a problem like this is kind of tricky. If
00:05:20
◼
►
you're doing it kind of like I am sort of a one man shop
00:05:23
◼
►
approach where you're going up against these large venture
00:05:26
◼
►
backed companies, these larger organizations that have lots of
00:05:29
◼
►
resources and manpower. And so what I really want is to have a
00:05:33
◼
►
sustainable way to do this. You know, I don't want it to be
00:05:36
◼
►
something that I need to constantly be worried about kind of the income and revenue of the
00:05:41
◼
►
business I'd like to if I can kind of stabilize that a little bit, do it on a subscription
00:05:45
◼
►
basis so that I can kind of plan and know what you know, what sort of what level of
00:05:49
◼
►
effort and I can afford to put into it because of the sort of revenue I'm going to get and
00:05:53
◼
►
it's not like every day with a typical app store sale and it's like every day you have
00:05:57
◼
►
to find a new set of customers in a way that with a subscription model, you don't quite
00:06:01
◼
►
You know, you have a certain amount of cancellations, obviously, but you have a bit more dependability
00:06:07
◼
►
of that income.
00:06:08
◼
►
It's not like you need to upgrade revenue in the same way.
00:06:09
◼
►
It's like every year, essentially, is upgrade revenue.
00:06:12
◼
►
And then my job, and this is the thing that I really love, it changes a little bit the
00:06:15
◼
►
dynamic of sort of my job as your developer.
00:06:18
◼
►
Because in a typical app sales model, my job is to try and make that initial sale.
00:06:25
◼
►
And really, that's it, in the sense that once you've made that first sale, I've gotten most
00:06:31
◼
►
of the money I'm ever going to get from you. And so financially, my interests are not necessarily
00:06:35
◼
►
aligned with making you happier and happier and happier and happier. Now, obviously, I
00:06:40
◼
►
want to make you happy. I want to increase goodwill and word of mouth and those types
00:06:45
◼
►
of things. But it's always been kind of complicated for me because what do I, what do I, you know,
00:06:51
◼
►
how do you sort of balance those two things where you get, you know, you launch an app
00:06:55
◼
►
that has a lot of say, has the classic thing in iOS. It's a big spike up at the beginning,
00:06:59
◼
►
you know, a lot of income in the first couple of days, and then it starts to tail off and
00:07:02
◼
►
it starts to tail off. And you start to be still, you know, you still have all these
00:07:05
◼
►
users, those people who gave you money with certain expectations. And it's like, how do
00:07:09
◼
►
you kind of square those two? And what I like about subscriptions, and this is so far, it
00:07:13
◼
►
seems to be going well, and I hope this kind of thing can continue, is what I'd love is
00:07:18
◼
►
to be able to get to a point where it's like my job now is to make all the people who have
00:07:23
◼
►
signed up delighted, so delighted with the service that in a year, they're delighted
00:07:28
◼
►
to give me another another round of subscription. And that's a very different sort of psychologically,
00:07:33
◼
►
it's a very different model that I have this very definite goal in mind that it's like,
00:07:37
◼
►
okay, I'm going to keep making the product better and better and better and better and
00:07:40
◼
►
then making the service better and better and better and better, so that people want
00:07:44
◼
►
to stay with it. They say that people want to stay with a product and service and are
00:07:48
◼
►
excited about it. And we'll, you know, share it out from there. There's kind of some interesting
00:07:53
◼
►
things that come along with this. I definitely had gotten a lot of feedback about why I don't
00:07:57
◼
►
of a trial or a demo. So right now the service, if you want to sign up, you have to sign up.
00:08:01
◼
►
I have a, you know, sort of a risk-free trial in the sense that if you sign up and you don't
00:08:06
◼
►
like it, I'll give you your money back. One thing I love actually about having a web-based
00:08:10
◼
►
system, I use Stripe for credit card payments, is if you don't like the service, I can very
00:08:15
◼
►
easily just go click a button and give you your money back. Because at the end of the
00:08:18
◼
►
day, what I don't want to do, it's like what I want is a, you know, a reasonably large
00:08:23
◼
►
base or whatever, a sustainable base of users who are delighted to have paid for the service.
00:08:29
◼
►
If that's not you, if you don't fall into that category, if you try to just not your
00:08:32
◼
►
thing, I don't, that's great. I mean, I wish I could make you happy. And you all certainly
00:08:38
◼
►
am open to suggestions and things. And you've had some people who say like, I like the service,
00:08:41
◼
►
if it had this, this and this, I'd stay with it. Fair enough. That's great to know. And
00:08:45
◼
►
I'll kind of keep that in mind. It's great to be able to do that in a way that with the
00:08:49
◼
►
iOS App Store, which is a little bit trickier, where all refunds are processed by Apple and
00:08:53
◼
►
you have no control over that. It's really hard to kind of navigate that when someone
00:08:56
◼
►
says, "Oh, I don't like it. Can you give me my money back?" It's like, "Well, not really.
00:08:59
◼
►
You have to go to Apple. You have to kind of navigate it that way."
00:09:02
◼
►
And so that's kind of been a nice thing that I can kind of be able to focus on what is
00:09:09
◼
►
essentially going to be a smaller group of hopefully more loyal and dedicated users.
00:09:15
◼
►
And I like that business model. I like where it's going. I'm glad that the launch went
00:09:18
◼
►
well enough to kind of validate it that I can kind of run in
00:09:20
◼
►
this direction. And honestly, just taking a step back, one
00:09:23
◼
►
thing that I've said many times, I think on the show, and that's
00:09:27
◼
►
very true of the way that I make do my business is a lot of what
00:09:30
◼
►
I do is a question of building sustain, being being able to
00:09:34
◼
►
serve build sustainable business generally, by averages that you
00:09:38
◼
►
know, it's like feed Wrangler, I don't expect will ever be
00:09:40
◼
►
necessarily my, my, my, my, my sole income, my sole focus, I
00:09:44
◼
►
have a lot of different things that I do have a lot of
00:09:46
◼
►
different applications. But it'll be one of the main focuses and I sort of what I'm hoping
00:09:50
◼
►
to do, and it seems to be heading in that direction, is to yourself to build another
00:09:54
◼
►
stool leg to the stool that my business sits on that hopefully can keep me doing this,
00:09:58
◼
►
you know, keeping doing the thing that I like indefinitely. Um, let's see, one of the things
00:10:03
◼
►
that I want to talk about that was just always kind of the funny thing. So obviously, I launched
00:10:08
◼
►
on Tuesday, and essentially, I mean, almost immediately there had ran all kinds of server
00:10:13
◼
►
travel, server problems, all kinds of things were going on.
00:10:16
◼
►
It was actually kind of funny.
00:10:17
◼
►
A friend of mine, Rob Ryan, who actually comes in and visits
00:10:21
◼
►
the office I work in periodically,
00:10:22
◼
►
who actually launched Briefs, which is an awesome product
00:10:25
◼
►
if you're interested in, for rapid prototyping.
00:10:28
◼
►
But he launched that on Wednesday,
00:10:29
◼
►
so definitely check that out.
00:10:31
◼
►
But we were both in this mode of getting ready to launch
00:10:33
◼
►
and getting ready to launch.
00:10:34
◼
►
And then we were just here till the late hours
00:10:37
◼
►
getting everything ready.
00:10:38
◼
►
He was working on his issues.
00:10:39
◼
►
I was working on my issues.
00:10:41
◼
►
And that first launch day is always intimidating.
00:10:44
◼
►
No matter how well you plan for it, no matter how much you think you're set, there will
00:10:47
◼
►
always be something that comes up.
00:10:49
◼
►
There will always be something that catches you up and tricks you.
00:10:52
◼
►
There were some assumptions that I was making about the kinds of feeds that people would
00:10:58
◼
►
have or even just like my test set of feeds wasn't a good representation of kind of what
00:11:04
◼
►
some people have and so there are all kinds of parsing errors and load problems.
00:11:07
◼
►
And it's like, I love that it's a cloud service, though,
00:11:10
◼
►
where I can kind of-- I went into-- and I think
00:11:12
◼
►
I mentioned this last time.
00:11:13
◼
►
I've structured a lot of it in terms
00:11:15
◼
►
of this very queue-based process.
00:11:17
◼
►
And so it's nice that as my queues started
00:11:19
◼
►
to get out of control, and rather
00:11:21
◼
►
that things were being put in faster than they were being
00:11:25
◼
►
processed, I could just spin up some more workers
00:11:28
◼
►
and a little more processes to go through and run the imports,
00:11:30
◼
►
run all the things.
00:11:31
◼
►
And so I definitely think that validates
00:11:33
◼
►
a lot of that concept that I was doing of saying,
00:11:35
◼
►
I want to build a web server that
00:11:38
◼
►
has this reliability that's built in from a Q-based
00:11:41
◼
►
And it also works out nicely.
00:11:42
◼
►
I've had nodes go down in my processing queue,
00:11:45
◼
►
but that's fine.
00:11:46
◼
►
I have to deal with retrying those tasks.
00:11:49
◼
►
But other than that, other things just
00:11:51
◼
►
pick up the slack and keep working.
00:11:53
◼
►
So I definitely recommend that approach,
00:11:54
◼
►
and it seems to have worked well.
00:11:56
◼
►
And I'm delighted to say that now I'm
00:11:57
◼
►
able to actually record this episode
00:11:59
◼
►
and to take a step back.
00:12:00
◼
►
Things have settled down.
00:12:02
◼
►
Things are working as planned.
00:12:03
◼
►
Last night I got up in the middle of the night
00:12:06
◼
►
to do some server upgrades, do some changes there.
00:12:09
◼
►
I turned out one of my big database machines
00:12:11
◼
►
didn't quite have enough memory, so I upgraded
00:12:13
◼
►
that and a few other things.
00:12:15
◼
►
But so far, things are good.
00:12:17
◼
►
And things are settling down.
00:12:18
◼
►
And I like that I can now sit back and start
00:12:20
◼
►
focusing on features again.
00:12:21
◼
►
Like, now that I've got the infrastructure in place,
00:12:23
◼
►
now that I've got the system to a place
00:12:25
◼
►
that it's stable and solid, that's really exciting to me
00:12:30
◼
►
and kind of to be able to be heading in that direction.
00:12:33
◼
►
And it's just kind of fun.
00:12:34
◼
►
I mean, I love that I build-- I love building things
00:12:38
◼
►
that I use on a regular basis.
00:12:40
◼
►
And it's kind of part of one of the things
00:12:42
◼
►
that I'd struggled with initially
00:12:43
◼
►
with some of my earlier apps.
00:12:45
◼
►
I-- were things that I thought were good ideas or interesting
00:12:48
◼
►
things in the marketplace.
00:12:50
◼
►
And what I found is it was very hard for me
00:12:52
◼
►
to stay motivated in creating those and sustaining them,
00:12:55
◼
►
especially in terms of doing updates and keeping them going,
00:12:58
◼
►
when I didn't really use them on a regular basis.
00:13:01
◼
►
And that's part of why I made Check the Weather, you know,
00:13:02
◼
►
weather app that I use all the time, because I need to constantly know what the weather
00:13:06
◼
►
is like, what it's going to be like that day.
00:13:08
◼
►
And now I have an RSS reader, which is something that I use on a regular regular, you know,
00:13:12
◼
►
I use constantly.
00:13:13
◼
►
You know, it's probably the probably the second or third most used app on my phone.
00:13:18
◼
►
It's probably Tweetbot first, probably it and then mail.
00:13:22
◼
►
So it's pretty, it's pretty high there in terms of something that I use.
00:13:25
◼
►
And so now it's great because I have all these ideas and motivations to make it better.
00:13:29
◼
►
I love aligning those two interests,
00:13:30
◼
►
so that I'm excited and motivated
00:13:32
◼
►
to make the product better.
00:13:34
◼
►
And I'm excited and motivated to share that with other people,
00:13:38
◼
►
and hopefully let them benefit from that experience as well.
00:13:42
◼
►
All right, so that's it about Feed Wrangler for today.
00:13:44
◼
►
If you have questions about the process, the launch process,
00:13:47
◼
►
specific things in the thing, definitely send me an email,
00:13:49
◼
►
david@developingperspective.com.
00:13:51
◼
►
And I'd be happy to address them on the show.
00:13:53
◼
►
I'll probably be talking about a little bit of post-mortem
00:13:56
◼
►
over the next week or two.
00:13:58
◼
►
otherwise kind of random notes. I did get a ticket to WWDC. I
00:14:02
◼
►
don't think I think they went on sale after I recorded the last
00:14:07
◼
►
show. So that was kind of exciting. I was just I just
00:14:09
◼
►
happened to get it. I was, you know, sitting there, retry,
00:14:11
◼
►
retry, retry, and, you know, happened to be one of the lucky
00:14:15
◼
►
few who got a ticket that way. So I'll definitely be out there
00:14:17
◼
►
in California, in San Francisco for WWDC. If you're around, you
00:14:21
◼
►
know, of course, let me know we'll try and meet up exactly how
00:14:23
◼
►
that works. It's always a bit complicated, but definitely
00:14:25
◼
►
look for me in San Francisco then. And otherwise, yeah, it's been a busy week, a lot going on,
00:14:32
◼
►
and I hope you like Feed Wrangler. I hope you, if you're a listener to the show, if
00:14:35
◼
►
you're a frequent, if you feel like you get something out of it, I would definitely appreciate
00:14:39
◼
►
your support if you at least check it out, take a look, see if it's something that you
00:14:41
◼
►
want to do. I get a lot of people who ask, you know, what can I do to support developing
00:14:46
◼
►
perspective? The best thing is to, you know, support the products that I make to allow
00:14:50
◼
►
me to keep doing this. All right, that's it for today's show. As always, questions, comments,
00:14:54
◼
►
concerns and complaints, I'm on Twitter @_DavidSmith, DavidSmith@AppNet, and have a great week.