Just wanted to check, if we have any out of box features like any existing TBBs or CTs to publish or Do I need to create a new one and update the storage configuration to point to File system
Based on your above comments, I still feel that you can use DXA to push out the JSON files. JSON files do not get refreshed until app pool recycles and is dependent on your cache settings and timeouts.Based on your frequency of publishing, you can build a custom controller to force retrieving the JSON from the database. In older versions of DXA, we had a hidden /admin/refresh to be able to do something similar to the above but will have to be disabled in a production like environment for application stability and security purposes. Now answering your questions, I see 2 options.
Option 1 - Use a new site for your custom JSON files
If you do not want any DXA and CIL dependency, you can create a storage extension to copy the JSON files published from SDL to a separate static website. You would need a new website and replication softwares to ensure that all your webservers have the JSON files, once they are published from SDL (if you do not have shared storage).
Option 2 - Use your DXA site for your custom JSON files
If you want to use the DXA website but want to avoid any DXA and CIL dependencies, you can create your HTTPHandler (.NET) for your JSON files and retrieve them from the filesystem before DXA is handling the request.
<add name="CUSTOMJSONContentModule" type="YOURCUSTOMJSONContentModule" /> <add name="DxaStaticContentModule" type="Sdl.Web.Mvc.Statics.StaticContentModule" />
If you like additional inputs from the community, please update your question! Hope it helps.