Retrieving Smart Contract generated dApps

Hello there, i’m a very beginner about Algorand Smart Contracts and maybe someone can help me with my problem.

I’m currently developing a basic dApp for my master thesis that should manage a simple Car Sharing application.
The workflow of this application is very simple and i’ve already managed it somehow: an user post a Trip information (that will be saved into global_state) and some other users can join the trip (and change the global_state and the local_state)
Now my question is: since i want to create a separated frontend application, how could i afford to get all the generated applications (the generated new trips, basically) by my contract?

As now, a contract will manage a single trip, and the idea is to generate a dApp for each trip. Should i change this behaviour and use a single contract to manage all the trips? This seems a bit unsuitable on my opinion, also because of storage limit on global_state.

Another option is by using a centralized authority that stores all the generated app ids that i could list later, but this will, as well, centralize the application.

Also i’ve read about the indexer searching (Indexer - Algorand Developer Portal) should i try this way maybe?

Otherwise i was thinking about creating another Smart Contract / Smart Signature and store there all the generated applications, but i don’t know if it’s a good idea.

I would appreciate all the proposals, thanks in advance!

Welcome to Algorand!

This problem looks very similar to the NFT marketplace problem.
See [NFT marketplace] general smart contract architecture question - #2 by fabrice

Let us know if you have any further questions.

Thanks for the fast reply!

I will look to understand rekeying mechanism better.
I see that the indexer is still a valid solution, i should give a try in that direction maybe, which seems to be easier.