I'm currently using SDL and OpenGL for development. Nice thing is that you can develop on Linux or Windows and programs can be created that work for both systems (just rebuild from source on each). There are several example games for SDL if you want some ideas of what others have done. Also, a lot of them will work on Linux or Windows. Since you're talking client/server software, you'll probably want to look at the SDL_net library as well. The SDL_net project web page mentions a sample client/server you can look at. Other libraries I use with SDL are SDL_ttf (for TrueType font rendering), SDL_image (for loading graphics file formats), SDL_mixer (for sound) and SDL_gfx (for rendering lines, shapes or shrinking and zooming images). If you use, SDL version 2.x, applications built with it can also be ported to mobile devices. You can also use SDL with emscripten to create web apps. Licensing is very friendly for developers using SDL.
I think it's really going to be a matter of taste as to what languages/libraries/frameworks you decide to use. You may just end up having to try some different options and see which appeals to you most. Something I can use to quickly develop applications may take someone else longer to work with and their choices might be slower for me to develop programs with.
Biggest problem I have with application development for Linux is how to distribute the applications. If you're creating a client/server application with everything built on the server side and just using a standard web browser as a client, it shouldn't matter. However, if you're wanting to create a client specifically for Linux systems, that's where you start running into issues. If you're compiling the client, is it for a 32 bit or a 64 bit machine, x86 or arm, etc? You also have to worry about library compatibility (do they use glibc, uclibc, musl, etc.)? How do they get your client to install? Do you package it as a deb file, rpm, tarball, etc.? Do they have all needed dependencies on their system or can the user get them easily? Some people also distribute applications with docker, squashfs images, ISOs, etc. With Windows, I can run a portable app from a flash drive and it will work on just about any Windows system. There are some techniques that attempt to do something similar with Linux. Unless you're developing specifically for one type of Linux system (similar hardware and same base distribution) or you're using an interpreted language that's available on the system, typically you end up packaging everything you need from the entire operating system (or everything minus the kernel for docker images) into an image file. Also I've talked to some Linux users who say they will not install anything unless it comes from an official repository for their distribution. That would mean trying to get your client application packaged natively and added to a Linux distribution's repository for each type of distribution (Debian, Centos, Suse, etc.) you want to support. You might also want to look at possible building solutions such as OBS (
https://build.opensuse.org/ ).
Wish you good luck in finding what you're looking for. Would be interested to hear how your project progresses and how you plan to distribute it to other Linux users.