
all work
nderoga
building paraguay's modern real estate platform.
- year
- 2025
- role
- founder & engineer
- client
- founder project
- stack
- next.jsfastapipythontailwindpostgrespagoparci/cdarchitecture

overview
nderoga is a free real estate listing platform built for the paraguayan market. property owners and agencies publish unlimited listings. seekers browse houses, apartments and land across the country through a fast, modern interface.
i built it end to end as a solo founder, every decision from product strategy to deployment, while collaborating with a designer on the visual identity.
after one year live, the platform hosts 128 active listings and grows organically through seo without any marketing spend.
the problem
paraguay's real estate market is large but digitally underserved. the existing platforms share the same issues: slow load times, dated visual design, paywalls for basic listings, and mobile experiences treated as afterthoughts. in a country where mobile is how most people access the internet, that gap matters.
when my family went through the process of looking for a property, the friction was obvious. search felt clunky, photos were low resolution, and small agencies and individual owners had no way to publish without paying upfront. it was clear the whole thing could be better with modern tooling, so i built it.
goals
i set three rules early on:
- free to publish, so individual owners and small agencies can compete with established players.
- mobile-first and fast, optimized for the device and connection most paraguayans actually use.
- modern but familiar: current to anyone used to airbnb or zillow, and in the local language, literally and culturally.
branding
the name nderoga comes from guaraní. nde róga means "your home." i wanted a name rooted in local identity instead of another anglicized startup name parachuted into the market. it's short, memorable, and carries cultural weight.
for the visual identity i worked with a designer who translated the brief into a full system: logo, typography scale, color palette, component states. managing that collaboration was its own discipline: communicating product intent clearly, giving structured feedback across iterations, deciding when something was done enough to move forward. translating a figma file into a living theme involves dozens of small judgment calls the designer never sees, and getting those right is part of the founder job.
one deliberate choice we landed on together: the entire ui supports light and dark themes natively.
architecture
i went with a clean separation between frontend and backend. two services, one shared contract.
frontend · next.js 15
- app router with react server components for fast initial loads and seo-friendly listing pages.
- design tokens and theme variables that made the light and dark system trivial to maintain.
- typescript end to end with shared types generated from the fastapi openapi schema.
- image optimization through next.js image with a cdn-backed object storage layer for property photos.
backend · fastapi + postgresql
- fastapi for the api layer. python's productivity plus type hints and auto-generated openapi docs the frontend consumes directly.
- postgresql as the source of truth, with postgis extensions reserved for future geospatial search.
- sqlalchemy and alembic for orm and migrations.
- jwt-based auth with role-based access for the multi-tenant agency model (owner, editor, advertiser).
why this stack?
i considered a single next.js app with api routes, but i wanted the backend portable and the api reusable for a future mobile app. splitting them upfront cost a few extra days of setup and bought long-term flexibility. fastapi specifically because python lets me prototype data and search logic quickly, and the openapi auto-generation eliminates an entire category of frontend/backend type drift.
product decisions
unlimited free publishing for organizations.
most competitors gate listing volume behind paid tiers. i bet that monetization should come from premium visibility (featured listings, promoted placement) rather than basic access. if a small agency can't even get on the platform, they go elsewhere and the marketplace dies before it starts.
multi-tenant agency model from day one.
real estate in paraguay is dominated by small agencies with a handful of agents each. i built organizations with role-based permissions (owner, editor, advertiser) early, even though it added complexity, because retrofitting multi-tenancy is brutal.
search before maps.
i deliberately shipped strong filtered search (city, property type, price, operation type) before investing in interactive maps. maps are expensive to build well, and most users start with text-based filtering anyway.
seo & organic growth
seo has been part of the build since the first commit. a google pagespeed insights score of 90 and organic growth carried the platform through its first year without paid marketing.
a few things that made the difference:
- server-rendered listing pages with full metadata, structured headings, and clean semantic html.
- human-readable urls everywhere: every property, city, and agency gets a slug like /propiedad/casa-en-asuncion-3-dormitorios, which matters in a market where most traffic eventually comes from google.
- every listing emits schema.org realestatelisting json-ld and a dynamically generated og image, so sharing a listing on whatsapp, the dominant channel here, produces a rich preview and much better click-through.
- property photos are transcoded on upload into multiple webp variants, and the frontend serves the smallest viable size for each viewport and device pixel ratio.
- i'm shipping in spanish only for now, but all user-facing strings live in translation files, so adding guaraní or portuguese later is a config change.
ci/cd
i refused to ship without a real deployment pipeline, even as a solo founder. the cost upfront is small. the cost of not having it shows up the first time you break production at midnight.
- github actions on both repos: every pr runs lint, typecheck, unit tests, and a build.
- the frontend deploys to vercel on merge to main, with preview deployments on every pr for visual review.
- the backend is containerized with docker and deploys to a managed container platform with automatic rollbacks. database migrations run as a separate gated step before the new image goes live.
- local development runs against the same postgresql version as production via docker compose, which has saved me from "works on my machine" bugs more than once.
where it stands today
after one year live, nderoga is at 128 active listings and counting, growing entirely through organic search: a fast, well-indexed product that people find when they search.
i keep iterating on it. recent and upcoming work:
- geospatial search with map view.
- saved searches with email alerts.
- a native mobile app reusing the same fastapi backend.
- a premium tier for featured placements, the first monetization layer.
what i learned
building nderoga reminded me where the real work is. picking the stack was easy and designing the schema was satisfying; the grind was the last 20%: empty states, error handling, auth edge cases, the tax compliance footer, the cookie banner. that's what separates a side project from a real product.
i also learned how much leverage modern tooling gives a single founder. the next.js app router, fastapi's auto docs and github actions let one person ship something that would have required a small team five years ago.
there's a big gap between recognizing a problem and building the thing that solves it. closing that gap, week after week, is what nderoga keeps teaching me.