Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meteor Today and Tomorrow

Meteor Today and Tomorrow

What Meteor is today and how is it going to be in the future?

Filipe Névola

October 22, 2020
Tweet

More Decks by Filipe Névola

Other Decks in Programming

Transcript

  1. TODAY CODESIGNAL ▸ Industry: Code / Hiring ▸ Accelerates Its

    Growth, Makes #3 on SaaS 1000 List (Aug) ▸ Technical Skills Screening Software Category Leader (Jun)
  2. TODAY BOOMLEARNING ▸ Industry: Learning ▸ Up to 30x in

    weekly revenue during Covid-19 ▸ They are hiring ;)
  3. GALAXY GO SERVICES ▸ aggregator ▸ autocerts ▸ collector ▸

    imagebuilder ▸ logger ▸ proxy ▸ scheduler
  4. GALAXY INTERESTING FACT ▸ Galaxy itself runs on Galaxy ▸

    Question: How is the first deploy done? ▸ A) Manually ▸ B) From another Galaxy region ▸ C) Go service to deploy
  5. GALAXY FREE DEPLOY ▸ It's coming back! ▸ MongoDB included

    ▸ Perfect for Hobby projects, Demos, PoCs and package showcases
  6. TODAY FILIPE NÉVOLA ▸ Previously Java Architect ▸ Javascript developer

    for 8 years ▸ Production apps with Meteor since 2013 ▸ Meteor Evangelist since the end of 2019 ▸ Founder of ArchLive and bemarke @FilipeNevola
  7. BEMARKE HERE WE GO ▸ bemarke is a market place

    to sell local products ▸ CRM ▸ Campaigns ▸ Influencers ▸ APIs
  8. BEMARKE CUSTOM TYPES ▸ Automatic conversion and instantiation on client

    and on server ▸ GraphQL ▸ MongoDB ▸ EJSON ▸ Date Time ▸ https://github.com/quavedev/custom-type-date- time ▸ Money (dinerojs)
  9. BEMARKE NATIVE ON APP STORE ▸ Built-in Cordova integration ▸

    Step by step guide to set up ▸ https://github.com/meteor/meteor/tree/ cordova-example/examples/cordova
  10. BEMARKE NATIVE GOOGLE PLAY ▸ Built-in Cordova integration ▸ Step

    by step guide to set up ▸ https://github.com/meteor/meteor/tree/ cordova-example/examples/cordova
  11. BEMARKE UNIVERSAL LINK AND DEEP LINK ▸ URL to open

    your native app and the right location ▸ https://github.com/quavedev/ universal-links
  12. BEMARKE PUSH NOTIFICATIONS ▸ Step by step guide to set

    up ▸ https://github.com/meteor/meteor/tree/ cordova-example/examples/cordova
  13. BEMARKE APP UPDATES ▸ Ask user's permissions ▸ Or force

    update ▸ https://github.com/quavedev/reloader/
  14. BEMARKE SSR ▸ Open Graph Protocol ▸ Custom colors ▸

    Custom previews ▸ Custom GTM (FB Pixel / Analytics)
  15. BEMARKE CI/CD ▸ Jenkins ▸ JobDSL plugin ▸ Jobs ▸

    Deploy ▸ ESLint/Prettier ▸ Fast Tests ▸ Slow tests
  16. BEMARKE TESTS ▸ Jest ▸ High coverage where Money is

    involved ▸ Runs before every commit ▸ Also Prettier and ESLint
  17. BEMARKE ARCHITECTURE ▸ 1 app code, 2 apps on Galaxy,

    same source code different settings ▸ API ▸ App ▸ 1 build, 2 deploys: ▸ meteor deploy api.bemarke.com --cache-build --settings api.json ▸ meteor deploy www.bemarke.com --cache-build --settings app.json ▸ Native builds with Fastlane ▸ https://github.com/meteor/meteor/tree/cordova-example/examples/cordova
  18. BEMARKE ARCHITECTURE ▸ Galaxy ▸ Security (SSL and App Protection)

    ▸ Multiple Domains ▸ Auto-scale (triggers) ▸ SEO (prerender.io) ▸ Logs ▸ Rollback/version control ▸ Alerts ▸ APM ▸ High Availability
  19. BEMARKE CODE ▸ Dynamic import using React.lazy on every route

    that is not used all the time ▸ 2 static components ▸ 8 nested components ▸ 56 dynamic components ▸ Nested import where possible for heavy modules ▸ Using Meteor methods for actions that don't need to affect Apollo cache ▸ Import files directly on big libraries
  20. BEMARKE DEVELOPER EXPERIENCE ▸ meteor --exclude-archs web.browser.legacy,web.cordova ▸ First start:

    26 seconds ▸ Build: 20 seconds ▸ Server startup: 3 seconds ▸ Server changes: 6 seconds ▸ Build: 3 seconds ▸ Server startup: 3 seconds ▸ Client changes: 1.5 second
  21. TOMORROW HOT MODULE REPLACEMENT ▸ See your changes immediately without

    losing the state ▸ React ▸ Svelte ▸ Read more https://forums.meteor.com/t/ meteor-2-0-beta-with-hot-module- replacement-hmr/54313
  22. TOMORROW HOT MODULE REPLACEMENT ▸ Cool, less than 1 second

    for every update in the client ▸ The best part: you don't lose the state, check it out
  23. TOMORROW ▸ It is already included in 2.0 betas. ▸

    Try it now! ▸ Keep following the progress here PR #11206. HOT MODULE REPLACEMENT
  24. TOMORROW TREE-SHAKING ▸ Import files directly on big libraries is

    not needed anymore TREE-SHAKING DISABLED TREE-SHAKING ENABLED 89% REDUCTION IN THE LIB SIZE INSIDE THE BUNDLE
  25. TOMORROW TREE-SHAKING ▸ Whole project not importing specific files TREE-SHAKING

    DISABLED TREE-SHAKING ENABLED 53% REDUCTION IN THE BUNDLE SIZE
  26. TOMORROW TREE-SHAKING ▸ Whole project already importing specific files (bemarke

    master) TREE-SHAKING DISABLED TREE-SHAKING ENABLED 5% REDUCTION IN THE BUNDLE SIZE
  27. TOMORROW TREE-SHAKING ▸ 5% reduction in the actual bemarke master

    code is great. ▸ If your project is not importing everything with care you are probably going to reduce a lot more your minified bundle ▸ Gzip will make the download smaller than the actual file ▸ It will be included in 2.0 beta soon, keep following PR #11206.
  28. TOMORROW TYPESCRIPT UPDATE ▸ Typescript 4.0 ▸ More freedom in

    the config ▸ Decorators (experimentalDecorators) ▸ Metadata reflection (emitDecoratorMetadata) ▸ PR is already started ▸ It will be included in 2.0 beta soon, keep following PR #11206
  29. TOMORROW CORDOVA UPDATE ▸ New majors available ▸ Mobile tools

    are very sensitive, specially iOS, so we want to always be up to date ▸ PR is already started ▸ It will be included in 2.0 beta soon, keep following PR #11206
  30. TOMORROW NODE.JS UPDATE ▸ Node.js 12 has still a long

    time in LTS but … ▸ Node.js 14 is starting on LTS soon so we also want to add this update ▸ We are working to fix the build on Windows, Unix system seems to be working fine ▸ It will be included in 2.0 beta soon, keep following PR #11206.
  31. TOMORROW DROP OLD STUFF ▸ No, we are not going

    to break everything ▸ Yes, we can drop some old stuff that is not used anymore ▸ We have already some discussions and PRs in progress
  32. TOMORROW PUSH TO DEPLOY ▸ Commit, push and deploy ▸

    Deploy directly from your code repository ▸ Deploy your app without a CI ▸ Details will be shared as soon as they are ready!
  33. TOMORROW REPEATING: FREE DEPLOY IS COMING BACK! ▸ Free deploy

    details will be shared as soon as they are ready! ▸ Keep tuned in our Twitter @meteorjs
  34. TOMORROW METEOR CLOUD IS COMING ▸ A new brand, unifying

    our offerings ▸ Meteor Developer Accounts ▸ Atmosphere ▸ APM ▸ Galaxy Hosting ▸ Push to Deploy
  35. TOMORROW METEOR 3.0… ▸ Meteor 2.0 is all about our

    top requested core features but… ▸ What could we do better to attract new developers? ▸ How could we make app development simpler? ▸ What are the boilerplates we write over and over again? ▸ What packages should receive a new major version or a new way to solve the same problem? ▸ We think Meteor 3.0 is going to be all about new exciting features to deliver results faster in our apps. We are going to build this together.
  36. TOMORROW ARE YOU NEW TO METEOR? ▸ React Tutorial (new)

    ▸ Step-by-step from creating your app to deploying it ▸ https://react-tutorial.meteor.com/ ▸ Vue.js, Svelte and Blaze tutorials ▸ https://www.meteor.com/tutorials ▸ Docs: https://docs.meteor.com/ ▸ Guide: https://guide.meteor.com/ ▸ Galaxy guide: https://galaxy-guide.meteor.com/
  37. TOMORROW HOW TO KEEP UP TO DATE? ▸ Monthly Podcast:

    https://podcast.meteor.com/ ▸ Meteor Forums: https://forums.meteor.com/ ▸ Meteor blog: https://blog.meteor.com/
  38. TOMORROW HOW TO KEEP LEARNING? ▸ How to Create an

    App ▸ Every day a new video ▸ https://www.youtube.com/channel/ UC8A0hHUaCBvuBs0eA5g_q3A ▸ Organized content ▸ https://www.howtocreateanapp.dev/ ▸ Everything presented here and much more ▸ 3 Recorded lives available (GraphQL, Native & PWA)
  39. TOMORROW HOW TO HELP METEOR? ▸ Join the Community Slack:

    Invite ▸ Promote Meteor ▸ Create apps with Meteor and share with your friends ▸ Write blog posts about what you are doing with Meteor ▸ Record videos showing you working with Meteor ▸ GitHub ▸ Triage issues ▸ Review and Submit PRs ▸ Docs and Tutorials updates
  40. GALAXY INTERESTING FACT: ANSWER ▸ Galaxy itself runs on Galaxy

    ▸ Question: How is the first deploy done? ▸ A) Manually ▸ B) From another Galaxy region ▸ C) Go service to deploy
  41. THANKS! Twitter: @FilipeNevola ▸ How to Create an App: Every

    day a new video ▸ Subscribe: https://www.youtube.com/channel/ UC8A0hHUaCBvuBs0eA5g_q3A