Overview
News
Salaries
Products
People
Growth
Offices
Financials

Overview

Establish trust on every request. Welcome real users and AI agents, stop abusive bots — GDPR-compliant, risk-based verification that minimises friction.

News

News Prosopo 10 months ago
We suffered MongooseJS so you don't have to
We investigate how MongooseJS's type safety can silently add bugs to your code base.
Read more
Report
News Prosopo 11 months ago
We cut our Mongo DB costs by 90% by moving to Hetzner
We moved MongoDB Atlas off AWS and onto self-hosted Hetzner boxes - 90% cost cut, no performance loss. Here's the setup, the Ansible, and what broke.
Read more
Report
Report
News Prosopo 2 years ago
We Are Being Blackmailed or: How Not to Hire a Contractor
A contractor that we hired on Upwork is now blackmailing us. Here's how we got into this situation and how we're dealing with it.
Read more
Report
News Prosopo 2 years ago
tsx vs ts-node: Time to Drop ts-node for tsx
tsx vs ts-node compared: why tsx runs TypeScript faster than ts-node, and how to migrate your Node.js scripts away from ts-node today.
Read more
Report
News Prosopo 2 years ago
actions/cache@v3 restore: GitHub Actions Cache Fix
Fix GitHub Actions caching with actions/cache@v3 and actions/cache/restore: share caches across branches and evict old caches faster.
Read more
Report
News Prosopo 2 years ago
TypeScript: Branded Types
How to brand TypeScript types for norminal typing, providing an automated and easy-to-use way of making a type nominal.
Read more
Report
News Prosopo 2 years ago
Using Vite To Rebuild Local Dependencies in an NPM Workspace
Vite ignores local workspace packages because they sit outside its module graph - the config trick that forces Vite to rebuild sibling npm packages.
Read more
Report
News Prosopo 2 years ago
TypeScript: Mapped Type Magic
TypeScript mapped types can make Cat === Dog - a weird paradox. How to brand identical structural types so the compiler can tell them apart.
Read more
Report