Here’s some things you need to make a successful web app:

A plan to make an application that helps real people to make their lives easier, solving a well-researched problem

Understand human psychology

Know how to design, both in terms of UX flow and visual design

A marketing plan, to tell potential customers that your app solves their problem

A text editor

A web server

Probably some sort of database

A payment processor of sorts

Good security (including well-tested backups) from the start

A (at least basic) understanding of tax laws in your country

A healthy dose of perseverance

And here’s some things you don’t need:

The latest alpha of hype.js

CSS frameworks

Boilerplates

reset.css

JavaScript loaders

The newest NoNoNoSQL database

Distributed anything

That cool new jQuery plugin

A custom-designed font

Multiple load-balanced “webscale” servers

All these things create the illusion of making things easier when in reality they create very complex dependencies and will be very hard to remove later if they don’t turn out to be the silver bullets they promise to be. This doesn’t mean these things are bad or evil. You may want some of them later, when your app grows.

Remember, keep it simple and don’t over-engineer. Solve the problems at hand, and don’t anticipate “potential” problems.

You need to wear many hats when setting out to make a successful web application: entrepreneur, psychologist, designer, programmer, marketer, accountant—but you’re not a fortune teller.