Creating a web app

Thor

Honorary Master
Joined
Jun 5, 2014
Messages
44,236
Oh if you want to go down the serious route.

NodeJS using Sails

I am in love with Sails don't understand shiat yet, but absolutely love it.
 

rward

Senior Member
Joined
Oct 26, 2007
Messages
865
I'd also say node and sailsjs.

Also Google node hackathon boilerplate and possibly use that.

Ultimately it doesn't matter what you make it in, just start.

Use mysql, it can handle more queries that you're probably ever going to need.
If your app gets to the stage that you're running horizontally scaled clusters then you will have enough money too not worry about upgrading to something else..

Start coding, use mysql, php, jQuery if you're happy with it, just start.

Keep your iterations small and deploy often. Get the minimum out as soon as possible and make it just the minimum, not 'I need 1 more were to finish x because without that I it's not that great' . Get it out and a week late add x.

Seriously, the biggest failure is not getting the product/app launched.
 

rward

Senior Member
Joined
Oct 26, 2007
Messages
865
Or hop right in the deep end with node typescript, knex, redux/mobx and react
 

concentricpuddle

Well-Known Member
Joined
Jul 8, 2009
Messages
241
I vote node + vuejs

Easiest learning curve and will get you the most bang for you buck. Only one language to learn you get the nice interop that node provides. One build system to learn(-ish). It'll get you up and running and you'll just be writting bad JS instead of bad PHP [which is much, much worse].

If I were doing it myself it'd be Django + React.
 

FarligOpptreden

Executive Member
Joined
Mar 5, 2007
Messages
5,396
Seeing as you're going the Node (and by extension probably Express) and Angular route, why not just add in MongoDB to the mix to go full MEAN stack? I think it will be easier to understand than throwing a whole new language (SQL) in the mix as well. Keep it full-stack JavaScript.

And regarding jQuery being obsolete, I wholeheartedly disagree. I've built some huge and complex web apps using jQuery as the workhorse providing an elegant SPA experience. Granted, I wrote many wrappers and custom model binding logic to get it all working, but once it was in place it was an absolute pleasure to roll out new modules and features to the apps. jQuery is probably the most mature, stable front-end library available and is by far the easiest for back-end developers to jump in and learn.

As great as client-side handling of all UI logic is, there are some risks associated with it that you might want to consider. If your rendering logic is handled only in the browser, then you'll potentially expose data that you might not want users to see. Any data that you need to handle rendering logic (for conditional field rendering etc) will be visible in the browser's network trace, so a user might see more data than is required. The principle of least privilege comes into play here.
 

Gezza

Expert Member
Joined
Aug 18, 2009
Messages
2,094
Seeing as you're going the Node (and by extension probably Express) and Angular route, why not just add in MongoDB...

I have a relational database. Asked around at work yesterday and was told that Mongo won't support relational databases. I've chosen MySQL :).

I'll be going with Node for sure. As soon as I'm done with my angular course I will decide if I need more or if that is enough for now, and I'm guessing it would be.

All the suggestions are quite overwhelming and appreciated! I will stick to the above for now and see where it takes me.
 

Gezza

Expert Member
Joined
Aug 18, 2009
Messages
2,094
Oh if you want to go down the serious route.

NodeJS using Sails

I am in love with Sails don't understand shiat yet, but absolutely love it.

Sooo, You love sails then...?

Will need to have a look at that too. Now I need to stop wasting my time with games and TV. Time to work.
 

flippakitten

Expert Member
Joined
Aug 5, 2015
Messages
2,486
I know you've made your decision but I vote Ruby on Rails

I haven't touched NodeJS much in the last 3 years but there wasn't than much documentation round back then, I am guessing that's changed a lot.

Why Rails, It's extremely forgiving at the beginning, which is good and bad.
Good because you can get a working thing out there very quickly.
Bad because it's so quick, you can make a lot of bad design decisions but they can be relatively easily fixed with migrations and refactoring.
 

Gezza

Expert Member
Joined
Aug 18, 2009
Messages
2,094
I know you've made your decision but I vote Ruby on Rails

I haven't touched NodeJS much in the last 3 years but there wasn't than much documentation round back then, I am guessing that's changed a lot.

Why Rails, It's extremely forgiving at the beginning, which is good and bad.
Good because you can get a working thing out there very quickly.
Bad because it's so quick, you can make a lot of bad design decisions but they can be relatively easily fixed with migrations and refactoring.

As far as my research has taught me is that Node has a huge community and is updated regularly. That plus all the recommendations here sold that for me.
 

_kabal_

Executive Member
Joined
Oct 24, 2005
Messages
5,922
Seeing as you're going the Node (and by extension probably Express) and Angular route, why not just add in MongoDB to the mix to go full MEAN stack? I think it will be easier to understand than throwing a whole new language (SQL) in the mix as well. Keep it full-stack JavaScript.

And regarding jQuery being obsolete, I wholeheartedly disagree. I've built some huge and complex web apps using jQuery as the workhorse providing an elegant SPA experience. Granted, I wrote many wrappers and custom model binding logic to get it all working, but once it was in place it was an absolute pleasure to roll out new modules and features to the apps. jQuery is probably the most mature, stable front-end library available and is by far the easiest for back-end developers to jump in and learn.

As great as client-side handling of all UI logic is, there are some risks associated with it that you might want to consider. If your rendering logic is handled only in the browser, then you'll potentially expose data that you might not want users to see. Any data that you need to handle rendering logic (for conditional field rendering etc) will be visible in the browser's network trace, so a user might see more data than is required. The principle of least privilege comes into play here.


Call me crazy, but I would say the front end framework/library that is by far the easiest for back-end developers to jump in and learn is the one that by default uses typing, classes, DI, etc. Of the options available, jQuery appears very far down that list.


Unless you had no other choice, due to powers out of your control, using jquery to develop a greenfield SPA is a poor decision.
 

flippakitten

Expert Member
Joined
Aug 5, 2015
Messages
2,486
As far as my research has taught me is that Node has a huge community and is updated regularly. That plus all the recommendations here sold that for me.

All good :)

The same rings true for rails but my advice always is to try the one's you considered and then use which ever one feels the best to you, there's only so far research will take you with all the biased opinions out there. ie. X is faster than Y for dev time, useless fact if I end up not liking X at all.

The reason I say this is your design decisions now will impact your app for the rest of it's existence, so be completely sure what you choose is what you feel the most comfortable with and is the most cost effective (if the learning curve of Node is quick because you already know Javascript but they introduce a lot of breaking changes ...ehem, Python 2 vs 3... then is it more cost effective in the long run).
All frameworks are inherently the same, they have libraries and dependancies, talks to a database, the usual stuff. It's just how that framework is implemented and if you like the implementation.

Anyway, I like technology and all languages, there is so much out there that one can't learn everything, hence I can give my point of view.

I've almost completed my workflow document, just need to add a couple more things before I start development.

From the Agile world, don't over engineer your app, there's no way to know everything your users want/need before the apps been developed.
 

Gezza

Expert Member
Joined
Aug 18, 2009
Messages
2,094
Yeah, from what I've experienced already is you get new ideas "features" every day. You're never quite finished with your project.
 

rward

Senior Member
Joined
Oct 26, 2007
Messages
865
Good that you've chosen angular.
I'd also advise to stay with MySQL instead of mongo.

Don't worry about the future too much, get your first itiration up and running and get paying customers on it.
Once you have customers you can start adding features and iterating more.

Once you have more customers you can pay someone to refactor it all correctly and clean up your code.
In 5 years time, even with good developers working on it, you're still going to have to schedule a couple of months doing code refactoring to clean up old turds in the base.
 

Gezza

Expert Member
Joined
Aug 18, 2009
Messages
2,094
Good that you've chosen angular.
I'd also advise to stay with MySQL instead of mongo.

Don't worry about the future too much, get your first itiration up and running and get paying customers on it.
Once you have customers you can start adding features and iterating more.

Once you have more customers you can pay someone to refactor it all correctly and clean up your code.
In 5 years time, even with good developers working on it, you're still going to have to schedule a couple of months doing code refactoring to clean up old turds in the base.

Thanks, think I mentioned this in a previous comment, I don't expect to every "Finish" this app. It will be constantly upgraded and features added. And the code cleanup you mentioned.

Passion project, until google buys it, then I'm out...xD
 

rward

Senior Member
Joined
Oct 26, 2007
Messages
865
Thanks, think I mentioned this in a previous comment, I don't expect to every "Finish" this app. It will be constantly upgraded and features added. And the code cleanup you mentioned.

Passion project, until google buys it, then I'm out...xD

Get an MVP out as soon as possible and then enjoy the ride :)
Have fun building it!
 

flippakitten

Expert Member
Joined
Aug 5, 2015
Messages
2,486
Get an MVP out as soon as possible and then enjoy the ride :)
Have fun building it!

Put a budget aside for advertising, that's where my project is currently stalled.

I can populate what I need myself but then I will spend all my time populating as people don't know about the site, so I will have to keep populating content all the time instead of developing new features.
 
Top