- 0
- 1,052 word


Tudira – Real Estate Flutter App Template With 360° Virtual Tours, Node.js Backend and Admin Panel
Launch a complete real estate marketplace — not a UI kit. Tudira ships a Flutter app that carries both the customer and the agent experience in a single binary, a NestJS REST API, and a Next.js admin panel — tied together by a shared TypeScript + Zod contract, so the client and server can never drift apart. The headline feature is a built-in 360° virtual tour, rendered on the device itself, with no third-party service and no per-view cost.
Tudira is designed global-first: it opens in English with a clean, modern aesthetic, supports multiple currencies and both m² and sqft, ships a polished dark mode, and includes full right-to-left Arabic as a first-class feature — not a bolt-on.
▶ Try it in five minutes — live, right now
You do not need to set up a server or a database to evaluate Tudira. See it running before you buy:
- Live web demo: tudira.vercel.app/demo — open the full app in your browser.
- Android APK: download the demo and install it on your phone.
- Overview & screenshots: tudira.vercel.app
Every screen — including the 360° tour and the map — runs from bundled sample data behind a visible DEMO DATA banner, so demo content can never be mistaken for a live server. It disappears automatically the moment the app points at a real API. You can also run it locally with one command: cd app && flutter run—dart-define=USE_MOCK=true
★ The flagship: built-in 360° virtual tours

No other template in this category ships a real, on-device 360° tour. Tudira does:
- Multi-room walkthroughs — tap a room to move through the property.
- Gyroscope-driven look-around — physically move the phone to look around, or drag with a finger.
- Fullscreen immersive mode.
- Rendered from standard equirectangular images your agents upload — no external service, no subscription, and no per-view fee.
Global-first: dark mode and full RTL Arabic, in the same app

- English, Spanish, and Arabic, with full right-to-left layout for Arabic — the entire UI mirrors correctly, not just the text.
- A polished dark mode tuned so property photography looks like a gallery.
- m² ⇆ sqft unit switching and multi-currency support.
- Adding a new language is a single .arb file — nothing else changes.
Everything a marketplace needs
Discovery & search
- Map search with clustered price pins and draw-your-own-area, powered by OpenStreetMap — no API key and no billing account required.
- Powerful filters — buy / rent, price range, bedrooms, city, property type, 360°-only, and multiple sort options.
- Saved searches with email alerts — a buyer saves a search and is emailed when a matching listing is published.
- Compare up to three properties side by side, favourites, and a built-in mortgage calculator.
Listings & agent mode
- Customer and agent in one app. A user applies to become an agent, an administrator approves them, and the agent can then publish listings, buy visibility packages, and receive enquiries.
- Full listing lifecycle with a staff-controlled moderation and publishing workflow.
- Photo and 360° upload directly from the phone. The server re-encodes every image and strips location metadata (EXIF / GPS), so a photo of a home does not leak where it is.
- Paid visibility packages — Featured, Top of Search, and a 360° Spotlight.
Payments
- Stripe Checkout with a signature-verified webhook: a purchase stays pending until Stripe confirms it, so a forged or replayed callback can never activate a package.
- Runs end-to-end with zero keys. Until you add Stripe credentials, purchases complete as clearly-labelled simulated purchases — nothing is charged.
Communication
- Instant messaging between buyer and agent, with an agent leads inbox.
- Transactional email (password reset, agent approval, saved-search alerts) via Resend — and it works with no key by logging the full email so you can see exactly what would be sent.
- Email broadcasts with one-click unsubscribe and opt-in marketing consent.
Run the whole marketplace — no code required

- A full Next.js admin panel: moderation queue, all listings at any status, agents, packages, cities, settings, broadcasts, users, and a complete audit log.
- No-redeploy configuration — change the default area unit, mortgage defaults, and marketing-consent default per market from the admin, consumed live by the app.
- After the one-time developer setup, day-to-day management is done entirely from the admin — approvals, moderation, packages, and broadcasts, all without touching code.
Security & foundations
- JWT authentication with refresh-token rotation and reuse detection.
- Hardware-backed token storage on the device — the iOS Keychain and Android Keystore-backed encrypted storage, never plaintext.
- Per-endpoint, proxy-aware rate limiting to protect your login and password-reset endpoints.
- Uploads decoded and re-encoded server-side, with EXIF/GPS stripped; passwords hashed with bcrypt; helmet security headers.
- Runs on stock PostgreSQL — no PostGIS and no extensions.
Technology stack
- Mobile app: Flutter (Riverpod, go_router) — iOS and Android from one codebase.
- API: NestJS + Prisma + PostgreSQL (Node.js).
- Admin panel: Next.js.
- Shared contract: TypeScript + Zod, exported to OpenAPI 3.1.
What’s included
- Full, commented source for the app, API, admin panel, and shared contract.
- Seed data, an OpenAPI 3.1 specification, a Postman collection, and a docker-compose file.
- Self-contained HTML documentation (no internet connection required to read it) covering setup, configuration, deployment, and rebranding.
Requirements
- Node.js 20+ and pnpm
- PostgreSQL 14+ (or the bundled docker-compose)
- Flutter 3.x (stable), with Xcode and/or Android Studio
Third-party services & costs (please read)
Tudira works out of the box with no paid services: the map uses free OpenStreetMap (no API key), and Stripe and email run in a clearly-labelled simulated mode until you add your own keys, so nothing is charged. If you choose to enable live integrations, the following are external, third-party services with their own pricing, and any charges are billed to you directly by those providers — not by this item:
- Email delivery — Resend by default, or any provider you wire in such as SendGrid, Mailgun, or AWS SES, may incur costs depending on your email volume and each provider’s pricing.
- Stripe — standard Stripe transaction fees apply to real payments.
- Google services (optional) — billed per Google’s own pricing if you enable them.
Documentation & support
Complete setup, configuration, deployment, and rebranding instructions are included as a self-contained HTML document. The code is commented wherever a decision was non-obvious, so the next developer understands the reasoning, not just the syntax. Demo photography is CC0 (public domain). For support, please use the contact channel on this item’s page.
Tudira — ship a real estate marketplace, not a mock-up.
