Revitalized Meteor Examples: Showcasing what Meteor can do today (RC)

With Meteor 3.4 introducing the Rspack bundler, modern build optimizations, and full ESM support, our application examples needed a refresh. We’ve revamped the Meteor examples repository to reflect the current state of Meteor and showcase what’s possible with the latest tools.

These examples serve two purposes: help newcomers get started with a solid foundation, and show existing users how to adopt new features like Rspack, modern UI frameworks, and async patterns in real-world scenarios.

All examples now run on Meteor 3.4.1-rc.1 with Rspack enabled, async MongoDB operations, and modern frontend setups. Each one includes CI/CD with GitHub Actions, linting, and E2E testing (Playwright or Cypress). Every in-house example is also deployed to a Galaxy sandbox so you can try the finished product in your browser before cloning the repo. These examples first shipped alongside the Meteor 3.4.1 beta announcement and now target 3.4.1-rc.1 as the release line moves toward stable. They can be easily fetched through the improved meteor create command.

Try Them Out

With Meteor 3.4.1-rc.1, you can now dynamically fetch and create projects from examples directly:

# List all available examples
meteor create --release 3.4.1-rc.1 --list

# Create a new app from an example
meteor create my-app --release 3.4.1-rc.1 --example <example-name>

# Or pull directly from the examples repository
meteor create my-app --release 3.4.1-rc.1 --from https://github.com/meteor/examples --from-branch migrate-examples --from-dir <example-dir>

# After creating, install npm dependencies
cd my-app && meteor npm install

What’s Been Updated

Task Manager

A personal task management app with a dashboard. Track tasks, mark them complete, and see reactive metrics update in real time on the hosted demo.

  • Tailwind CSS v4 with PostCSS
  • React 19 with the createRoot API
  • Meteor-RPC for type-safe methods with Zod validation
  • shadcn/ui components
  • React Query on the client for data fetching and caching
  • Biome for linting and formatting
  • Reactive dashboard metrics with MongoDB task collections

A solid starting point for anyone adopting Tailwind and type-safe patterns in Meteor.

Notes Offline

A note-taking app that works without an internet connection. Create, edit, tag, and preview notes in markdown, all persisted locally and synced when back online. Open the deployed demo in two browsers to see the per-device scoping in action.

  • Mantine UI for the component library
  • IndexedDB persistence via jam:offline for offline-first data
  • Optimistic methods with jam:method for offline queuing
  • Cached subscriptions with jam:pub-sub so the app loads instantly from Minimongo
  • Soft delete with jam:soft-delete for trash and recovery flows
  • PWA service worker integration using Workbox via Rspack (compatible with the official webpack plugin)
  • Per-device anonymous scoping so a deployed instance isolates notes between visitors without requiring accounts
  • Multi-language UI in English, Spanish, and Portuguese via LinguiJS, integrated into Rspack’s built-in SWC loader through @lingui/swc-plugin and compiled on the fly by @lingui/loader
  • Responsive connectivity indicator that combines navigator.onLine with Meteor.status() so the icon flips immediately on a browser-level drop instead of waiting for DDP’s heartbeat
  • Full CRUD with auto-save, markdown preview, tagging, pinning, trash/recovery, export/import, and dark mode

A great reference for anyone building offline-capable Meteor apps or exploring service worker workflows with the new Rspack sw.js dev support.

Simple Blog

A mini blogging platform with posts, comments, and role-based access control. Authors write, admins moderate, and readers comment, with email notifications on new activity. Contributed by @dupontbertrand. You can try it live at the hosted demo.

  • Role-based access control for post and comment management
  • Email notifications with dev-mode preview via dupontbertrand:mail-preview
  • Blaze 3 with Bootstrap 5 and Flow Router
  • MJML for email templating

Source and setup instructions live in the repository.

Tic-Tac-Toe

A two-player tic-tac-toe game with real-time moves synced across browsers. Simple, fun, and a clean demonstration of Meteor’s reactivity. Grab a friend and play a round on the hosted demo.

  • React 19 with the createRoot API
  • Material UI v7 styling
  • oxlint for fast linting
  • Playwright end-to-end tests covering the full two-player flow, from room creation through a winning game

A lightweight example that demonstrates React 19 and MUI v7 working together on Meteor.

Parties

A party planning app where users can create events on a map, invite guests, and RSVP. One of the classic Meteor examples, now fully modernized. Sign up on the hosted demo, drop a pin on the map, and invite a few friends.

  • Async MongoDB operations (insertAsync, findOneAsync, updateAsync)
  • Blaze v3 upgrade (backward-compatible)
  • Bootstrap 5.3.3 styling
  • D3.js powering the interactive map
  • RSLint for linting
  • Playwright end-to-end suite covering sign-up, login, and logout against Meteor Accounts, in addition to creating and RSVP’ing to parties

Shows that Blaze apps can smoothly transition to the latest Meteor with minimal friction.

Complex Todos (Svelte)

A full-featured todo app with categories, filters, and validation. Demonstrates how Svelte 5 pairs with Meteor for reactive, schema-validated workflows. Sign in on the hosted demo to try the full authenticated flow.

  • Svelte 5 runes replacing Svelte 4 syntax
  • jam:method replacing mdg:validated-method with Zod schemas
  • Skeleton UI v4 with Tailwind CSS v4 and the Cerberus theme
  • oxlint for fast linting
  • Cypress end-to-end tests, including a dedicated authentication spec covering sign up, sign in, and sign out

Svelte 5 support is made possible through the Rspack build pipeline, which handles the latest Svelte compiler natively. A good reference for the Svelte community looking to use Meteor as their backend.

Common Patterns Across All Examples

A key motivation behind this effort was to resurrect classic Meteor examples, migrate them to Meteor 3 with its async API, and rebuild them to cover more features and real-world functionality. Rather than minimal skeletons, each example now showcases a broader range of what Meteor can do today. Every revamped example shares a set of patterns you can adopt in your own apps:

  • Fully migrated to Meteor 3.4.1-rc.1 with async MongoDB operations and modern APIs
  • Rspack bundler for faster builds, tree shaking, and HMR
  • Modern frontend setups with the latest versions of each framework
  • CI/CD pipelines with linting and E2E tests (Playwright for most apps, Cypress for Complex Todos)
  • Hosted Galaxy sandbox deployments on every in-house example so readers can try them without cloning

What’s Next

These examples are currently in the release candidate stream alongside Meteor 3.4.1-rc.1. They are exercised by automated unit and E2E suites so a release bump can be validated quickly across all apps, but we welcome feedback and bug reports as we move toward the stable release.

Once the current examples are stable, we’ll prepare contribution guidelines so the community can submit their own. If you’ve built something with Meteor that showcases a framework, integration, or pattern not yet covered, we’d love to see it in the future.

If there’s a specific setup or integration you’d like to see, let us know on the forums or Discord.

6 Likes

I’m really glad you took to the forums to announce this. Otherwise this’d just fly under the radar. It’s important to be vocal about what you do, for the benefit of others and yourself.

As for the examples, I really really commend you on the differences between each one. Offline first using @jam packages, Blaze/Roles with @dupontbertrand, React. The difference is stark between each and every example and they don’t overlap at all whilst still showing different ways you can build with Meteor. This goes to show even simple changes, that don’t require great feats of engineering like Rspack or Capacitor to Cordova for instance :sweat_smile: can carry a huge value to the community. You just need a good taste. A lesson on OSS contrition if you ask me. Lots of lessons if you look deep enough actually.

Also, wasn’t there some problem with Svelte? Or it’s now fixed as of Meteor 3.4+? No more GitHub - JorgenVatle/meteor-vite: ⚡ Replace Meteor's bundler with Vite for blazing fast build-times · GitHub?

Is there an Angular example app too? I believe you need another AI skill to keep those examples updated @nachocodoner :smile:

Aight, I’ll seize with the ass-kissing but I just like call out good stuff when it happens no matter how small and also bad stuff too :grin:

GUD JOB!

1 Like

Yes, the idea with examples is to make an effort to offer richer experiences showing what you can do, covering different cases and features, not only from the core but also from community packages out there. It’s also a way for us to get more familiar with them and, at some point, feel more confident about moving ideas to the core.

Also, wasn’t there some problem with Svelte? Or is it now fixed as of Meteor 3.4+? No more meteor-vite?

The Meteor bundler didn’t support Svelte 5 with zodern:melte. With meteor-vite, users have reported it works well on their end. But since this is an official example, I thought it’d be better to stay within official procedures, at least to have a first-class example with Rspack. We can have a separate showcase with meteor-vite anytime. Would anyone more experienced with meteor-vite be willing to help with that?

Either way, the plan is to keep examples as up to date as possible. I’m not sure about plans on the meteor-vite side to support Vite 8, but as far as I know, that’s not the case. It’s still a valid option, but if it’s not maintained, people adopting meteor-vite could fall behind. That’s been another reason to keep the Rspack approach.

Is there an Angular example too? I believe you need another AI skill to keep those examples updated @nachocodoner :smile:

I’ve thought about it and it’s on my list, since I also wanted to review the approach for enabling test specifics in the Angular environment. For those who don’t know, we may not have a rich Angular example yet, but we have an Angular skeleton (meteor create --angular) since Meteor 3.4. When I get back to this, I’ll dedicate time to building a richer Angular example.


As part of the future native work with CapacitorJS, we’ll resurrect the mobile examples. For now we just have an up to date Cordova example, with more coming as part of the future modernization of the native side.

2 Likes

Very cool!

One (minor) question: How come TW v3 for Task Manager, and not v4?

Thank you.

Good catch, I will update it to v4. No specific reason, just many examples to adapt and sometimes forgetting to use the latest version.

2 Likes

notes-offline update. Meteor v3.4.1-rc.1

Offline-first PWA notes app with auto-save, markdown, search, tagging, pinning, trash/recovery, import/export, cross-tab sync, per-device scoping, and multi-language UI (en/es/pt)

This example is one where I am adding some extras because it has been the perfect opportunity not only to showcase offline capabilities with Jam’s community packages, but also to show how Rspack integration helps Meteor to adopt libraries that also improve app features, like automatic service workers with declarative config in rspack.config.js and internationalization with LinguiJS.

I reworked notes-offline to ensure the configuration with Workbox is there and ready to make offline work well with the service worker, especially in HMR mode, where it was causing infinite reloads or hot updates were not landing properly.

The example also includes LinguiJS configuration for i18n. This tool can benefit any project, but it has a very interesting integration with Rspack, so you can use @lingui/loader to compile the JSON catalogs on the fly during bundling. That means there is no separate compile step, and everything becomes part of the build system.

This is just another proof that we can delegate to the wider JS ecosystem and avoid Meteor, as a framework, having to maintain its own packages for everything. We can still provide these as examples or build packages that make this configuration easy to start with, but we do not need to reinvent the problems these tools already solve behind the scenes, like service workers or i18n management. i18n was noted in this post, and this only proves how much flexibility the existing tools already give us to extend the experience without reimplementing those blocks on our side.

Check the example out with:

meteor create my-app --release 3.4.1-rc.1 --example notes-offline

or live: https://notes-offline.sandbox.galaxycloud.app/

That said, examples are a great opportunity to showcase the tools you have adopted. notes-offline, for instance, was a good example to explore community packages and showcase the Rspack Workbox adoption and i18n strategy I use on my projects, as a way to close the circle on what we really wanted to provide to the community with the bundler upgrade.


Demo URLs

Live Galaxy Metal sandbox deployments of the Meteor examples.

2 Likes