While the recent article by Sacha makes some salient points, no software is perfect. Ask Bill Gates or Linus Torvalds if they are done with theirs.
The article basically boils down and sums up 50 other articles I have read complaining about Meteor. IMHO, most of the issues can be set aside once one has spent enough time with the framework to really understand what they are doing.
The major problem in my mind, which the article touches on, is long-term adoption of the platform. Sure, it’s easy to follow a tutorial and shift some things around to have a shiny toy for a week or two, but you probably used 701 packages and now it is broken and you have to move on and make some money.
This is the problem that I have been struggling to solve, not by blogging or chatting or making silly apps in two days that hang around for two weeks or two months. By writing code. I will tell you about it below, and why I think it can (at least substantially) solve the adoption problem.
Scroll to the bottom to see my solution if you are getting bored.
A Bit of Background
Last year (2015), I spent 7.5 months writing completely original Meteor code starting each project with a few empty text files in vim. In 2014, I spent almost 4 months writing a social network from scratch with Meteor 0.7-0.8.x. I invested all of that time self-funded and clientless.
Prior, I spent well over a decade writing several versions of my own personal content management system. The first fully functional version, featuring ratable image & video galleries and 15 user-or-admin-selectable themes (I made it during the first year of my BFA in Photo/Electronic Imaging to show off my interface sk1llz) was in use circa y2k, three years before Wordpress had been released. I carried it through from PHP 4 to 5 and from HTML 3 to XHTML 1.1. I used it for hundreds of sites, and my primary targets were small and medium businesses with large amounts of content to present. I never open sourced it… hindsight is 20/20 as they say.
The past few months I have been on hiatus (I’m back, as of today!), mixing fine cocktails and contemplating my role in the future of Meteor, the Internet and the pursuit of everlasting life.
Thankfully, Meteor recently released the Meteor Guide, which I discovered a couple days ago. Being a big fan of both reading and writing documentation, I am now halfway through it and it has blissfully re-awakened my creative side.
What Inspired My Potential Solution
So I spent too long working on my first project, a Twitter bot (I think everyone who Meteors has done so as well). But I wanted to really get some serious Meteoring done, so I just kept writing.
I kept a list of awesome Meteor app ideas and I decided to go on an “app-a-day” challenge to myself for a week straight. But wait! What point would there be if I did not blog about it, right?
Day 1 Mission: Start a Meteor-based blog to blog about Meteor stuff.
Day 1 Result: Failure.
The pride of a long-term custom CMS author would not allow me to even consider using Wordpress, and I had no desire to mess with my PHP stuff either.
I tried the available Meteor-ware at the time and none of it worked, and if it did, it did so very poorly. IMO, this illustrates the single biggest point of failure in the path-to-Meteor-adoption conundrum.
Day 2 Mission: Write my own.
Day 2 Result: I had posts & pages going in and out, and even a working news section. All code though and no pretty front-end.
Two months later, #MeteorPress beta 3 (demo) was coming along really well. I had gotten distracted a few times, spending 10 days on the user & roles editor, 10 days on an installer, and maybe a week on my own MarkDown parser. Then I got really bogged down editing all the elements of the sophisticated content editor… and I was getting really, really hungry.
I needed something smaller, something faster… something that fit into the modern paradigm of slick one page scrolling websites (surely a lucrative market, right?).
CMS #2 was born, #OnePageWonder (demo). Beta 1, login & content going in an out. Beta 2, intelligent scroller working, selectable Bootstrap themes, etc. It was a little buggy though, and moving on to beta 3 I really wanted to focus on configurability. Yes, that means I got distracted again.
Seriously though, writing Meteor code is so much fun, and so addictive, that I just couldn’t stop.
Until I was seriously a hair away from being homeless, anyway. I had to face facts, I needed food and money and Meteor was not delivering (I’m a really good programmer…maybe not so much of a businessman or blogger…plus I live deep in the woods…it’s like 1995 around here).
Why People Leave Meteor
I started Meteor by reading half of Discover Meteor, as do most people (I didn’t care for a lot of the design decisions so I moved on to straight Meteor Docs). Noobs either do that or work the Meteor tutorials building and playing with the Todos application. They start to really enjoy it, but also get super frustrated. The learning curve is quite high if you don’t already have a pseudo-PHD in web development.
Even when they do get something built, as soon as they blink it’s broken and they didn’t do it! Darn those packages. Begin Meteor blog rant about debugging (look closely… look m00arrrr closelier!).
Packages are great. Using 200? Forget about sustainability (20-30 is reasonable). Like when you install Linux the first few times and try to install half of everything in the package manager on the first day. Oops!
How to Stop It
I have rattled off pages and pages to my one Meteor friend in Gmail chat about what my systems could do for the Meteor community, so I should be able to sum it up quite succinctly.
By providing a solid, themable, easily extendable, web based system to new Meteor users, they would be able to immediately have a tangible thing in front of them with which to play with. Something they could actually produce things of value with right from the get-go and say they were Meteoring. Yes, the light-weight user system built-in to Meteor makes things nice… but … what do you do when you have 500 and they start misbehaving? And you want to see their history? And ban them? Or promote them?
Ultimately, every application needs ‘content management’. Help pages, user management, analytics, settings. Therefore, every Meteor project based on a mobile-friendly CMS is also half a day from being a mobile app.
So if you, Jo Newbie, can just grab a simple one page CMS which allows you to just drop in some custom code snippets and a new theme… bang, you have a new mobile app! And with only maybe 100 lines of your own code.
Then you write some more code and have another app…with a website. Then you write another theme. Then you decide you need a whole new steez and you go and write your own system because now you’ve had time to use and study a working, stable system. Or maybe you click the migrate button in the OPW back end and move it over to MeteorPress so you can grab some plugins from the library and branch out without coding anything at all.
The point is, you never had to run away because you were able to take baby steps and feel successful while doing so… maybe even profitable.
How You Can Help
I am not super huge on Powerpoint, Ted-talking my way through a kickstart, or blogging. If you are interested in helping me directly with design or code, please contact me via Twitter (@iDoMeteor) or support my work by making a donation. I hope to put together a crowdfunding page soon, but I don’t have much of a support network to get rolling… and I would rather be writing code than designing a solicitation!
Keep your eyes peeled for when I do though, if you please.
In the meantime… write some code. Make it reusable. Make it customizable. Make it themable. Make it extensible. Make it stable. Make it open source and get people to use it.
People new to Meteor ultimately need reliable, reusable software that let’s them get their hands dirty while also being able to have a stable product to show off. And until there is a variety of that, many potentially great Meteorites will drift off into the ether, never to be seen again.
Stalk me @ iDoMeteor on Twitter, Gmail or YouTube, hate on me in the comments. ;>
Download the #OnePageWonder Beta 2.5 Demo Code and get your hands dirty.