Given that the support for this program is nearly non-existent, I thought I'd share the fix I came up with.
We all know (or should) that you can access the V Bookmarks Library by right-clicking the tray icon, then on Manage Library. Forget all that! That window is only good to see what you have set at a glance. So close that window if you have it open. Under no circumstances are you to ever click on Save, as that will blank out anything you're about to do!
Now, open up Explorer and enter %appdata%\V\resources into your address bar. Copy the file v-default-bookmarks.json somewhere as a backup. Do not neglect this! Now open v-default-bookmarks.json with your favorite text editor (Notepad++ works great for this).
Before I continue, you should know that there is another bookmarks file in the next higher directory named v-user-bookmarks.json. We are intentionally ignoring it - in fact, go ahead and delete it if it exists. It's bugged, missing indexes, and merges the default bookmarks into it where you don't have entries anyway.
Back to v-default-bookmarks.json... You should see several entries, all of them starting with an"index" property. Find a web page you want to view in-game, and grab the URL. Paste it after "url": and be absolutely sure to enclose it with double-quotes. (Almost every property and value in this file has double-quotes; the exceptions being integers and the word null.) Go ahead and give it a concise title. Be brief because the text is shown on top of the other icons, making it difficult to read sometimes.
Now for the icons... Find an image you want to associate with your bookmark and save it. Open it with MS Paint or whatever, and resize it to 512x512. Save it as a PNG, in the .\V\resources directory. In the JSON file you're editing, enter the name of the file next to "icon":, again enclosed in double-quotes, but without the file extension (.png). You may optionally enter null (without quotes of any kind) as the value.
Your file should contain 18 entries with indexes starting at 0 and ending with 17. You need to have something for all 18 entries or funky stuff happens. (You may bookmark whichever websites you want, but there has to be something in each URL, and they can't be null.) Ensure that your final entry's closing bracket '}' does not have a comma after it.
To summarize:
Each entry must have these 4 properties: index, url, icon, and title.
Indexes start at 0 and end with 17. Although they don't have to be in order, they must all be there.
The icon property's value can be null if you do not wish to use an icon at this point.
There must be a comma after each property: value, and after the closing bracket of each entry except the final property: value for an entry, as well as the last entry itself.
The file starts with an opening brace [ and ends with a closing brace ]. Make sure those don't get lost somewhere.
If you get lost, I've attached my v-default-bookmarks.json file below so you can reference what I'm doing.
[
{
"index": 0,
"url": "http://www.mcdee.net/elite/binds/tvscxu",
"icon": "joystickbindings",
"title": "Keybinds"
},
{
"index": 1,
"url": "https://eddb.io",
"icon": "Widget_eddb",
"title": "ED Database"
},
{
"index": 2,
"url": "https://inara.cz/",
"icon": "inara",
"title": "Inara - ED Companion"
},
{
"index": 3,
"url": "https://www.edsm.net/",
"icon": "edsm",
"title": "ED Star Map"
},
{
"index": 4,
"url": "https://coriolis.io/",
"icon": "coriolis",
"title": "Coriolis Ship Builder"
},
{
"index": 5,
"url": "https://hotdoy.ca/ed/bearing/",
"icon": "compass",
"title": "ED Bearing Finder"
},
{
"index": 6,
"url": "http://wavescanner.net/",
"icon": "audio",
"title": "ED Wavescanner Audio Samples"
},
{
"index": 7,
"url": "https://vignette.wikia.nocookie.net/elite-dangerous/images/3/37/Wave-Scanner-Signals.png/revision/latest?cb=20170319204729",
"icon": "wavescanner",
"title": "ED Wavescanner Display Samples"
},
{
"index": 8,
"url": "https://discordapp.com/channels/@me",
"icon": "Widget_discord",
"title": "Discord"
},
{
"index": 9,
"url": "http://play.spotify.com",
"icon": "widget__0005_Spotify",
"title": "Spotify"
},
{
"index": 10,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 11,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 12,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 13,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 14,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 15,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 16,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
},
{
"index": 17,
"url": "http://hellov.io/invr",
"icon": "Widget_hellov",
"title": "V"
}
]