Putting the ‘mium’ in ‘Freemium’

For the past year, Cullect has been live wrapped in a subscription model based this “freemium” model I drew up back in the middle of 2006.

For Cullect, the benefit of this model have been obvious: even with a small number of paying customers – the servers are being paid for from subscription payments. For such a highly niche service with nearly no marketing effort – I’m declaring it a success.

On the Cashboard project I mentioned yesterday, I’m building toward a subscription model even more true to the above diagram. It seems like the right, most interesting, most challenging, and most sustainable, direction.

All the things that I expect to see from the other web apps launching in 2009.

Cullect Got 3rdPartyFeedback.com-ed

Ed Kohler1 has a new mechanical turk project – 3rdPartyFeedback.com. For $25, Ed will ask 10 people 3 standard questions about your website and send over their responses.

Obviously, I ran Cullect.com through Ed’s gauntlet.

Here are some of my favorites:

“I like the fact that the website design is spare and not flash heavy.”

“I don’t consider anything best current feature for this website.”

“Add some design…”

The full response is over at the Cullect blog.

I think Ed’s onto something with this service – especially at $0.83 / answer.

1. Ed’s the only man I know with a longer project list than my own.

9 Things Cullect Taught Me About Software

  • Forcing people to create an account to use your software is a bug.
  • if you’re not scared to deploy, you’ve stopped caring.
  • Murphy is alive and well.
  • Google and a bookself of technical books can be equally useless.
  • Good software is like an iceberg.
  • if you ask for money, people will give it to you.
  • Software is as hard as you make it. Don’t.
  • Most features can be removed and no one will notice.
  • A great project will eat everything in it’s path.

How To Cache Highly Dynamic Data in Rails with Memcache – Part 1

There are a number of ways increase Ruby on Rails performance through caching. Caching works because things don’t change….or don’t change frequently.

In Cullect, almost everything is dynamic, even Cullect’s HTML presentation format has 3 different states depending on access privileges and there are 8 other presentation formats available.

The standard page, action, and fragment caching make less sense when the ‘heaviest’ data are also the most dynamic – the feed items.

For the feed items, I’m using a building a custom memcached name-value-pair holding 10 attributes describing the request as the key name and the items themselves as the key value.

From the ‘show’ action in my controller:

key = "
#{item_count}:
#{attribute_1}:
#{attribute_2}:
#{attribute_3}:
#{attribute_4}:
#{etc...}"

Notice the first attribute in the key is the total number of items within a specific Cullect Reading List – which will change when a feed updates or an item is hidden – automatically expiring stale caches.

Then, I check the cache for the key and pull the items from the cache if it exists.

if Cache.get(key)
@allitems = Cache.get(key)

If there’s no key in the cache, I do the query and put the retrieved items into the cache.

else
@allitems = get_items(attribute_1, attribute_2, attribute_3, attribute_4, etc)
Cache.put key, @allitems
end

While this speeds up subsequent requests, there’s still the question of speeding up the initial request. I’ll save that for part 2.

Diversified Rhino Guarding

“If you’re building on someone else’s platform, whenever they are down, you are down. There is no way around that.” – Brian Breslin on why TwitBin development is stalled.

A year ago, I wrote about my hesitation of building on someone else’s platform. Since then, I launched Cullect. Which is nothing if not built atop OPP [1].

When I first started development on Cullect – it only supported OpenID. Only. Less popular and less understood than many other services. Today, Cullect extends 3 different platforms (4 if you count OpenID). Feels right. Feels successful. Tomorrow, I see that number increasing.

Will some services fall away? Maybe. I’m not married to any of them.

So, Cullect doesn’t care if you stop using your Twitter account and move to Tumblr. As I wrote then, I’m not interested in building on a single platform. There’s plenty of rhinos to guard.

Elsewhere:

“On top of that, there aren’t all that many rewards for building things on top of Twitter. Sure, there are tons of active Twitter users. But with all the outages and the arbitrary changes in the API limits, I just haven’t been feeling the love. Tweeterboard’s gone from a fun diversion to a distraction.” – Gene Smith

1. Other People’s Platforms 😉

Cullect.com – Moving Servers

Cullect was fast out-growing the Lifetime M Accelerator it started out on last summer, so this weekend I moved it to a bigger, 1GB Accelerator. As I write this, the database is migrating. After that, Cullect will be faster and have room to grow.

As part of this, I’ve started a proper blog for Cullect where I’ll be posts status updates, in-depth pieces on the decisions behind Cullect, and general bloggy stuff.

Cullect.com for Curation

As I’ve mentioned before, our lives are multi-faceted. Each facet has its own community of trusted experts. Some are friends, other are colleagues, or simply authoritative in their field.

If you’ve been following my development of Cullect, then you know early on, I switched from the label ‘Editors’ to ‘Curators’ to describe the people behind a reading list.

Curation better describes the what I see as a core function of Cullect – making an easily shareable list of relevant items on a very specific theme. Culling the bad. Collecting the good.

Earlier this week, I talked with a consultancy about how Cullect’s theme-specific (practice area, industry, etc) reading lists could augment their internal knowledge sharing and client relationships. Curated knowledge from your trusted experts.

Last night, via Twitter, Mike Keliher points me to this:

“[Curators are] identifiable subject matter experts who dive through mountains of digital information and distill it down to its most relevant, essential parts.” – Steve Rubel, Micropersuasion.com