Meteor DevTools Evolved

Hello there, I would like to announce a new Meteor developer tools extension, Meteor DevTools Evolved. It is a small open source project with the intention of giving a breath of fresh air into the Meteor development tooling.

It kind of is very early in its development, so please let me know of any issues or potential improvements you have in mind, any idea is worthy of discussion.

This extension is supposed to be the spiritual successor to Meteor DevTools by The Bakery which was quite a staple for the Meteor community but sadly has not been maintained for some years.

I based my work on their initial architecture but completely revamped the development stack, with the help of TypeScript, MobX, and Blueprint. Thus it was completely rewritten, remaining only some Chrome Extension API specific code, which ended up being the same.

To solve the poor handling of DDP log deluges I implemented a buffer in order to prevent firing MobX reactivity unless Meteor is finished receiving new logs for a few milliseconds. Also, pagination helps by rendering only a portion of them at any given time.

I experimented with list virtualization, but it brought needless complexity and I quite didn’t like the result, since it prevented me from using certain styles and transitions readily available with modern Cascading Style Sheets, which I find very – very – important.

I even tried implementing my own version of virtualization, and the failure was epic. My rational self had to literally drag my other self away from that code, and show me how precious time is. It reawakened a raging process of spiritual enlightenment which was dormant since I last worked with PHP.

I think the highlight of this extension is the ability to search for either logs or Minimongo documents.

You also can bookmark logs for later analysis, and compare the CRC32 hash of their content, that way you can be sure if two messages are the same very quickly, or even search for identical logs without typing its entire content.

“I knew there would be a use for CRC32 hashes!!!" - Me, a few days after the fact

Behold, the evolution of Meteor DevTools:

Available Now as a Chrome Extension.

For the Meteor community.

46 Likes

Amazing work @leonardoventurini, this is super helpful for us!! Hope to contribute to this project, let me know if you need any help!

PS: really liked the way you explained all the experiments you made, made me remind how much decisions we have to make on a daily basis :laughing:

3 Likes

:grinning: sure, thanks!! haha

Nice work. Can you copy over the old Blaze tab from the original ? We still use Blaze and that tab is very useful sometimes.

1 Like

@marklynch well, let’s see… hehe I will have to do some planning/studying about that. :grin: thanks for the feedback

2 Likes

What a great gift to the community. Awesome work, thanks!!

4 Likes

Wow … wow its great

1 Like

@leonardoventurini, thank you!

1 Like

Awesome, well done :slight_smile:

1 Like

So cool! Nice work. Going to give this a use.

1 Like

Thanks!

I successfully used it to solve a weird double rendering bug today!

3 Likes

Wow! I had it enabled for a short while and its usefulness is already obvious. All the subscriptions and the Minimongo contents at a glance - priceless! Thank you, @leonardoventurini

1 Like

Hey @leonardoventurini works great, thank you so much!

As a follow-up discussion on this tool - What do you think about features like raising warnings for things like:

  • documents in the Meteor.users minimongo collection contain the services fields
  • userId is passed from the client to a method or publication (there is a method call or subscription call that contains an options with userId)
  • Meteor.settings.public contains keys / tokens / secrets / passwords (search for JSON key values like key, token, secret, password)
  • browser policy is active
2 Likes

seems interesting @jkuester just like the “security” tab in the old one I think… thanks I will certainly consider adding these soon. I appreciate the feedback.

Hello @jkuester, I documented your suggestion in this issue and I plan on implementing it in the future. Thanks.

3 Likes

@leonardoventurini have you planned to make this plugin also for Firefox ?

1 Like

Hello @davideonmeteor, I don’t plan writing one for Firefox yet as this one is still early in development and keeping two code bases would be too much for me as far as my schedule goes. Who knows, when this one is mature enough I might bootstrap one for Firefox.

1 Like

Just want to say that I’ve had a go of this and it is an amazing tool!
Can’t wait to dive into it a bit more.

Thanks for sharing.

1 Like

There is more to come, Meteor DevTools Evolved 1.2 is very close by… if you find any issues or suggestions please report to us in GitHub. Thanks :wink:

6 Likes