// Services, About, Insights pages const ServicesPage = ({ setRoute }) => { useLucide(); const [active, setActive] = React.useState(SITE_DATA.services[0].id); const current = SITE_DATA.services.find(s => s.id === active); return (
Services

Full-service, end to end.

Buying, selling, presales, investment, rental management, and relocation — supported by the same network of trades, lawyers, and mortgage brokers I've worked with for twenty years.

{SITE_DATA.services.map(s => ( ))}
{/* Service detail */}
{current.title} services

{current.tagline}

{current.blurb}

{SITE_DATA.agent.phone}
What's included
    {current.details.map((d, i) =>
  • {d}
  • )}
{/* Process */}
How we work together

Four steps. No surprises.

{[ { n: '01', title: 'Conversation', body: 'Coffee, a phone call, or video. We talk about what you actually want — and what the market is doing about it.' }, { n: '02', title: 'Strategy', body: 'Buying: targeted search, financing prep. Selling: pricing, prep, photography, marketing plan.' }, { n: '03', title: 'Execution', body: 'Showings, offers, negotiations, subject removal. I handle the moving parts; you make the decisions.' }, { n: '04', title: 'Closing & beyond', body: 'Possession-day walk-through, trades introductions, and a check-in six months in. The relationship doesn\'t end at keys.' }, ].map(s => (
{s.n}

{s.title}

{s.body}

))}
); }; window.ServicesPage = ServicesPage; const AboutPage = ({ setRoute }) => { useLucide(); return (
About

Steffanie Ting.

Vancouver Real Estate Specialist. Twenty years of guiding buyers, sellers, and investors across Metro Vancouver.

Steffanie Ting
A note from Steffanie

I love working with people. I love working in real estate.

{SITE_DATA.agent.bio}

I've spent my career in this city — first as a buyer's agent helping young couples find their first condo, then as a listing specialist for downtown developments, and now as a generalist who works the full Metro Vancouver area. The constant is that I treat every client's money like it's my own. The number of referrals I get from past clients is the metric I'm proudest of.

If you've made it this far, send me a note and tell me what you're looking for.

— Steffanie
{/* Credentials */}
Credentials & recognition

The receipts.

{[ { title: 'Medallion Club', sub: '2019 – 2025', body: 'Top 10% Greater Vancouver REALTORS® by MLS® sales' }, { title: 'REBGV Member', sub: 'Since 2006', body: 'Real Estate Board of Greater Vancouver in good standing' }, { title: 'Magsen Realty Inc.', sub: 'Brokerage', body: 'Independent brokerage with offices across Metro Vancouver' }, { title: 'CREA Member', sub: 'REALTOR®', body: 'Canadian Real Estate Association — bound by the REALTOR® code of ethics' }, { title: 'Trilingual', sub: 'EN · 廣東話 · 普通话', body: 'Service in English, Cantonese, and Mandarin' }, { title: 'PREC', sub: 'Personal Real Estate Corp.', body: 'Steffanie Ting Personal Real Estate Corporation' }, ].map(c => (
{c.sub}

{c.title}

{c.body}

))}
{/* Testimonials grid */}
In their words

What clients say.

{SITE_DATA.testimonials.map((t, i) => (

{t.quote}

{t.author} {t.role}
))}

Let's have a coffee.

No commitment, no pitch. Just a conversation about your situation and how I'd think about it.

20
years.
); }; window.AboutPage = AboutPage; const InsightsPage = ({ showToast }) => { useLucide(); const [activeCategory, setActiveCategory] = React.useState('all'); const categories = ['all', ...new Set(SITE_DATA.insights.map(i => i.category))]; const filtered = activeCategory === 'all' ? SITE_DATA.insights : SITE_DATA.insights.filter(i => i.category === activeCategory); return (
Insights

Market notes & neighbourhood deep-dives.

Clear-eyed commentary from the inside of Metro Vancouver real estate. New posts about once a month — pull up a chair.

{categories.map(c => ( ))} {filtered.length} posts
{filtered.map(i => (
showToast(`Opening: ${i.title}`)} >
{i.title}
{i.category} · {new Date(i.date).toLocaleDateString('en-CA', { month: 'long', day: 'numeric', year: 'numeric' })} · {i.readTime} min read

{i.title}

{i.excerpt}

Read post
))}
); }; window.InsightsPage = InsightsPage; const Newsletter = ({ showToast }) => { const [email, setEmail] = React.useState(''); const [err, setErr] = React.useState(''); const submit = (e) => { e.preventDefault(); if (!email || !email.includes('@')) { setErr('Valid email please'); return; } setErr(''); showToast("You're on the list — first post arrives next month."); setEmail(''); }; return (
Monthly newsletter

Market signal, no noise.

One email a month with what I'm seeing in Metro Vancouver — market trends, a few off-market opportunities, and the one thing every reader asks me about.

setEmail(e.target.value)} style={{ flex: 1 }} /> {err &&
{err}
}
); }; window.Newsletter = Newsletter;