The Idea
In late 2024, we asked: what if homeowners could redesign their rooms using AI?
Not with expensive designers. Not with complicated software. Just upload a photo, describe what you want, and get a photorealistic design in seconds.
That idea became Aspire Interiors — an iOS app with three ways to generate room designs:
- Text Only: Describe your dream room, get 4 design variations
- With Inspiration: Upload a mood board, AI extracts colours and styles
- Copy a Room: Upload a photo of any room, AI replicates the design for your space
Six months later, the app is in pre-launch, preparing for App Store submission.
Here's how we built it.
The Technical Stack
| Layer | Technology | Why We Chose It |
|---|---|---|
| Frontend | Swift + SwiftUI | Native iOS performance, Apple's design language |
| Backend | Supabase (PostgreSQL) | Real-time database, auth, storage — all in one |
| AI Generation | Vertex AI (Google Cloud) | Cost-effective, high-quality interior design generation |
| Image Analysis | Cloud Functions + OpenAI Vision | Extract design elements from uploaded photos |
| Authentication | Sign In with Apple | Required for App Store, privacy-focused |
| Storage | Supabase Storage | Direct image hosting, CDN delivery |
| Analytics | Custom events in Supabase | Lightweight, no third-party dependencies |
Total development cost: Under £10,000 (AI tools + cloud services + developer time).
Team: Mark (strategy), 2 full-time developers, 3 AI developers.
The Build Process
Phase 1: Design Concept (Weeks 1-4)
Before writing code, we built the design system:
- 40+ database tables for materials, colours, styles, and room types
- Complete design guidelines (13 materials, colour psychology rules)
- User flow wireframes (6 screens, 3 bespoke options)
- Prompt engineering framework for consistent image generation
Lesson: Spend more time on design than you think. Changing a database schema after launch is painful.
Phase 2: Core Generation (Weeks 5-12)
The heart of the app is the design generation pipeline:
- User selects room type (living room, bedroom, bathroom)
- User inputs preferences (style, materials, colour, budget)
- AI generates 4 unique designs using Vertex AI
- Images stream back to the app in real-time
- User can edit, regenerate, or save designs
Technical challenge: Vertex AI has a 60-second timeout. For complex rooms, generation could take 45-55 seconds. We built a progressive loading system that shows a preview while the full image generates.
Phase 3: Bespoke Options (Weeks 13-20)
The three bespoke options required different technical approaches:
Option 1 — Text Only:
- Straightforward: user inputs → AI generates
- Challenge: making 4 variations feel distinct, not just colour swaps
Option 2 — With Inspiration (Mood Board):
- Technical: Upload image → Cloud Function extracts colours and styles using OpenAI Vision → feed into generation prompt
- Challenge: Extracting accurate colour hex codes from photos with mixed lighting
Option 3 — Copy a Room:
- Technical: Upload room photo → AI extracts 6 design elements (materials, colours, lighting, layout, furniture, style) → map to user's room type
- Challenge: Avoiding "hallucination" — when AI invents elements that don't exist in the photo
Phase 4: Polish & Persistence (Weeks 21-24)
- Added design history (all generated designs saved to profile)
- Built full image viewer (pinch-to-zoom, share, save to camera roll)
- Implemented Sign In with Apple (required for App Store)
- Added analytics tracking (generation counts, option usage, completion rates)
The Challenges (And How We Solved Them)
Challenge 1: Database Constraints
The app_designs table had a NOT NULL constraint on original_image_path. But Option 1 (text only) doesn't have an original image. The app crashed every time a user tried to save a text-only design.
Fix: Removed the NOT NULL constraint. Added validation logic in the app instead.
Lesson: Database design should match actual user flows, not idealised ones.
Challenge 2: AI Commentary
Early versions of the extraction API returned verbose commentary like "this warm beige tone from the mood board inspires the colour palette." Users didn't want commentary. They wanted clean data.
Fix: Rewrote the extraction prompt to output only field assignments (no commentary, no mood board references).
Lesson: AI output needs to be designed for the user, not for the developer.
Challenge 3: App Store Requirements
Apple requires:
- Privacy manifest (
PrivacyInfo.xcprivacy) - Sign In with Apple
- App Review notes explaining non-obvious features
- Age rating if AI generates content
Fix:
- Created privacy manifest documenting all data collection
- Implemented Sign In with Apple before any other auth method
- Wrote detailed App Review notes explaining AI generation process
- Prepared for 17+ age rating (AI-generated imagery)
Lesson: Read App Review guidelines before you build, not after.
What We'd Do Differently
If we started again:
- Build Android from day one — React Native or Flutter. iOS-only limits market by 50%.
- Add a free tier — 3 free generations before paywall. Current model requires subscription upfront, which kills conversion.
- Implement social sharing sooner — "Share your design" drove 40% of Aspire's social traffic. The app should have built-in sharing.
- Use a simpler database — Supabase is powerful but overkill for v1. SQLite + Cloud sync would have launched faster.
- Test with real users earlier — We waited until month 5 for beta testing. Should have started at month 2.
The Result
App Status: Pre-launch (TestFlight beta with 20 users)
Metrics:
- 6 months from first sketch to TestFlight
- 3 bespoke design options working end-to-end
- 4 design variations per generation
- Under £10,000 total development cost
- 40+ database tables for design intelligence
Next Steps:
- Sign In with Apple (in progress)
- App Store submission (preparing privacy manifest and review notes)
- Public beta (targeting 100 users)
- Android version (Q3 2026)
The Bottom Line
You don't need a team of 10 developers to build an AI app. You need:
- A clear concept
- The right technical stack
- A willingness to iterate
- And AI tools that handle the heavy lifting
The barrier to building AI-powered products has never been lower. The barrier to good AI-powered products is still high — and that's where strategy matters.
Have an App Idea?
Book a Free Strategy Call — we'll tell you if it's technically feasible and what it would cost.