What router and ui-framework to use in meteor? - meteor

Just started to discover meteor. created app with DiscoverMeteor book, but misunderstood many moments. then read Your first meteor application and Your first meteor application books. Realized that Todos example is really too simple to cover many important things. And only after that I found the official guide on Meteor.com! now reading about all these complex (for my opinion) things. and have 2 questions:
What router should I prefer to use? I want to create fast app with lots of data loading from the server. Found information that Iron router is deprecated, and Flow router is recommended nowadays, but also found that flow router can not route on server, only on client. And that exactly client routing is the reason why for example soundcloud is really slow. So that is the question - I know nothing about server/client routing, but want to make right decision for the future project.
What ui-framework to use? I read that blaze is easy to start, but react js is really powerful. So: is Blaze enough for serious project (like a popular blog)? Or do I have to learn react js in order not to rewrite code in the future?

I am working with Meteor 1.3.2.4, which is latest in market and believe, you don't have to do anything out of the box to go with experimental UI-Frameworks and stuff.
Blaze template which is handlebars based implementation is best.
Blaze template is very well glued with Socket.io, futures and DDP implementation for cutting edge implementation for asynchronous and reactive behaviour on UI.
Blaze is really good for cumbersome, heavy data websites as well. If you have any doubt, i can skype and show you what i have implemented in just 2 days on development using everything given by Meteor.
React.js, Koa.js (re-written Express framework), express etc are very good and powerful, but I think implementing it at initial level of your grasp is overkill. Go with Blaze first.
There are hundered sitting and developing Meteor.js just for you to be comfortable. I am not at all biased, I am giving you my open opinion.
I worked with Laravel 5.2, Play framework, MEAN.io, DJango in past, but believe there is nothing like pure Meteor js with there own packages. There are many videos on youtube like Meteor nights and stuff where you can find the developers from all around the world developing huge stuff just using stuff given by Meteor js.
For routing flow-router is good, even iron:router is awesome and easily gettable.
This video can guide you very well.

Flow Router is the recommended router by the official Meteor Guide. It's also the popular choice these days, and for a reason: it's a high quality router implementation.
As for MVC, it's really like choosing a religion. React has a huge community, possibly a bright future, and it's not Meteor-only unlike Blaze. But some folks find Blaze templates nicer than JSX files. I think it's easier to get help on StackOverflow if you pick React, but Blaze might be easier to get started.
Maybe this post helps a bit: How to set up React with Meteor?

Related

Any way to do transparent API for next.js?

Next.JS simplifies lots of stuff for creating the Web App. But the modelling data and the API and the data communication between the Server and the Client stays pretty much the same as in other React.JS apps.
A lot of code needed to be written to make it possible. I wonder if there's some approach or extension for Next.JS that would make it easier? Something like meteor or like that?
Realise this is an old question, but take a look at Blitz JS - this wasn't around at the time the question was asked, but has been one of 2020's top projects on Github. It's built on Next.js and is designed to abstract away the complexities of an API. It's trying to be the Rails of the JS world.

react-router-redux vs connected-react-router for react v4

official github page of react-router-redux says that the project is no longer maintained and is now deprecated. They recommend to use connected-react-router instead.
react-router-redux has:
31k stars
884 watch
6k forks
while connected-react-router has only:
1053 stars
28 watch
108 forks
I am starting developing a complete Q/A social networking website using react v4, will it be worthy or smart idea to use connected-react-router here?
while posting the question I just noticed that the stackoverflow doesn't even have connected-react-router tag.
If you are going to use Redux to manage your application state, use react router for routing, and want to synchronize your route history with your app state and manage routing through redux, then this will be fine to use. While I've only begun using it recently myself it's made been pretty straight forward for managing routing, including route data.
You also pointed out that:
react-router-redux says that the project is no longer maintained
For this reason alone I would not use react-router-redux, unless you plan to maintain it yourself. Disregarding features and bugs, you'd also have to be concerned with any potential security issues that come up. Please also see this dicussion they're having about it's deprecation in their GitHub issues https://github.com/ReactTraining/react-router/issues/6358
Just to reiterate, if you need, or think you'll need, to synchronize your router state with your redux store then this is not a bad tool to use. If you don't think you'll need this then don't use it so your project doesn't become bloated.
That being said, I've also seen this alternative https://github.com/salvoravida/redux-first-history which looks interesting. It looks to offer a more decoupled approach to history, routing, and state than the connected-react-router, but I haven't used it yet.

Using Adyen from a SPA

We are building a marketplace using angular and we want to integrate Adyen payments. Googling for 'Adyen angular' or 'Adyen SPA' or even 'Adyen react' doesn't bring any useful results. NO results whatsoever.
Therefore I am left wondering, why the whole world (including Adyen docs) is not talking about integrating Adyen into a SPA.
It doesn't seem to be more vulnerable to network security attacks to me. At least I can't think of any reasons for that.
Please help me to understand, what I am missing out.
As madesch mentioned, integrating in a SPA shouldn't be too far from other kinds of integrations. Are you having issues with something in particular?
Here can see an integration with Vue, one with React and even one with React Hooks.
The card fields are not being loaded because I'm not using a real originKey, but it should give you an idea about how to do the integration.
I hope it helps!
It seems that I overestimated Adyen popularity and in reality, the truth is that it is just not popular enough to have gotten attention from SPA community. :(
it seems like originKey is deprecated, the current recommendation is to use Web DropIn. But this requires using a server component, as you don't want to expose your API key, right?
So if you don't want to use a deprecated API, you must always add a server component to your stack. A pure SPA does not seem to be possible using current APIs, it seems.
There are now few options available:
Angular support
Vue support
React support
All examples are based on the Web Drop-in approach which renders a checkout component with the supported/requested payment methods.
A basic explanation of the workflow is provided here.

Meteor: Angular2 VS Blaze confusion

I was enthusiast using Angular2 with Meteor, so I started a project with ng2 and Meteor. But more and more I am asking questions like:
Is ng2 deprecated router the way to go ?
What is the purpose to use ngForm validation if I use collection2 and autoform to do most of my form validation.
What are the benefits of ng2 architecture vs Blaze ?
So at the end, I am not even sure of why I am using ng2. There is not that much recent and relevant discussions on the topic. Is that the question that is already answered, obvious or just not so relevant ?
What are the pros/cons of using Angular 2 versus using Blaze ?
Blaze was raised with Meteor and is probably linked to his success. And ng2 could be as famous as ng1.
To be used in serious projects, which one is going to be 'more maintained and last longer' ?
Regards
PS: Also looking at https://builtwithmeteor.com, Blaze appears to be used more.
The Angular 2 router is deprecated but it's still the only router available to use at the moment.
In the future versions of Angular 2, a new router will be available.
So right now- the deprecated router should be used, and I think that it has all the features that you need from a Router.
You can choose to do the validations of the fields as you like.
Personally, I think that validation should occur in both client and server, so Angular 2 take care of the validations that needed to check in the UI and give feedback in the UI, and the Meteor validations should occur in server side and validate things like duplicates, data logic and such, along with fields validations that done by SimpleSchema.
I think that Angular 2 at the moment provides a better solution for client side development - much of it is because of the decorators that in use, the code is much clearer and easy to understand.
Also, Angular 2 is more that UI binding (which Blaze is...) and give you Dependency Injection, Router, Services and more features that usually required in the UI (in Blaze you need to use external packages for each one of these features).
Keep in mind that few months ago, Meteor team declared that UI developers should consider using another client side framework, and consider migrating from Blaze (they recommended Angular 2 / Angular with angular-meteor.com or React).
If you already have Blaze application, I think that you should consider migrating to Angular 2.
The Angular2-Meteor (www.angular-meteor.com) team is working right now on a full step-by-step tutorial for coexistence and migrating Blaze application to Angular 2.

MeteorJS Alternatives: Latency Compensation Frameworks and Libraries?

Effort:
I am building a word game based on a chat web-client where I need to make a server call on input chat text to validate it before broadcasting on the chat.
I am aware of Meteor providing latency compensation out of the box. But given its still in "early preview" makes me seek other alternatives.
What I tried:
Unfortunately my web search for "latency compensation framework library" doesn't yield anything other than Meteor (including non-personalized results).
Question: Are there any other alternatives that provide latency compensation -or- can make the job easier? I am hoping other developers might have encountered something useful/relevant.
Although Meteor is in 'early preview', its code is very close production ready and a lot of startups and other early adopters are using it for production-level code. You aren't going to find anything that gives you wings like Meteor because no such alternative exists.
As a hardcore Meteor convert and someone who's used many other frameworks, I recommend you to just try Meteor out. As they say, it only takes a weekend for you to build an app in Meteor and decide whether it's right for you.
Having said that, I will attempt to answer the question and list the distant-second alternatives to Meteor that you probably won't want to use:
Derby
Sails
What you're seeing right now in the various real-time full-stack Javascript web frameworks is the future of Web development, cutting down dozens of people and thousands of man-hours of work needed to develop a software project. There are some fast boats sailing that are leaving server-side rendering behind, and you should probably just get in one of them and get going.
RethinkDB uses term 'latency compensation'.
I've also tried to gather per-feature alternatives to Meteor
Meteor is a really cool framework. you can build the complex data driven application very easily using meteor.
But, this framework currently supports only the MongoDB as back-end database.
I have recently created full stack framework called Nooljs which is similar to the Meteor. Now I have open sourced it. It support all the database connections including MySql, ms-sql, and MongoDB. The complex data driven application can be created easily using this framework.
This has been developed using well known existing framework such as Angularjs, Node, express-js, and socket-io.
Easy to build complex data driven JavaScript applications with minimum coding.
Support multiple data connections suck as Ms-sql, MySQL, PostgreSQL, and Mondodb.
Real time framework build top of Express-js and Socket-io
The client side is powered by the Angularjs.
The layout can be build using the Angularjs tags and elements.
Modularized layout to simplify the complex web pages.
Can be mixed both Express-js and Socket-io

Resources