How to change default monitor resolution

@dscoti
First I wanted to clear up something just for your own learning as you say you are, the Screenly image you download and burn it into the SD card is running Raspbian OS or else there wouldn’t be any system at all, if you did not know how to reach raspi-config, you could have asked and I would have explained that you either needed to press Ctrl+Alt+F1 to get into the console physically or SSH into the Pi. So to confirm, Raspbian OS is the operating system that Screenly runs on, if your system somehow did not have raspi-config, you would have simply installed it by downloading it from here: GitHub - RPi-Distro/raspi-config: Configuration tool for the Raspberry Pi

Ok, so about the os-config.json file, where is this file from because Screenly or Raspbian do not use this? are you using balena by any chance?

Also, the resolution situation is def not screenly related since I have a Pi zero W here and tested and works fine with monitor and TV.

When you configure the resolution, please set it up properly according to what hardware you are using, when you said you were using a TV I specifically mentioned CEA for a reason.

Reference:
CEA modes are intended for TV, they include plenty of interlaced and progressive modes, usually with 25/50/100Hz (PAL) or 30/60/120Hz (NTSC) frame rates and TV resolutions of 288/480/576/720/1080 scan lines. DMT modes are intended for computer monitors, therefore there are none of the interlaced modes, the resolutions are 640/720/800/1024/1280 and the frame rates are compatible with the computer monitors, something like 60/70/75/80/85/120Hz.

For the overscan situation, you can simply manually try different negative numbers on the /boot/config.txt file, which I have done in the past to get the entire image onto a TV, these are the numbers I had to use to get no black areas showing:

overscan_left=-14
overscan_right=-14
overscan_top=-32
overscan_bottom=-32

But, your primary situation is that of a resolution, what cables are you using to connect to the TV?

I would suggest you to use balenaEtcher to burn the latst Raspbian OS lite directly from raspberry downloads onto your SD card for the Pi zero W:
http://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-lite.zip

Then, run the bash install script to install screenly rather than using the images.
One very easy way to set up wireless and ssh on the device, is to do the following:

  1. Once the Raspbian OS system has been burned on the SD card, remove it and re-insert it into your computer so that the volume can be mounted as /boot/ and you can edit files inside it.

  2. create a file called wpa_supplicant.conf and in there fill it out with your wifi settings… I have written a little guide to doing this on one of my projects and I recommend quickly reading it here: Digital-Signage-Based-User-Targerd-Advertising/Software/API at main · viradhanus/Digital-Signage-Based-User-Targerd-Advertising · GitHub

  3. you should also create an empty file called ssh (it could be a text file or just using the touch command to create it) in this same SD card /boot/ volume to automatically enable SSH on the Pi.

So, in general, this resolution situation is really an issue on a case by case basis since the resolution is handled by the Raspbian OS, not specifically by Screenly…