You're right, page viewer web part is not supported in SharePoint Online modern experience.

As a workaround you can use below web parts:

1. To show the file, use [File viewer web part](https://support.microsoft.com/en-us/office/use-the-file-viewer-web-part-e53a9602-e7b3-4fff-9126-de2f18d1900c)
2. To show the site pages, use [Embed web part](https://support.microsoft.com/en-us/office/add-content-to-your-page-using-the-embed-web-part-721f3b2f-437f-45ef-ac4e-df29dba74de8)

<hr>

**Update from comments**:

If you want to develop your own web part, you can use the SharePoint Framework. Check below documentations for more information:

1. [SharePoint Framework overview](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview)
2. [SharePoint Framework web parts](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/overview-client-side-web-parts)
3. [SPFx web part samples](https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples)