Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What should I build to support my web app?
13 points by marcamillion on Feb 26, 2010 | hide | past | favorite | 6 comments
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.

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.

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?

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).

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.

I would like if the community can point me in the right direction...if not comments on this post, but providing links.


"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?

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!)

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...

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.)

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.

Wow patio....this was very informative.

Thanks much for this info.

Your blog looks mighty helpful too :)

Applications are open for YC Winter 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact