Migrating Code

Basically I want my code to be migratable so I can reuse my code in new projects.
i don’t plan to develop these projects simultaneously so i don’t think i need to put it in a plugin.
currently my classes use the Project_API macro which i would have to change if i migrated it, so should i put this core code into a module?
and i notice in the lyra project that some classes dont have a API macro.
does anyone have any suggestion on how i should organise this?

I would suggest separating them into modules. Each module has its own API macro. Modules are considered the basic building blocks of code in UE.