Sails.js is a framework. You could argue that Express is. But Node itself if not.
Sails.js, Meteor.js, and etc... are frameworks that use/run on Node.js.
A few months later I happened to try Rails and realized that that was what Sails was trying to be for JavaScript. At some point Sails will become awesome, but until then I'll stick with Rails.
HN discussion: https://news.ycombinator.com/item?id=12634577
Honestly, though, I'm doing everything with GraphQL now. It is a huge benefit for all aspects of application stack design now.
I've also seen it where the authentication is handled by middleware before GraphQL even touches the request. I figure those two methods work for about every use case.
>Phoenix Absinthe Vue.js TypeScript Apollo Ethereum
and their blog for featured posts...
Gulp for task (test/build/etc.)
Webpack for bundeling
React/Redux for the front-end
Bootstrap for the styling
Koa for the back-end
Socket.IO for the realtime stuff
RethinkDB as the datastore
Nginx as the reverse proxy to the API and static file server
What would I change in the future?
Getting rid of Gulp, most of the time Make should be enough.
Replacing Redux, Socket.IO and Koa with the Apollo stack. GraphQL with its subscriptions solves most of the problems I had with REST and WebSocket APIs the last years.
I'd probably use Preact instead of React, because it's much smaller. The React eco-system is unbeatable, so I wouldn't switch frameworks in the near future.
Don't know about Rethink, it's a really nice DB and the change-feeds play well with GraphQL subscriptions on the other hand the company behind it went down the drain :\
In all seriousness, Django Channels looks to be a very good offering to compete with the async real time capabilities Go/Elixir/Node bring to the table.
That was version with 1.3! I wonder what the current state of the framework is. I need to get back into writing Python and using Django
A close second is the world's easiest ORM.
Maybe it is just hype but I am trying out Elixir. I am interested in the functional programming too so its a win -win for me.
Wish i could get the same money for django as i could for java and id switch today
- https://medium.com/@jespr/create-a-simple-chat-web-app-using...
- https://github.com/ssuprunenko/phoenix-vue-2-example
- http://fullstackstanley.com/read/realtime-chat-with-vue-js-a...
Have you built something significant with it you can point to? This is not snark - I'd really love to hear about it.
I don't mind Java, I generally like using Java 8, but I would happily be writing C# instead if I could run it as easy in as many places. The syntactic sugar, Linq, the latest MVC framework, etc- are generally much faster to get moving in and don't require the configuration hell you can run into w/ Java.
However, as a guy who ALSO maintains the servers and deployment process for the things we build, I'll continue avoiding .NET until it can be built, archived, and deployed as easily as we do our Java based applications. I don't think I could even maintain a Windows Server now if I had to.
If you're talking about Ant, Maven, Tomcat, etc for Java deployment, it's been about 5 years since I've had to use that, but I'd say Octopus is a much better process than that.
It was this guy that gave the talk, he has a blog with lots of information about his experience with Octopus. A few of the quirks I encountered when getting everything set up with our company were resolved by reading his blog: http://ianpaullin.com/category/octopus-deploy/
.Net core runs on linux, so you don't even need a windows server.
.NET Core has almost all of the features of the full .NET framework and C# is a pleasure to work with. My team is very productive and we are able to iterate very quickly. Since it is a compiled language, most errors are caught at build time.
Deploying is another pain point. You have to install the framework on Linux and ship all of your dependencies. They make it easy with the `dotnet publish` command. I'm excited for .NET Native which will package everything into a binary.
I think that PostgreSQL has a similar open source story. There's `Npgsql` for a driver and `Npgsql.EntityFrameworkCore.PostgreSQL` for the Entity Framework implementation.
It took some work, but I like that Entity Framework Core allows for it's implementations to be done by the Open Source community. In MySQL's case, we've added lots of MySQL-specific optimizations to the Entity Framework implementation after getting feedback from the community. The new open Microsoft development approach here is great.
Full disclosure: primarily a Java dev but have worked in PHP, and to a lesser degree python as well. Oh, and I now work full time on .Net.
[1]: http://nancyfx.org/
Angular 1 on the frontend unless you have over 100 bound variables on a page, then consider ReactJS or VueJS.
The api surface of Angular is way too big to invest in, compared to the alternatives, of which there are many. ReactJS is vastly more popular for a reason, even though it arrived at a time when Angular already had a big following and huge momentum.
If you have a super simple front-end with few variables you don't need a framework anyway. Vanilla JS is fine. But React+Redux is killer once it starts to grow into a big SPA.
Angular 1's commit graph shows it is far from abandoned, though: https://github.com/angular/angular.js/graphs/contributors
From what I've seen, Angular 1 is used in so many enterprise projects that some big companies would probably be willing to pay for continued development and support for years, should anyone be willing to provide it.
If you're running jobs, be sure to do so on the queue.
I've used third party libraries like devise_token_auth and I understand how JWTs work but is there a standard? Oauth2 maybe? I sound like I'm lost because I am. I still don't "get" authentication. The Oauth2 RFC confused me. Is there a dummy friendly tutorial on rest API authentication that also supports invalidating user sessions (unlike JWTs)
Java and or JavaScript ?
Just bought "Getting Mean with...", which describes a MongoDb, Express, Angular and Node stack. (IMHO) However, first of all, the book is a waste of time and angular sucks.
So in the end, I'm planning my upcoming project using Node, Express, CouchDB and plain ol' static pages with a slice of ECMAScript (yah... I admit, Bootstrap and jQuery will join the party).
If a project doesn't need a backend (boy howdy do I love keeping things in localstorage), Elm. I keep meaning to use Phoenix and Elm together but it never seems like the thing to do. I do love Elm a lot, though, I have a couple dozen widgets and what-have-yous written in it, and it's my preferred prototyping / build it in anger toolset.
The application itself is hosted on a VPS running Arch Linux, behind nginx, and uses Postgres with PostGIS for a database.
GraphQL / Couchbase / Node.js / React / Redux
Personally, though, I am a fan of ASP.Net Core + Angular 2,
Rails (Ruby) and Laravel (PHP) are some of the other solid options for building the backend.
Backend: Elixir (using Maru [it's like Ruby's Grape])
Database: PostgreSQL
Frontend: Vue.js or Elm (maybe)
I'm using RethinkDB right now, but I would probably switch back to Postgres if I had to use something that didn't have change feeds.
What all things Play provide?
Frontend: Angular/React
What is NOT popular anymore: RoR, Angular1, Express
I find then pretty productive and quick to get started with.
I don't buy into the whole Node.js thing, I much prefer the stability and maturity of apache. Mongo just because it's easy to use with python, and python because I love it <3
Apache is for static content and to act as an HTTP proxy for managing connections.
You can, and should, put Apache (or Nginx) in front of a Node.js web service.