

Ask HN: What should I build to support my web app? - marcamillion

One of the major reasons I wanted to apply to YC this spring was because I know that there are many things I haven't thought about - that I need to power my web app, that PG and the crew will be able to guide me along that path.<p>My wife is 3 months pregnant and I decided that now is not the best time, but I will be building my web app anyway.<p>So...my question is...for those HNers that have been through the YC process, or anybody that has built a successful web app, what else do we need to build to support the web app?<p>The ideal post will include off the shelf OSS scripts (assume the app is built in rails) that can be installed on the server to monitor server services and other things. It will also include a description of functionality for metrics that I will want to measure (e.g. conversions from free to paid users, etc.), feedback mechanism (to collect feedback from users).<p>There are stuff that I know I will need to be able to do (like easily processing refunds for customers). But there are stuff that I don't know that I will have to do, because this is my first web app.<p>I would like if the community can point me in the right direction...if not comments on this post, but providing links.<p>Thanks.
======
patio11
What you need on day one:

1) Something which solves problems for people. I assume you've got this
covered.

2) Some way to charge people money for solving their problems. I like Paypal
with e-junkie -- total integration time under 2 hours. Your mileage may vary
if you do subscriptions rather than one-time payments. Subscriptions scare me.
Look into Spreedly.

What you may eventually want to build, buy, adapt from OSS code, etc (I have
all of these in production and run a very small business):

1) Analytics software. Google Analytics is an easy snap-in for 1.0.

2) Conversion tracking. Again, GA for easy snap-in.

3) Funnel tracking. I like Mixpanel as opposed to GA. You can find out why
later.

4) A CMS to publish content (for any definition of content) in a fashion which
scales out of proportion to your personal time invested.

5) Blogging software because every small business should have a blog.
Wordpress is an easy snap-in.

6) Mailing lists. I did this 3 years after starting my business. Knowing what
I know now makes me sad I waited that long. MailChimp is an easy snap-in.

7) A/B testing. There are three acceptable options for Rails developers:
A/Bingo, Vanity (<http://vanity.labnotes.org>), or write your own. Friends
don't let friends use Google Website Optimizer. (I wrote A/Bingo, take this
recommendation with a grain of salt.)

8) Application health monitoring. At the simplest level, you want to make sure
that when somebody comes to your front page it returns HTTP 200. For that,
mon.itor.us is an easy snap-in. You can make this arbitrarily complex. For
example, I test every "moving part" on my site in an automated manner so that
I hear about stuff breaking before my users do. You can read about a recent
failure of this system (and all my other QC systems) on my blog. When it works
nobody hears about it. :)

9) Anti-spam stuff. Possibly applicable depending on what your application
lets people do.

10) An admin interface optimized for performing common customer service tasks.
I don't know what those are for your business. As you find out what they are,
automate or eliminate as many as possible.

11) An admin dashboard collecting in a single place the stats/graphs/etc that
drive your decisionmaking. I have an article about this somewhere.
[http://www.kalzumeus.com/2010/02/09/dashboard-design-for-
met...](http://www.kalzumeus.com/2010/02/09/dashboard-design-for-metrics-
savvy-software-companies/)

12) Optional but recommended: you presumably have some sort of bookkeeping or
accounting practices because eventually you'll need to file taxes. This
process presumably requires some sort of input from your business. Automate
the creation of that input.

13) Widgets for distributing your content on other people's website are a low-
investment way to get exposure which scales out of proportion to time
invested.

14) Database. Backups. Do you use MySQL? automysqlbackup is a script created
by the hands of God Himself and then planted into the minds of some
programmer. (Nota bene this assumes you have _one_ SQL server with modest
demands on it. Works for me, not for Facebook.)

15) Backups for all that stuff that isn't on the database. I let Slicehost
handle that.

16) Every app will eventually re-implement email. So will yours.

17) User satisfaction surveys. Easy, low-friction way to communicate with
users and receive their verbalized expressions of how you can better support
their needs. (Users are much more willing to offer comments if you say
"survey" and give them a survey-looking form than if you ask for comments via
email. Who knew?) Wufoo all the way here. Tip: give them something for
participating.

18) You may find it useful to publicly expose a portion of statistics about
your application as a strategy for gaining attention. If so, you need to have
the stats and have a visualization for them. Totally up to you on this one.

19) Your application may need to perform longer running tasks outside the
confines of the HTTP request/response cycle. Look into Delayed::Job.

20) If you accept user input and then crunch on it you may find that users are
more creative than you are at producing input which results in output that is
undesirable. This might suggest to you that you should periodically run
something roughly approximating a unit test or integration test on actual user
input, in a scalable fashion, for example for identifying whether a bug
reported by one user can be reproduced across other users.

That's all I can think of at the moment. Good luck! (It might sound daunting.
It isn't. You only need two things today: solve problems, charge money for
problems. Everything else can be bolted on one piece at a time as you go
along.)

~~~
wglb
This is marvelous, and I like how each step is backed by hard experience.

Wonder if you have ever seen <http://www.tinaja.com/ismm01.asp> which has a
similar tone. However, his web site is such that it would be good for him to
read your stuff and a/b test his, er, interesting web page design.

------
nfnaaron
"6) Mailing lists. I did this 3 years after starting my business. Knowing what
I know now makes me sad I waited that long. MailChimp is an easy snap-in."

I remember the other day you stressed how much you don't spam your customers.
So I'm assuming this is an opt-in thing, but:

    
    
      - Do people really opt-in enough to make this worthwhile?
      - What do you do with it that makes it worthwhile? New product announcements?
    

"15) Backups for all that stuff that isn't on the database. I let Slicehost
handle that."

They just back up whole images, and restore them (plonk) to your slice, right?
What do you do for data that's not in your database, that was created after
the most recent backup? And do you restore to your main slice or a temporary
slice?

~~~
patio11
Mailing lists are worth a post or three. Short version: people opt-in like
CRAZY. Greater than 50% off the top of my head. (This is one of those things
that I didn't know that I didn't know. Everybody knows you're signing up to
get annoyed with email, right? Oh no Mr. You Used To Be A Spam Researcher.
Apparently some people _like getting commercial email_. I have users who will
_write me and complain_ if their newsletter does not arrive.)

What makes it worthwhile: I use it for seasonal promotions and lifecycle
emails. Hey, you signed up for Bingo Card Creator last Halloween. You know
what is right around the corner? St. Patrick's Day. You should play St.
Patrick's Day bingo with your class. Repeat for Easter, etc.

Lifecycle emails are "You signed up yesterday. Here's instructions for how to
use the software which I am mailing you mostly because I assume you have
probably already forgotten I exist." and "You signed up seven days ago. Here's
some advanced things you can do with the software which I am mailing you
mostly because I assume you have probably already forgotten I exist."

All three of these emails result in enough people transitioning from "has
account in database but hasn't logged in in last while" to "active user"
enough to justify the penny an email it costs me. (I'll pay between a nickel
and a dime to reactivate a user out of the Easter promotion. I pay upwards of
a quarter to recruit a new user through Google AdWords. And the reactivated
users convert better!)

------
marcamillion
Btw, these are the types of links I am looking for:

[http://particletree.com/notebook/the-underbelly-of-a-web-
app...](http://particletree.com/notebook/the-underbelly-of-a-web-app/)

[http://particletree.com/notebook/the-underbelly-of-a-web-
app...](http://particletree.com/notebook/the-underbelly-of-a-web-app-part-2/)

