Papa Rent
Find the listing. Reach the source.

Original frontend design. Sample data.
The problem.
Dutch social and mid-rent housing is spread across many portals. People need to discover relevant listings and reach the right application page before the opportunity closes.
What I built.
A Dutch housing-search prototype that brings listings, saved searches and alerts into one app.
- My role
- Product concept, research and system design
- For
- People seeking social or mid-rent housing in the Netherlands
How it connects.
Fast listing detection with separate detail enrichment, saved-search matching and original-provider applications.
Read the connections as text
- Public sources → Collect + normalise
- Collect + normalise → Listings + events
- Collect + normalise → Enrich details: Separate queue
- Enrich details → Listings + events: Detail updates
- Listings + events → Match new listings: New events
- Saved radars → Match new listings: Search preferences
- Match new listings → Inbox + push + email
- Listings + events → App + listing detail: Feed + facts
- Inbox + push + email → App + listing detail: Listing link
- App + listing detail → Apply at source
Built in stages.
The prototype began with Rafael’s own housing search.
iOS, Android and web are the target platforms; a static web export is documented.
National coverage, measured alert latency and native-device validation remain unverified.
Inside the product.
Open a module to see its capabilities,
decisions and boundaries.
Collection & listing dataBring fragmented housing supply into a common listing format.
Source adapters
Source registry and adapters for public JSON, HTML and supported rendered pages
Collection controls
Repeated collection, conditional requests, per-source load limits and run-health records
Normalised fields
Normalised rent, location, area, rooms, segment, allocation model and deadline
Detail enrichment
Separate detail enrichment for costs, eligibility and links, plus PDOK geocoding
Listing events
Events for new, updated, price-changed, removed and reappearing listings
Partial feeds
Partial-feed handling and conservative removal checks
Radars & eligibilitySave what matters to a person’s housing search.
Radar wizard
Radar wizard for municipality or province, segment, maximum rent, rooms and tags
Saved-search controls
Create, edit, pause or delete saved radars
API filters
API filters also support radius, dwelling type, allocation model and excluded labels
Shared matching
Shared matching logic between the API and collection engine
Versioned classification
Versioned market-classification rules
Eligibility context
Household, income and age information shown with listing eligibility criteria
Alerts & inboxTurn a matching new listing into a useful notification.
New-listing matching
New-listing events matched to saved radars
Notification inbox
Notification inbox with read state and listing links
Delivery channels
Implemented push and email senders
Notification controls
Duplicate prevention, quiet hours and daily digest logic
Device health
Grouped push notifications and removal of invalid device tokens
App & listing detailScan the feed, understand a property and continue at its source.
Listing feed
Listing feed with saved-radar filters
Property detail
Detail view with map, housing facts, allocation model and eligibility
Provider application
Original-provider application link opened in an in-app browser
Map previews
Map-based previews instead of copied property photos
Languages
Dutch and English interface
Target platforms
Expo frontend for iOS, Android and web; static web export documented
Account & preferencesKeep search preferences and account controls together.
Authentication
Email-and-password registration, login and persistent sessions
Profile preferences
Profile preferences for language and eligibility information
Alert settings
Per-radar push, email and quiet-hour settings
Push registration
Device registration and notification permission flow
Account controls
Account-data export, account deletion and sign-out
Tools & systems.
TypeScript / Expo / React Native / Hono / PostgreSQL / PGlite / Drizzle / Better Auth / Expo Push / Resend / PDOK
Where the project stands.
- Listing coverage and alert-speed targets are not published achievements.
- Closing-soon reminders and registration nudges remain unimplemented.
- Applications stay with the original provider; the system does not bypass technical access barriers.