Carpathian needed domain parking for unused domains and wanted something simple with total control over content, including ads and sponsorships if needed.
This post explains how the domain parking system works, why simplicity was chosen, and the actual economics behind it.
What Got Built
The domain parking service is intentionally basic:
- Flask server (about 600 lines of Python)
- SQLite database for caching approved domains
- Webhook integration for tracking visits
- Platform credits at $0.01 per 1,000 unique visitors
- Two HTML templates for A/B testing
We specifically avoided complex algorithms, sophisticated fraud detection and advanced analytics since it just wasn't needed for what we wanted to accomplish here.
Technical Architecture
The Flask Server
We chose Flask because it's simple and we know it well. The entire parking server is a single Python file that serves parking pages for approved domains, tracks visits via webhooks to our main API, validates domains against our approved list, and does basic A/B testing between two templates.
Database Strategy: SQLite + Webhooks
Instead of a complex database setup, we use SQLite locally and send data to our main backend via webhooks.
Local SQLite stores:
- List of approved domains
- Basic domain metadata
Webhooks handle:
- Visit tracking to award credits
- Integration with our main platform
This keeps the parking server simple and resilient and if our main backend goes down, parking pages still work.
Domain Validation
Domains get approved through our main platform. The parking server syncs this list on interval and validates domains for SSL certificate requests.
Revenue Model:
We pay users $0.01 per 1,000 unique visitors
How we make this work:
- We earn about $0.02 per 1,000+ visitors from ad networks
- We pay users half of what we earn ($0.01 per 1,000)
- The remaining half covers infrastructure and processing costs
- It's essentially break-even
Why we do it anyway:
- We wanted parking for our own domains
- It drives users to try our other services
- Platform credits keep users in our ecosystem
- It's a service we personally wanted to exist
Platform Credits vs. Cash
We pay in platform credits instead of cash for practical reasons:
- Immediate payouts with no minimum thresholds
- Simpler accounting with no tax complications
- User retention because credits encourage using other services
- Lower costs with no payment processing fees
Credits can be used for hosting, services, (and eventually swag in our shop).
What We Track
Our tracking is basic but functional. Per visit we capture:
- Domain visited
- Visitor IP address
- User agent
- Referrer
- Timestamp
This gets sent via webhook to our main API for credit calculation and then deletes all the personal information.
We don't do complex fraud detection beyond obvious bots. Most of our bot filtering is just checking user agents and again, all the information is deleted. We only keep the final numbers of hits to the website.
Simple A/B Testing
We do basic "A/B testing" between two templates with a 50/50 random split but we don't track which one does better.
SSL and Infrastructure
SSL certificates are handled with automatic Let's Encrypt integration. When a domain points to our nameservers and it's validated as existing with platform, we automatically get a certificate.
We had initially planned fraud detection, (more) advanced analytics, and sophisticated revenue optimization. We built none of that...
Webhooks Are Reliable
Using webhooks to send data to our main API works well. Even when our main backend has issues, parking pages stay up and we can process the queued data later.
Transparency Matters
We believe being honest about our simple setup and break-even economics builds more trust than any marketing would have and with how scummy it seems the internet has become, this is really a non-negotiable. Privacy has always been a large concern and we admire companies like Apple's dedication to user privacy.
What's Next
We're not planning major changes as of now besides potentially letting users designing their landing pages, howver with how many platforms become complex and bloated over time, we want to avoid this. The system works, it's stable, and it serves our needs.
TL;DR
Most companies would make their domain parking sound more sophisticated than it is. We're sharing the reality because transparency builds trust, simple solutions work, and break-even services are okay. Not everything needs to be a profit center.
If you're curious about any specific implementation details or want to discuss how we solved particular challenges, feel free to reach out.