Warning, this is a bit of a long post…
I have seen a lot of hand-wringing about the future of Meteor. I share in that hand wringing because I have seen core developers move away, and third party packages atrophying. It is very worrying. But I bloody love Meteor. It saved my bacon, and that counts for me
A bit about my history. For the longest time, I was a C guy. I still am. If you held a gun to my head to write something, I would have chosen C until last year. I have dabbled with other languages including a heavy dose of Obj-C (I am one of the original authors of a somewhat popular terminal emulator on OS X). But I am essentially the ultimate backend guy where front-end was a foreign term to me. I did hardware bringup, backend apps, SQL database apps, but always had a bit of contempt for the web world. That was not hard stuff, I told myself.
Until I had to build one. The last time I did anything web related was back in 2002 I hadn’t thought it had moved on much
So, here I was in April 2016. I had been working on a new OpenStack platform, a cloud virtualization environment. I wanted to launch this platform. I needed a web UI platform and and a backend for doing some business logic like accounting and usage tracking and such. So doing this on Wix or something similar was not an option. So I outsourced this job. The contracting company essentially chose MySQL and PHP. Nothing wrong with those technologies, but crap, the implementation sucked. I refused to put my name behind that. I needed to rewrite the frontend. I had 10 days to launch.
I was scrambling. I did a very hasty review of web technologies that I could use. I didn’t have much time. I knew instinctively that I needed to look at JavaScript frameworks. But which one?
While I had a very inflated opinion about my own capabilities, I was in new territory. Google search after google search revealed many options. Way too many I finally settled on Meteor.
Why Meteor? What attracted me was the full stack nature of this beast. I didn’t need to worry about plumbing the various parts. I could focus on my needs in the next 10 days. Most other stacks (and I admit I might have missed a few) demanded I understand plumbing various components together.
At that time, I needed a frontend for people to use and a backend for our solution to connect to. I didn’t care about pub/sub, Blaze vs React, mongo vs others, etc. I just needed to get this done in 10 days. Here were my challenges:
- I needed to bone up on JavaScript after 14 years
- I needed to learn a new framework, and possibly a NoSQL DB technology
- I needed to learn how to write UI code
- I needed to learn how to expose a REST API to the actual product to connect to
- I had to release this stuff in 10 days!
Suffice it to say, I did not sleep much the next 10 days.
But damn, Meteor made it easy. It gave me Mongo. I figured it out. It gave me Blaze. I figured it out. It gave me reactivity that I didn’t need, but damn, I loved it. It didn’t have a REST API, but simple:rest was beautiful. I didn’t know anything about UI routing, but flow-router just worked, thank you Arunoda, and good luck!. The google/facebook oauth packages just worked. accounts-password worked. alanning-roles worked. Damn it, it all bloody worked!
Remember, I was running up against a clock. Tick-Tock
Fast-forward 10 days. A lot of sleepless nights. But it was NOT spent fighting the stack. It was spent relearning JS and implementing my business logic. Meteor got out of my way and helped me. Hell, I was worried about deployment until I learned about Galaxy
OK, so this launched. It’s all good. Thank you Meteor and your forums!!!
Well, the next project came along! This time, it was a mobile only app. I refused to use ionic or such types of technologies, sorry guys! i really wanted something native! I wanted something native like for both iOS and Android. And I really need pub/sub this time!
By this time, I was much more comfortable with JavaScript But
Challenges:
- As good as I am, I had never developed a mobile app, period!
- Our app was bloody complex!
- I didn’t know Swift (even though I was very comfortable with Obj-C), and was very rusty in Java
- I wanted a common code base for iOS and Android
- I needed data reactivity and pub/sub with the backend server
So, I ended up picking react-native for the mobile app stack, but I really wanted to use Meteor as the backed. Could that be done? Fortunately, I found react-native-meteor. Bloody hell, that is a sweet package.
Fast forward, We have a complete solution now with Meteor backend and a react-native mobile app. Would this have been possible without Meteor? Of course! But damn, I didn’t need to worry about the backend much. It just bloody worked!
So, all in all, you guys at MDG and everyone in the community saved my bacon. I know things are changing, and I am watching. I am excited about Apollo, Vulcan, etc., and I know there are scalability concerns, but I want you folks to never forget about folks like me This is why you shine!