Build a Real Estate Website in 30 Minutes with PropertyWebBuilder

A practical, step-by-step tutorial showing you how to launch a professional property website from scratch


What You'll Build

By the end of this 30-minute tutorial, you'll have:

✅ A fully functional real estate website
✅ Admin dashboard for managing properties
✅ Multi-language support (English, Spanish, French)
✅ Responsive design that works on mobile
✅ Property search and filtering
✅ Contact forms and lead capture
✅ Professional theme (Brisbane, Bologna, or Bristol)
✅ Deployed to the web (free hosting)

No prior Rails experience required (but basic command line knowledge helps).


Prerequisites

Before starting, install:

  1. Ruby 3.2+
    bash ruby --version # Should be 3.2.0 or higher

  2. Rails 8.0+
    bash gem install rails rails --version # Should be 8.0.0 or higher

  3. PostgreSQL (for production deployment)
    ```bash
    # macOS
    brew install postgresql@14

# Ubuntu/Debian
sudo apt-get install postgresql

# Windows
# Download from postgresql.org
```

  1. Git
    bash git --version

Optional but recommended:
- GitHub account (for deployment)
- Railway.app or Render.com account (free hosting)


Step 1: Create Your PropertyWebBuilder Site (5 minutes)

Option A: Using the Template

The fastest way to get started:

# Clone the PWB template
git clone https://github.com/etewiah/pwb-template my-real-estate-site
cd my-real-estate-site

# Install dependencies
bundle install

# Create database and load sample data
rails db:create db:migrate db:seed

# Start the server
rails server

Open http://localhost:3000 — you should see your site!

Option B: Starting from Scratch

If you want to build from a new Rails app:

# Create new Rails app
rails new my-real-estate-site --database=postgresql
cd my-real-estate-site

# Add PropertyWebBuilder to Gemfile
echo 'gem "property_web_builder"' >> Gemfile
bundle install

# Run PWB installer
rails generate pwb:install

# Setup database
rails db:create db:migrate db:seed

# Start server
rails server

Step 2: Explore Your New Site (5 minutes)

Frontend (Public Site)

Visit: http://localhost:3000

You'll see:
- Homepage with featured properties
- Search functionality (location, price, bedrooms)
- Property listings with photos and details
- Contact forms for enquiries
- Multi-language selector (top right)

Try:
1. Clicking on a property to see details
2. Switching languages
3. Using the search filters

Admin Dashboard

Visit: http://localhost:3000/admin

Default credentials:
- Email: admin@example.com
- Password: password123

You'll see:
- Properties management (add, edit, delete)
- Settings (site name, logo, contact info)
- Themes (switch between Brisbane, Bologna, Bristol)
- Languages (configure translations)
- Users (invite team members)

⚠️ Change the admin password immediately:
1. Go to "Settings" → "Users"
2. Click on admin@example.com
3. Update password


Step 3: Customize Your Site (10 minutes)

3.1 Update Site Settings

In the admin dashboard:

Settings → General

Site Name: "Prime Properties" (your agency name)
Tagline: "Find your dream home"
Email: your-email@example.com
Phone: +1 (555) 123-4567
Address: 123 Main St, Your City

Settings → Social Media

Facebook: https://facebook.com/yourpage
Instagram: https://instagram.com/youragency
Twitter: https://twitter.com/youragency

3.2 Choose a Theme

Settings → Theme

PWB includes three professional themes:

  • Brisbane — Modern, minimal, lots of whitespace
  • Bologna — Classic, professional, traditional estate agent look
  • Bristol — Bold, contemporary, image-focused

Select one and click "Save." Your site updates instantly.

3.3 Add Your First Property

Properties → New Property

Fill in:

Title: Stunning 3-Bedroom Family Home
Price: $450,000
Property Type: House
Bedrooms: 3
Bathrooms: 2
Plot Size: 0.25 acres
Description: 
"Beautiful family home in quiet neighborhood. 
Recently renovated kitchen, large backyard, 
close to schools and parks."

Address: 456 Oak Street, Your City

Upload photos:
- Drag and drop at least 3-5 property photos
- First photo becomes the featured image
- Rearrange by dragging

Set status:
- ☑️ Published (visible on site)
- ☐ Featured (shows on homepage)

Click "Create Property"

3.4 Configure Languages

Settings → Languages

Enable the languages you need:
- ☑️ English
- ☑️ Spanish
- ☐ French
- ☐ German
- ☐ Portuguese

Click "Save" — language selector appears on frontend.

To customize translations:

# Edit config/locales/en.yml (English)
# Edit config/locales/es.yml (Spanish)

Step 4: Add Sample Properties (5 minutes)

Let's add a few more properties to make the site look real.

Quick method — Use the seed task:

# Stop the server (Ctrl+C)
rails db:seed:properties
# This adds 10 sample properties with images

Manual method — Add via admin:

Repeat Step 3.3 for 2-3 more properties with different types:
- Apartment
- Commercial Property
- Land/Plot

Pro tip: Use free stock photos from:
- Unsplash.com
- Pexels.com
- Search "real estate interior"


Step 5: Deploy to Production (5 minutes)

Option A: Deploy to Railway (Recommended)

Railway.app offers free hosting with PostgreSQL included.

# Install Railway CLI
npm install -g @railway/cli

# Login
railway login

# Initialize project
railway init

# Add PostgreSQL
railway add postgresql

# Deploy
railway up

# Open in browser
railway open

Set production admin password:

railway run rails console
# In console:
User.first.update(password: 'your-secure-password')

Option B: Deploy to Render

Render.com also offers free tier hosting.

  1. Go to render.com
  2. Click "New +" → "Web Service"
  3. Connect your GitHub repo
  4. Configure:
    Build Command: bundle install; rails db:migrate Start Command: rails server
  5. Add PostgreSQL database (free tier)
  6. Deploy

Option C: Deploy to Heroku

# Install Heroku CLI
brew install heroku

# Login
heroku login

# Create app
heroku create your-real-estate-site

# Add PostgreSQL
heroku addons:create heroku-postgresql:mini

# Deploy
git push heroku main

# Run migrations
heroku run rails db:migrate db:seed

# Open site
heroku open

What You've Achieved

In 30 minutes, you've:

✅ Installed PropertyWebBuilder
✅ Customized branding and settings
✅ Added multiple properties with photos
✅ Configured multi-language support
✅ Deployed to production hosting

Your site is now live on the internet.


Next Steps

Immediate Improvements

1. Custom Domain

# Railway
railway domain

# Heroku  
heroku domains:add www.yoursite.com

2. SSL Certificate

Both Railway and Render/Heroku provide free SSL automatically.

3. Email Configuration

# config/environments/production.rb
config.action_mailer.smtp_settings = {
  address: 'smtp.sendgrid.net',
  port: 587,
  domain: 'yoursite.com',
  user_name: ENV['SENDGRID_USERNAME'],
  password: ENV['SENDGRID_PASSWORD'],
  authentication: 'plain',
  enable_starttls_auto: true
}

Free email services:
- SendGrid (100 emails/day free)
- Mailgun (5,000 emails/month free)
- Postmark (100 emails/month free)

4. Google Analytics

<!-- Add to app/views/layouts/application.html.erb -->
<%= render 'shared/google_analytics' if Rails.env.production? %>

Create app/views/shared/_google_analytics.html.erb:

<!-- Google Analytics GA4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

Customization Ideas

5. Custom Homepage

# Generate custom homepage
rails generate controller pages home

Edit app/views/pages/home.html.erb

# config/routes.rb
root to: 'pages#home'

6. Add Lead Capture Forms

PWB includes contact forms by default. To customize:

# app/controllers/inquiries_controller.rb
def create
  @inquiry = Inquiry.new(inquiry_params)
  if @inquiry.save
    InquiryMailer.new_inquiry(@inquiry).deliver_later
    redirect_to root_path, notice: 'Thank you for your inquiry!'
  end
end

7. Integrate with Property Portals

PWB supports XML feeds for:
- Rightmove (UK)
- Zoopla (UK)
- Immoweb (Belgium)
- Kyero (Spain)

# config/routes.rb
get '/feeds/rightmove', to: 'feeds#rightmove', format: :xml

8. Custom Themes

Create your own theme:

# app/assets/stylesheets/themes/my_custom_theme.scss
.theme-my-custom {
  --primary-color: #2563eb;
  --secondary-color: #7c3aed;
  // ... your styles
}

Troubleshooting

"Database doesn't exist"

rails db:create
rails db:migrate

"Couldn't find User with id=1"

rails db:seed  # Creates default admin user

Images not uploading

Check ActiveStorage is configured:

rails active_storage:install
rails db:migrate

Styles not loading

# Clear assets cache
rails assets:clobber
rails assets:precompile

Can't access admin panel

Default URL: http://localhost:3000/admin

Default credentials:
- Email: admin@example.com
- Password: password123

Reset password:

rails console
User.first.update(password: 'newpassword')

Going Further

Documentation

  • Official Docs: GitHub Wiki
  • API Reference: /docs/api
  • Component Guide: /docs/components

Community

  • GitHub Discussions: Ask questions, share sites
  • Discord: Join the PWB community (link in repo)
  • Twitter: @etewiah for updates

Advanced Features

Once comfortable, explore:

  • Multi-tenancy — Host multiple agency sites from one installation
  • Custom property types — Add boats, vehicles, etc.
  • Advanced search — Polygon drawing, saved searches
  • CRM integration — Salesforce, Pipedrive
  • Payment processing — Stripe for premium listings

Conclusion

You've just built a professional real estate website in 30 minutes.

What took agencies $5,000-$10,000 and weeks of development, you did in half an hour.

The site you built includes:
- Property management
- Search and filtering
- Multi-language support
- Responsive design
- Admin dashboard
- Contact forms
- Professional themes

Next challenge: Add your real properties, customize the design, and start getting leads.


Resources

  • PropertyWebBuilder GitHub: https://github.com/etewiah/property_web_builder
  • Demo Site: https://demo.propertywebbuilder.com
  • Video Tutorial: [YouTube Walkthrough] (coming soon)
  • Template Repo: https://github.com/etewiah/pwb-template

Built something cool with PropertyWebBuilder? Share it! Tag @etewiah on Twitter or submit to the PWB showcase.

Questions? Open a GitHub issue or discussion — the community is helpful and active.

Happy building! 🏡

PropertyWebBuilder — Open-source Rails engine for real estate websites

GitHub · Articles · Twitter