eBay was founded with the core belief that we should use technology to empower and connect people globally. In the technology world, we’re a core contributor to and believer in open source technology. Not only does a company culture of open source help us empower our developers, but it also enables our technologists to collaborate both across the organization and with peers throughout the industry.
A key pillar of eBay’s participation in the open source software community is our most popular open source project, Marko. Initially developed by eBay in 2012 to transition from our Java stack to a Node stack, it now powers the majority of ebay.com. While Marko was transitioned to the OpenJS Foundation, eBay still actively maintains the project.
- Bundlers: You can now build your Marko projects with Webpack or Rollup, in addition to eBay’s Lasso.
- Testing: Marko fully integrates with Jest and Storybook. Test with confidence with the Marko Testing Library.
- IDE: Marko’s language server integrates seamlessly in VSCode, bringing powerful code completion and navigation; syntax highlighting; and real-time error messages.
We will continue to work to incorporate support for tools like TypeScript, Prettier and ESLint.
Getting started with Marko has never been easier. The Marko CLI generates a ready-to-go project with built-in routing. Simply adding your pages and components to the folder generates a universal server and browser application. And that’s it. Marko automatically detects your components so you can use them without importing.
These CLI projects come with the best practices for performance built in. Marko automatically detects the components that are only needed on the server and produces an optimal browser bundle for you. Asynchronous streaming lets your pages arrive in the browser as quickly as possible while the rest of the data loads. We’ve been leveraging these techniques for over half a decade at eBay in production and now you can, too (read more here).
To get started, simply run the command from your terminal and follow the interactive CLI.
That’s Just the Start
Marko is a powerful, markup-based language that embraces the complexity of the client while being as easy to write as HTML templates. Our new compiler is designed to be able to target other platforms or even other UI frameworks. We have already begun to leverage it in developing our next-generation reactive runtime.