Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Marko
Marko

11
19
+ 1
38
React
React

33K
24.7K
+ 1
3.4K
Add tool

Marko vs React: What are the differences?

Developers describe Marko as "An isomorphic UI framework similar to Vue". Marko is a really fast and lightweight HTML-based templating engine that compiles templates to readable Node.js-compatible JavaScript modules, and it works on the server and in the browser. It supports streaming, async rendering and custom tags. On the other hand, React is detailed as "A JavaScript library for building user interfaces". Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.

Marko and React can be primarily classified as "Javascript UI Libraries" tools.

"No JSX" is the primary reason why developers consider Marko over the competitors, whereas "Components" was stated as the key factor in picking React.

Marko and React are both open source tools. React with 132K GitHub stars and 24.5K forks on GitHub appears to be more popular than Marko with 9.08K GitHub stars and 565 GitHub forks.

What is Marko?

Marko is a really fast and lightweight HTML-based templating engine that compiles templates to readable Node.js-compatible JavaScript modules, and it works on the server and in the browser. It supports streaming, async rendering and custom tags.

What is React?

Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Marko?
Why do developers choose React?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use Marko?
What companies use React?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Marko?
What tools integrate with React?
    No integrations found

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Marko and React?
    jQuery
    jQuery is a cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
    jQuery UI
    Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.
    AngularJS
    AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding.
    Vue.js
    It is a library for building interactive web interfaces. It provides data-reactive components with a simple and flexible API.
    Select2
    It gives you a customizable select box with support for searching, tagging, remote data sets, infinite scrolling, and many other highly used options. It comes with support for RTL environments, searching with diacritics and over 40 languages built-in.
    See all alternatives
    Decisions about Marko and React
    Docker
    Docker
    Docker Compose
    Docker Compose
    Jenkins
    Jenkins
    Kubernetes
    Kubernetes
    Amazon EC2
    Amazon EC2
    Heroku
    Heroku
    FeathersJS
    FeathersJS
    Node.js
    Node.js
    ExpressJS
    ExpressJS
    PostgreSQL
    PostgreSQL
    React
    React
    Redux
    Redux
    Semantic UI React
    Semantic UI React
    AVA
    AVA
    ESLint
    ESLint
    nginx
    nginx
    GitHub
    GitHub
    #Containerized
    #Containers
    #Backend
    #Stack
    #Frontend

    Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

    We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

    See more
    Heroku
    Heroku
    Netlify
    Netlify
    Vue.js
    Vue.js
    Angular 2
    Angular 2
    React
    React
    ExpressJS
    ExpressJS
    vuex
    vuex
    Puppeteer
    Puppeteer
    ASP.NET
    ASP.NET
    #Heroku
    #Seo

    I found Heroku to be a great option to get ExpressJS up and running with very little hustle. The free tier is great, but I'd recommend to set up a cronjob to visit your site every few minutes so that the server stays awake. Netlify was the option to host the front-end because doing the server side rendering on #Heroku would have taken a little more time than I'd like to. For the moment pre-rendering the app with prerender-spa-plugin is enough to help with #seo. Puppeteer was my choice over other options because it made it easier to scrape websites made on ASP.NET which is what I needed in this case. And Vue.js is my top choice at the moment because it's really beginner friendly and it has a lot of the features I like about Angular 2 and React. vuex is a must in most of the app I build.

    See m