Pretty far, as it turns out. pg_trgm can be used for fuzzy matching, there's built-in full-text search with tsvector and GIN indxes. You can also use recursive CTEs for basic graph traversal.
With the awesome k6, I managed to load test the performance too, easily handling 500k assets and around 100 concurrent users performing various tasks on cheap Hetzner nodes with no external infrastructure. It's really impressive how capable Postgres is for a multitude of tasks.