Tech Stacks of the Top Cannabis Apps
One of the first things you should do as a new business is analyze your competition. And if you're stepping into tech space and thinking of developing applications for stoners, you've got to understand what the current landscape looks like to create a unique solution.
Let's take a look at some of the top cannabis technology companies and reveal what software they're using for their web applications and websites.
All this information is sourced from observing publicly available source code, using the Wappalyzer chrome extension, checking job listings from the companies, and in some cases - insider IT leaks on Gitlabs.
Let's break some apps down.
Leafly
- Server: nginx
- Framework: ASP.NET, Angular JS, React
- Frontend: Adobe Typekit
- Libraries: Moment.JS, jQuery, RequireJS
- Marketing: Optimizely, Hubspot
- Plugins: Disqus, Twemoji, MediaElement.js
- CDN: Akamai
- Analytics: New Relic, Google Tag Manager, Chartbeat, Mixpanel
The Leafly stack is pretty different from most. It's incredibly corporate, with it's foundations in .NET for server side operations. The main application with the strain listing is a Ruby and AngularJS web application using their proprietary API. While the blog is actually Wordpress with what seems to be an AngularJS theme (and also running Yoast SEO, a trend we'll see on a few sites).
It's also interesting to see Leafly manage their SEO tags with Google Tag Manager, as opposed to relying on their CMS. It must help integrate sections like their web app and blog.
We also find React finding it's way into the stack with an implementation of a newsletter sign up form on a single page. Not exactly a SPA, and stacked on top of jQuery, but nice to see it peeking through all the Angular.
On the backend Leafly also seems to at least be experimenting with using: Node, Python, Redis, Elasticsearch, PostgreSQL, AWS, Kubernetes, Helm, and Docker (via).
WeedMaps
- Server: nginx
- Framework: Angular JS, Backbone, Ruby on Rails
- Frontend: Google Web Fonts API, Font Awesome
- Optimization: Rack Cache
- Monitoring: Bugsnag
- Plugins: Lodash, prettyPhoto, Moment.JS
- Marketing: Optimizely, Pardot by Salesforce, Intercom, Marketo
- Analytics: Chartbeat, Google Analytics, New Relic, Segment
WeedMaps is built on a nginx server. Rack Cache is a Ruby specific cache module, showing that their app's most likely rendered server side with Ruby on Rails.
The main WeedMaps web app is built on AngularJS and their proprietary API. Static pages like the About section run on older tech like BackboneJS and Lodash.
Massroots
- Server: nginx, PhusionPassenger
- Framework: Ruby on Rails, Angular JS
- Frontend: Google Web Fonts API, Angular Material
- Libraries: Moment.JS, jQuery
- Optimization: Rack Cache
- Analytics: New Relic
- Customer Service: UserVoice
Massroots didn't have a web app for a long time, subsisting only on their Android audience, and eventually iOS once Apple started approving more weed apps. Their recent-ish web app is built on a nginx server running Ruby on Rails and AngularJS, running Rack Cache just like WeedMaps.
The most different aspect of this stack from the rest is their deployment of the app on a PhusionPassenger server.
Eaze
- Server: nginx
- Framework: React
- Optimization: Webpack
- Blog: Wordpress
- Plugin: jQuery, Yoast SEO
- Marketing: Optimizely
- Analytics: Heap
Eaze runs on a nginx server, uses React for the main application, and compiles it with webpack. I'll be writing a more thorough breakdown of their dependencies another time.
Static and blog pages are rendered with Wordpress, using plugins like Yoast SEO. And we see the use of Optimizely yet again for marketing.
One of the simplest stacks, and one of my favorites -- all you need for most sites is React/Preact PWA frontend and a Wordpress fallback to handle content marketing effortlessly. Better than building out your own blog in JS, or trying to use 3rd party libraries like GatbsyJS to generate a static React blog -- it allows for your copywriters and editors to easily use the Wordpress backend for managing posts as opposed to a repository like Github.
MJFreeway
- Server: nginx
- Framework: Drupal, React, Ruby on Rails
- Optimization: Webpack
- Libraries: Moment.JS, jQuery, RequireJS
- Marketing: Hubspot
The MJ Freeway platform infamously runs on Drupal, as reported by an anonymous IT director and revealed by a recent leak on Gitlabs. They're allegedly building a more "secure" enterprise grade solution built on AWS, but who knows if they'll migrate off Drupal.
The front-end of the website runs on a mix of static HTML and ReactJS-infused pages.
Baker
- Framework: React
- Frontend: Google Web Fonts API, Respond
- Analytics: Segment, Google Analytics
- Customer Service: Intercom
Baker's shop is built on React, while the front-end seems to be a static HTML style site. They use Segment and Intercom to handle their analytics and CS services, as they integrate easily with JS frameworks. Presumably they use an API to connect between their in-store tablets to capture form data.
Jane
- Server: Cowboy, Express
- Framework: React
- Optimization: Webpack
- Frontend: Google Web Fonts API
- Analytics: Google Analytics, Heap
Jane runs on a Cowboy server running ExpressJS for routing and ReactJS for the content, all optimized with webpack. This site is probably the least "React" feeling website, seeming more like a PHP generated site than a progressive web app.
It's always interesting to see how other people execute similar projects, as well as which technologies commonly overlap. Themes and patterns emerge, like a lot of Optimizely, and React seeming to be the rising star of frontend frameworks. And I didn't even get into the mobile tech some of the companies use to create iOS and Android apps. Most are migrating to React Native judging by their job listings, but I'll dig into that in another article.
I hope this helps give you a better idea of the current landscape of the cannabis app community and helps you decide what software you'd like to use for your next pot-infused project. If you're a cannabis company interested in any help planning and architecting your next tech stack, contact us today.
Stay regular,
Oscar
Further Reading:
-Stackshare: Leafly
-Stackshare: Eaze
-Stackshare: Massroots
-Glassdoor Leafly Reviews
-Glassdoor Weedmaps Reviews
-Glassdoor Eaze Reviews
-Job Listing: WeedMaps - Senior Frontend Engineer
-Job Listing: WeedMaps - Senior Software Engineer (Ruby/Rails)
-Job Listing: WeedMaps - Scrum Master
-Job Listing: Leafly - Infrastructure Developer
-Job Listing: Leafly - Node.js Software Engineer
-Job Listing: Eaze - Senior Front End Engineer