How can I get some kind of path that is guaranteed to point somewhere in my project

My generative AI said that Juce has no way of guaranteeing a default path and I have built my own string loader for my shaders and I want to use it.

If you’re talking about the JUCE Path class, then the default is an empty Path, which is guarenteed.
If you mean a directory, then that’s hard to guarantee, but the SpecialLocationType (which you pass to juce::File::getSpecialLocation()) is a good way of locating things like the user documents folder, or the desktop, or whatever.
Just make sure you have a fallback if the directory isn’t found for whatever reason.

During initial development, you could resort to just using absolute paths even cross platform with something like :

#ifdef JUCE_MAC
    macroKnobsPath = R"(/Users/user/codeprojects/2026/nephos/src/macroknobs.json)";
    presetsPath = R"(/Users/user/codeprojects/2026/nephos/granulatorpresets/)";
#else
    macroKnobsPath = R"(C:\develop\nephos\src\macroknobs.json)";
    presetsPath = R"(C:\develop\nephos\granulatorpresets\)";
#endif

But you can easily forget you’ve been doing that and it would be better to figure out how to use paths you can get with juce::File::getSpecialLocation like icebreakeraudio mentioned.

Another option could be to use the Juce binary resources system which allows you to build critical resources directly into your program/plugin binary so they don’t need to be installed separately on the file system.