- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
Intro Section:
After 15 years in software development and test automation, I decided to build something of my own — a real estate (Immobilien) platform tailored for the German market.
The idea was to combine what I know best: robust backend architecture, modern TypeScript frontends, and secure authentication — all designed from the ground up for monetization.
This article walks through the architectural decisions, technical challenges, and hard-earned lessons that shaped the platform.
⸻
? Why Microservices?
I started with one clear goal: keep things clean and scalable. The platform includes:
• ?️ Multiple property types (house, apartment, garden…)
• ? Listings for rent and purchase
• ? File uploads for property photos
• ? Address-to-Geo translation (lat/lng)
• ? Secure login with role-based access
So I split it into microservices:
• property-service: manages property-related data
• auth-service: authentication via Keycloak
• geo-service: converts addresses into coordinates
• upload-service: handles image/file storage in PostgreSQL
• gateway-service: central API routing via Spring Cloud Gateway
⸻
Key Technical Choices
UUIDs for IDs:
Avoided collisions and made frontend caching simpler.
Database Design:
Separate tables for property types (Apartment, House, etc.) and for listing types (Rent, Buy) for performance.
File Uploads in PostgreSQL:
No S3 — I stored images using bytea in PostgreSQL. It’s fast and GDPR-friendly for MVP stage.
Keycloak Auth:
It powers:
• Login/Signup
• RBAC (Admin, Agent, User)
• JWT-secured APIs
DevOps with ECS + Terraform:
Everything runs in Docker containers on ECS.
Infrastructure is built using Terraform (VPCs, services, secrets).
⸻
?️ Frontend Stack
• Next.js + TypeScript
• Tailwind CSS
• Geoapify for address autocomplete
• Access tokens from Keycloak for secure API use
⸻
? Lessons Learned
• Don’t overgeneralize — real estate data is domain-specific
• Start with a Gateway service — saves major refactoring later
• Separate out audit/analytics early
• Keycloak is great but painful to customize
⸻
? What’s Next?
• ? Integrate Stripe for paid listings
• ? Notify users of search matches
• ? Add analytics microservice
• ?️ Improve map-based UX
⸻
Final Thoughts
If you’re considering building your own SaaS — go for it.
Start small, think in services, and build around real use cases.
I’m not just building a side project. I’m building a real app.
You can too.
⸻
Need Help?
Want to chat tech, design, or growth?
Drop a comment — let’s connect!
After 15 years in software development and test automation, I decided to build something of my own — a real estate (Immobilien) platform tailored for the German market.
The idea was to combine what I know best: robust backend architecture, modern TypeScript frontends, and secure authentication — all designed from the ground up for monetization.
This article walks through the architectural decisions, technical challenges, and hard-earned lessons that shaped the platform.
⸻
? Why Microservices?
I started with one clear goal: keep things clean and scalable. The platform includes:
• ?️ Multiple property types (house, apartment, garden…)
• ? Listings for rent and purchase
• ? File uploads for property photos
• ? Address-to-Geo translation (lat/lng)
• ? Secure login with role-based access
So I split it into microservices:
• property-service: manages property-related data
• auth-service: authentication via Keycloak
• geo-service: converts addresses into coordinates
• upload-service: handles image/file storage in PostgreSQL
• gateway-service: central API routing via Spring Cloud Gateway
⸻
UUIDs for IDs:
Avoided collisions and made frontend caching simpler.
Database Design:
Separate tables for property types (Apartment, House, etc.) and for listing types (Rent, Buy) for performance.
File Uploads in PostgreSQL:
No S3 — I stored images using bytea in PostgreSQL. It’s fast and GDPR-friendly for MVP stage.
Keycloak Auth:
It powers:
• Login/Signup
• RBAC (Admin, Agent, User)
• JWT-secured APIs
DevOps with ECS + Terraform:
Everything runs in Docker containers on ECS.
Infrastructure is built using Terraform (VPCs, services, secrets).
⸻
?️ Frontend Stack
• Next.js + TypeScript
• Tailwind CSS
• Geoapify for address autocomplete
• Access tokens from Keycloak for secure API use
⸻
? Lessons Learned
• Don’t overgeneralize — real estate data is domain-specific
• Start with a Gateway service — saves major refactoring later
• Separate out audit/analytics early
• Keycloak is great but painful to customize
⸻
? What’s Next?
• ? Integrate Stripe for paid listings
• ? Notify users of search matches
• ? Add analytics microservice
• ?️ Improve map-based UX
⸻
If you’re considering building your own SaaS — go for it.
Start small, think in services, and build around real use cases.
I’m not just building a side project. I’m building a real app.
You can too.
⸻
Need Help?
Want to chat tech, design, or growth?
Drop a comment — let’s connect!