Skip to content

Meteor 3 Project like Rails 8 #4

@filipenevola

Description

@filipenevola

I watched the open keynote from Rails World 2024, which launched Rails 8. It was cool to see DHH explaining how powerful Rails 8 is, especially because they've solved all the main use cases you'd have in a web project.

This has been my goal for a long time, but now I've decided we really need to solve it. With Meteor 3, we don't have any major technical debt like fibers or Node.js 14, so I believe we can create a simple use case of all popular features in the Quave Meteor template project.

The Quave template already does a lot:

  • Collections
    • Make sure collection2 is incorporated correctly on quave:collections
    • Make sure collection-helpers are working
    • Allow users collection to be created using a string
    • Remove definition option
    • Publish JSDoc as d.ts files
    • Composers for soft delete, save
  • Passwordless authentication
  • Private and public routes using react-route
  • React
    • React 19 support
    • React compiler set up
  • TailwindCSS
  • Emails using postmark
  • ESLint and Prettier
  • Lefthook

We still miss a few details about the Cron package. It's there and can run jobs, but it needs attention to:

  • Prevent parallel execution of the same Cron job
    • if a timeout is configured it considers fine to run in parallel after it, and considers the previous one as finished with error.
  • Correctly wait for async functions (otherwise, the job is always considered successful)
  • Doesn't provide errors of duplicated collection (There is already a collection named "cronHistory" error #1)

We also need to check if Meteor Migrations is ready for Meteor 3.

  • so you can run async database migrations.

If we find more common cases, we should adopt them in this Meteor template to show that Meteor 3 is ready for prime time and can solve any typical web application issue.

Another important thing is to provide common actions, like, create a new collection with schema prompts so people can scaffold projects fast. We don't think generators of code are still necessary with all the new AI Tools, but good prompts with good examples are important. Specially due to the changes in Meteor 3.

Prompts:

  • create a new collection
  • Create a new collection with schema
  • Create a new collection with schema and composers
  • create a new publication
  • create a new method
  • Create a new migration
  • Create a new cron job

Promote the way

After finishing the code and package level work, I'd like to

  • record a video showing all these features together and creating a new project easily.

Our objective here is focused on Meteor 3, we don't care about Meteor 2 for this to work there, and we can also create breaking changes in the packages but following SemVer.

If you want to help, send a message to me (filipe@quave.com.br).


An additional point (not the main goal) could be to have a way to generate CRUDs easily, but that's just a bonus!

We have this internally at Quave and it could be helpful to open source it as well, but that is something for another issue.


Additional point (not the main goal as well) Slingshot compatible with Meteor 3 and also supporting CloudFlare R2 besides AWS S3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions