7 ms·
What do you need to make a successful web app?
- techaddict009 13y ago"Something you dont need" contains the points everyone focusing on developing a quick MVP should focus on.
- deleted 13y ago[deleted]
- jroseattle 13y agoAn OK list of tools. Two I would add at the very top, though: 1) A problem your app solves 2) Users of your app Seriously, the other items on the list aren't necessary until these two criteria are met. Then, and only then, will the elements of that list be necessary.
- ben336 13y ago"A plan to make an application that helps real people to make their lives easier, solving a well-researched problem" is his top item...
- jroseattle 13y agoI missed that comment, thanks for drawing attention. I do wish it was included in the actual list.
- sugerman 13y agoLink bait title and 2 hastily written lists just to say KISS.
- roryhughes 13y agoGreat article, I often see myself looking to use the latest thing as opposed just creating a good app. One thing I disagree with is "don’t anticipate 'potential' problems". Preparing early for problems which may occur later is very important for obvious reasons.
- sergiotapia 13y agoOne thing I would add to this is start writing tests from the get go. Any language you're writing in offers a lengua-franca Testing frameworks, NUnit, Gotest, RSpec, PHPUnit etc - just do it now. Much later down the line when you start finding harder bugs you wish your basics were tested and verified. It's _priceless_ to run your test suite and make sure everything is kosher after a change. This is something that took me years to put into motion with my projects despite reading about it online. Set up a build server on your own VPS or something like https://www.codeship.io/ https://www.codeship.io/ and have it hook into every commit and run your test suite, if all green, deploy to production. Saves time, thus saves money.
- randall 13y agoWe added test suites after we were making money / people had to rely on our software. I think doing it before is kind of a waste of time... because who cares about well tested unused software. I'd say add them in after you have enough to pay one person full-time.
- mkilling 13y agoI agree with randall. Tests ensure that you build your software right, as opposed to building the right software. A large test suite impedes how fast you can deliver new features. We wrote tests for PlaytestCloud only after we acquired the first paying customers. The tests only ensured that customer-facing routes would not crash. It was a good balance to ensure that we could move quickly while ensuring that we didn't introduce catastrophic bugs.
- conorgil145 13y agoPutting off testing until you show traction can be a slippery slope. Writing tests early on can have many benefits including: better architecture/design, confidence the code performs as expected, regression testing when adding new features, ability to more quickly add new features because of the good design, etc. If the person in charge is the stereotypical "business type", then it can be difficult/impossible to convince him/her to allow engineers to spend time doing a refactor and/or writing tests for code which was written months ago and is "working fine" because you now are showing some traction. This can easily lead to never actually getting around to writing that robust and practical test suite that is really necessary in the long term. Note that I also say the test suite should be practical (for some definition of practical which may vary from engineer to engineer). For example, 100% test coverage may not be useful, determine which parts of the code MUST be tested and which parts are just diminishing returns, etc, etc.
- selmnoo 13y agoGreat piece. I realize now that I'm more or less clueless about one of the things mentioned there: > An understanding of tax laws in your country How does one learn this? Is there a book you guys would recommend? I think in addition to tax code, learning a bit of legal stuff is probably necessary too. And for that, grellas's guide is probably handy: http://www.grellas.com/faq_business_startup.html http://www.grellas.com/faq_business_startup.html. Learning about accounting would be a good idea too, I'm also clueless there though - any recommendations for learning that?
- jakobe 13y agoIn my experience you don't need to know much about tax laws to run a small business. Find a cheap accountant* , and he'll tell you everything you need to know about taxes in two hours. * When you are just starting out, it makes a difference if you pay someone 300€ a year to do your taxes, or if you have to pay 1000€. Stay away from the big companies. They will charge you for every phone call. Ask other small business owners for references.
- moron4hire 13y agoHiring an accountant was a godsend. I had just moved to a new city and did not know we had a business property tax here, or that the city itself had their own business licensing requirements (even for work-from-home freelancers). Not only did my accountant quickly get all of that taken care of, they also found more deductions in my taxes than I was paying them. It paid me money to hire an accountant. Technically, yes, one could navigate all of the forms on their own and get even more tax savings, but that is only the case if you don't value your time. Since I charge my clients by the hour, and filing taxes often takes several hours for us in the United States, having an accountant also meant I could work without worry and make money instead of having to take a day off from working or stress myself out on my regular days off. Hire an accountant. Do it right away, you give them a retainer and they'll have a price sheet of services they offer. They'll ask you what your goals are, just tell them you are interested in making sure you are in full compliance with the law, but don't know what you're doing. They deal with customers like us all the time. They have it streamlined and know exactly what to do.
- spindritf 13y agoMultiple load-balanced “webscale” servers This is the biggest one. I have seen many, many projects held back by the idea that they need eight nines of reliability and a geodiverse HA cluster before they can even start, where a single server with a half-decent backup plan would be more than enough. Good security from the start You don't need that either. You absolutely should think about security but it's by no means necessary to succeed. And really, backups and letting someone else handle payments will usually make it impossible to fail catastrophically†. † Some exceptions apply.
- hanief 13y agoDo you have a recommendation on decent backup practice? Thanks.
- jvehent 13y agoOn small websites, I use git to track /etc and /var/www (where the webapp code is installed). 5 years ago, I would have recommended to rsync the entire server daily. But nowadays it's a lot easier to snapshot an EC2 instance daily. For the database, just use RDS which handles point-in-time snapshot for you. If you're a developer with little linux experience, don't try to play the sunday morning sysadmin with fancy bash scripts on your startup. It takes a lot more time and resources to keep a system in good state than you can foresee.
- ixmatus 13y agoThis is the reason for idempotent server configuration via Ansible, Chef, Salt, Puppet, or even better NixOS. Backing up a deployed application is kind of silly when the tagged releases should be sitting in your source control and that the press of a button have an entire server built and configured from scratch that is identical to the one you need. Then storing that configuration in source control. Backing up configuration files and what-not is also pretty silly and indicative of bad devop practices. The database should be versioned and maintained with a migration tool. So the only feature of the database that needs backing up should be the data it holds - live replication servers that can act as background backup slaves are perfect for this. The only stuff you should be backing up on your servers are the latest log file rotations, user-generated data in the database, and any critical files that were also generated / uploaded by your users (but technically, you should be storing those in S3 with duplicates in another availability zone). One other thought: people usually don't think to encrypt their backups. Duplicity + GPG + S3 is what I use right now and is super easy to setup with some fiddling. Once Tarsnap becomes a bit more professional I'll be moving all of my server backups to Tarsnap.
- jbeja 13y agoGreat article, here some resources that click on me when a read points addressed: Understand human psychology: https://www.youtube.com/watch?v=_X8OEt6QTAg https://www.youtube.com/watch?v=_X8OEt6QTAg Know how to design, both in terms of UX flow and visual design: https://www.youtube.com/watch?v=2tPXgFBzLRs https://www.youtube.com/watch?v=2tPXgFBzLRs https://www.youtube.com/watch?v=IDYjSdqtNZU https://www.youtube.com/watch?v=IDYjSdqtNZU https://www.youtube.com/watch?v=7OSkB4BCx00 https://www.youtube.com/watch?v=7OSkB4BCx00 *And ofcourse the best text editor ever created: www.vim.org/
- tomasien 13y agoAre you suggesting that using HTML5 Boilerplate is a bad idea? Because no, no it isn't. That is an insane assertion. The number of weird idiosyncrasies or browser specific problems that WILL come up with any web app that I've fixed by just saying "hmm, wonder if I put in HTML5 Boilerplate" are insane. It creates 0 technical debt, you will always be happy you started with it, and it is fantastic. I do no understand the big about reset.css either but I guess I"m willing to listen? Reset.css has also been a lifesaver. For a blog making a really important point (don't just use Angular because you've heard of it, use what gets shit done), suggesting that boilerplate creates dependancies that you will regret having seems out of place.
- Gigablah 13y agoCSS frameworks, boilerplates and reset.css could probably be condensed into a single point. (HTML5 boilerplate already contains some form of reset.css anyway) I guess some people just like to write their frontend code from scratch...? It's funny because the author wrote Zepto, of all people he should know about abstracting away cross-browser concerns.
- tomasien 13y agoRight? Man I feel like I'm missing something huge here if somehow reset.css and HTML5 Boilerplate are creating technical debt for me. I think I've launched at least 10 projects using it and I've never once had to say "oh that's a weird thing that HTML5 boilerplate does, here's how you compensate for it" like you have to do with Bootstrap or Foundation or things that DO create debt.
- awinder 13y agoI think the point was that they weren't completely necessary, and it would create a dependency on their continued use? I'm not sure, but that's what I got, and I don't agree. NOT using CSS frameworks creates a pretty radical dependency on NOT using them in your design going forward. Sometimes the costs of not doing or using something create a lasting debt. There's an alarming stench of NIH in some of the authors points, co-mingled with some more salient points about not over-engineering up front.
- daleharvey 13y agoIt continuously surprises me how little programming knowledge is actually useful in this field where we call ourselves programmers. Even if you arent building your own startup, knowing how to tradeoff big win features over engineering resources, understanding the risks of X new tool over delivering a product, being able to communicate effectively and work within a team are very typically far more important than raw programming talent, brilliant engineers will always be needed especially on big projects, but you can get a long way with a little programming talent and a lot of a common sense approach to delivering a product.
- bluedino 13y agoLook at how mature the industry is. 15 years ago you didn't have the kind of tools we have today.
- maninalift 13y agoWhy so many articles about how you don't need the cool hip new technology to be successful? Surely this is a news site populated by people who like playing with cool new technology. I don't want to be successful it sounds stressful. I want to enjoy hacking maths and code.
- danpat 13y agoThat's easy: customers! Everything else is secondary really.
- Eduard 13y agoA payment processor of sorts No, not every web app needs that. It depends on the business model.
- mwcampbell 13y agoIf you can't charge your customers, you probably don't have a sound business model.
- jdubs 13y agoit may be better to get feedback upfront instead of spinning your wheels on collecting money. idea validation seems quite important, at least in the beginning.
- mwcampbell 13y agohttp://unicornfree.com/2014/validation-is-backwards http://unicornfree.com/2014/validation-is-backwards
- jakobe 13y agoI don't like how every single post on unicornfree tells you that the conventional wisdom is wrong, and to learn the truth you have to sign up for their online seminar.
- amyhoy 13y agoThat is a mischaracterization, don't you think? Every post I write says that conventional wisdom -- e.g. creating a product people want & need, and charging for it -- is right. And most of my blog posts are full of value, and actionable things a reader could do right there, for free: http://unicornfree.com/2013/how-i-increased-conversion-2-4x-with-better-copywriting http://unicornfree.com/2013/how-i-increased-conversion-2-4x-... People who want more, have more money than time, who value an expert demonstration, and live exercises graded by a teacher… take my class. But I've known many people who had more time than money who implemented the principles in all my free content and turned that into valuable businesses. Good for them. That's why I put it out there.
- derengel 13y agoMaybe a little bit off topic and probably depends on the app, but how sane is developing a web app/UI that works for mobile/desktop these days? or is it just better to develop for desktop and mobile separately?
- err4nt 13y agoI build web apps that are mainly for desktop use, but I make sure they're as polished as an HTML5 fronted can be for iOS and I test on android to make sure it's good there too. We have run into issues on layouts where the project leader wanted one thing, then changed his mind two or three times (and this was after being implemented) so that view is a little tough to work with now, but generally speaking if you have a clear picture of what's important to your user it's trivial to present one experience to mobile users and a very different experience to desktop users based off the same markup. The key is is tilling your markup down to the minimum to suit both layouts. When you have too much markup it gets tougher to make it responsive.
- Confusion 13y agoToo bad he mixes great suggestions with awful suggestions. I use those 'CSS frameworks, boilerplates and reset.css' specifically because I want to give all my customers 'good UX flow and visual design'. That would be a lot more trouble without it, reinventing a lot of wheels, some of which are hard to reinvent. How on earth can you give a list of goals to achieve and then banish technological measures that have the primary aim of achieving some of those goals?
- pgeorgi 13y agoBut you don't need CSS frameworks for the sake of CSS frameworks. Given how some of the "don't" entries are written (NoNoNoNoSQL ...), I read them as referring to the bickering about using gulp over grunt over make over shell scripts and the like.
- ben336 13y agoHe's not "banishing" anything. He's saying there are some things you NEED, and some things you don't. You can have a successful webapp without using a CSS framework. You can't without solving a real, well researched problem.
- Confusion 13y agoYou can definitely have very successful apps/services without decent UX, design or researching the problem. The internet is full of examples of each of those.
- EGreg 13y agoA successful web-app yes. A social app? Not so much... http://platform.qbix.com http://platform.qbix.com
- mwcampbell 13y agoI wonder if it's safe to add "big-iron client-server database" to the list of things you don't need. One of my friends is running his production web app on SQLite.
- dpcan 13y agoI thought this was going to be a little deeper, but it's physically the TOOLS (software, skills, knowledge) you need to make a web app... successful or not really has nothing at all to do with this. And he forgot a really important one. 1) A genuine interest and passion for the service you are building and will be spending thousands of hours working on.
- dangrossman 13y agoRequired for a successful VC-funded shooting-for-the-moon startup, maybe. Not required for a successful web app. I paid off my student loans and put a downpayment on a house with a "add reviews with star ratings to your online shop" app. I have no passion for ratings widgets. I also now host contact forms for ~1 in 20 Shopify stores; I have no passion for contact widgets. They're just products, that happen to solve problems for some people that value the solution. Solutions to most business problems aren't complicated, thousands-of-hours undertakings.
- amyhoy 13y agoWhat Dan said. Passion doesn't have to be for topic area. Passion can be for helping people, for solving problems (whatever they are), for seeing your work in the hands of people who benefit from it, for creating a comfortable & happy life for yourself & your family. "Passion" is a cheap word. It can mean anything. But it's taken to mean "something that overpowers your sense of judgment and reason" in the startup world. Doesn't have to be so.
- crazygringo 13y ago> And here’s some things you don’t need: > reset.css Wait, what? I was with him until that. Using a CSS reset is part of CSS 101, I would never dream of starting a project without one. It isn't a "complex dependency", it simplifies cross-browser issues greatly. Putting this on the list is simply... bizarre.
- deleted 13y ago[deleted]
- edu 13y agoHe says that you don't need that to make a successful webapp, which is true as you can make a successful one without it. I understand the post more in the line of focusing on whats important and not focusing that much in what is not.
- shangxiao 13y agoYup... just look at HN, no CSS resets going on here ;)
- sunseb 13y agoI have never used any reset.css file (I'm more of a backend developer), but I find this idea very interesting. Is this reset technique often used in modern web development ? Any feedback on this ?
- hackNightly 13y ago"Professional" web developer here. Indeed the reset technique is used very often. Browsers often implement default margins and padding differently. A CSS reset can give you a more reasonable baseline to work with.
- Achshar 13y agoThese browsers usually have reasons to have their own styles. Sometimes they are there to be consistent with the base OS (drop downs, buttons, etc) or they are there to best suit the format that the browser runs on small screen (phones), large screen (desktop) etc or to take care of device input types (touch screen devices would have larger buttons by default whereas pointing device doesn't need to have large buttons). I think it's best to let the browser decide what it wants to decide and build our app around browser differences instead of forcing our own design down browser's throat.
- gobengo 13y agoAt some point you've made a successful web app, and then you need to make a successful business and supporting services, and you need to minimize costs and meet SLAs that are required to secure your revenue. So the subset for a 'successful web app' is a useful distinction to get started, but the condescension implicit int he second list just comes off as ignorance.
- err4nt 13y agoBlood, sweat, and years