Vesting · Help
Help & User Guide
Everything you need to use Vesting effectively as a South African estate agent.
01
Getting Started
Vesting is a practice management app built for South African estate agents. All your leads, contacts, properties, inspections and diary entries are stored encrypted on your device — nothing is sent to any server.
First-time setup
- Open Vesting for the first time. You will be taken to the Settings page automatically.
- Choose a passphrase of at least 8 characters. Use something memorable but not obvious — this is the only key to your data.
- Confirm your passphrase and click Create Encrypted Workspace.
- Go to Settings → Agent Profile and enter your name, email and phone number. This auto-fills inspection reports and WhatsApp messages.
- You are ready to go. Start by adding your first lead or property.
Unlocking on subsequent visits
Vesting locks automatically when you close the browser tab. The next time you open the app, enter your passphrase on the unlock screen. Once unlocked, you can navigate freely within the same browser session without re-entering it.
App overview
Leads
Track buyers, renters and sellers. Set follow-up dates, log status changes and send WhatsApp messages in one tap.
Contacts
Your professional network — attorneys, contractors, colleagues and banks — with quick-call and WhatsApp actions.
Properties
Manage sale and rental listings with photos, mandate details, owner info and current status.
Inspections
Room-by-room entry, exit and new-listing inspection reports with photos, meter readings and digital signatures.
Diary
Connect your Google Calendar for a live view. Pre-fill events from your leads and open them directly in Google Calendar.
Settings
Manage your profile, change your passphrase, export CSV reports and create encrypted backups.
02
Security & Encryption
Vesting is built privacy-first. Every record is encrypted individually before being saved, using the same standard used by financial institutions.
How it works
- Algorithm
- AES-256-GCM — military-grade authenticated encryption. Each record gets a unique random IV.
- Key derivation
- PBKDF2 with SHA-256 and 310 000 iterations. Slow by design — makes brute-force attacks impractical.
- Key storage
- Never written to disk. Lives in browser memory only. When you close the tab, the key is gone.
- Passphrase storage
- Kept in sessionStorage only (tab-scoped), so page navigation works without re-entering it. Cleared on tab close.
- Salt
- A 32-byte random salt is generated on first setup and stored in the local database. Required to derive the key — unique per device.
- Data location
- IndexedDB on your device only. No cloud sync. No server. No analytics.
Session locking
You can manually lock your session at any time via Settings → Encryption → Lock Session. This immediately wipes the key from memory. You'll need your passphrase to unlock again.
The session also locks automatically when you close the browser tab or window.
Changing your passphrase
- First, create a Full Backup from Settings → Export Data. This is your safety net.
- Go to Settings → Encryption → Change Passphrase.
- Enter your current passphrase, then your new one (twice).
- Click Change Passphrase and confirm. Vesting will re-encrypt all your records with the new key — a progress bar shows the status.
- Once complete, your session is updated automatically.
03
Dashboard
The Dashboard is your daily overview. It loads as soon as you unlock Vesting and shows everything that needs your attention today.
What you'll see
- Greeting — personalised with your name and time of day.
- Stat cards — total counts for leads, contacts and properties at a glance.
- Follow-ups due — all leads whose follow-up date is today or overdue, sorted by urgency. Overdue items appear in red.
- Recent leads — your five most recently added leads with status badges.
- Quick actions — buttons to add a new lead, property or open the diary.
Follow-up indicators
- Overdue
- Follow-up date has passed. Contact this lead as soon as possible.
- Today
- Follow-up is due today.
- Upcoming
- Scheduled for a future date — no urgent action needed.
04
Leads
Leads are buyers, renters or sellers in your pipeline. Every prospect you interact with should have a lead record so nothing falls through the cracks.
Adding a lead
- Tap + New Lead from the Leads page or the Dashboard.
- Enter the lead's full name (required), phone, email and preferred contact method.
- Set the Property Type (sale, rental or both), area preferences and budget.
- Choose a Source — where did this lead come from? (walk-in, Property24, referral, etc.)
- Set a Follow-up Date so it appears on the Dashboard and Diary.
- Add any notes, then click Save Lead.
Lead statuses
- New Lead
- Just added. Not yet qualified.
- Qualified
- You've spoken to them and confirmed they are a genuine prospect.
- Viewing Scheduled
- A property viewing has been booked.
- Offer Pending
- An offer to purchase or lease has been made.
- Closed
- Deal concluded successfully.
- Lost
- The lead has gone cold or chosen another agent.
WhatsApp integration
Each lead with a phone number has a WA button. Tapping it opens WhatsApp with a pre-filled message that includes your name (from your agent profile), the lead's name, and a professional greeting. Edit it before sending if needed.
Filtering & searching
Use the filter bar at the top of the Leads page to narrow results by status, property type or source. The search box matches against name, phone and email simultaneously. Filters combine — for example, show only Qualified leads from Property24.
Additional lead fields
- Bedrooms / Bathrooms — minimum requirements for the property they're looking for.
- Employment / Credit Score — useful for rental qualification.
- Family Size — helps match properties with appropriate space.
- Date of Birth / Anniversary — relationship touchpoints for follow-up calls.
- Other Requirements — pet-friendly, garden, ground floor, etc.
- Last Contact — stamp the date of your most recent interaction.
05
Contacts
Contacts are the professionals you work with — not your clients. Think attorneys, bond originators, contractors, developers and colleagues.
Adding a contact
- Tap + New Contact from the Contacts page.
- Enter the person's full name (required), phone, email and company/practice name.
- Choose a Category — Attorney, Contractor, Colleague, Developer, Bank, or Other.
- Add a Relationship Description — a one-line reminder of who they are and how you work together.
- Set Last Contacted so you can see at a glance who you haven't spoken to in a while.
- Add any freeform notes, then save.
Quick actions
When editing an existing contact, quick-action buttons appear below the form:
- 📞 Call — opens your phone dialler with the number pre-filled.
- WhatsApp — opens WhatsApp with a direct message to this contact.
On the Contacts list page, Call and WA buttons appear inline for each contact with a phone number.
Categories
- Attorney
- Bond and transfer attorneys for registration and transfer matters.
- Contractor
- Plumbers, electricians, builders — referrals for your clients.
- Colleague
- Fellow agents and support staff in your agency or network.
- Developer
- Property developers with new developments in your area.
- Bank
- Bank branch managers, home loan consultants and bond originators.
- Other
- Anyone who doesn't fit the above — valuers, surveyors, etc.
06
Properties
Properties are the listings you manage — for sale, for rent, or both. Each property card holds all the details you need on-site, including photos that are stored locally on your device.
Adding a property
- Tap + New Property from the Properties page.
- Enter the street address, suburb, city and province.
- Set the Listing Type (for sale, for rent, or both) and current Status.
- Enter the Mandate Type (sole or open) and mandate expiry date.
- Fill in the price, levies, rates and deposit where applicable.
- Add property specs: bedrooms, bathrooms, garages, floor size and erf size.
- Enter the Owner details — name, phone and email.
- Add showing instructions, assigned agent, a public description and internal notes.
- Upload photos using the photo uploader — these are stored encrypted on your device.
Property statuses
- Active
- Currently listed and available.
- Pending
- Under offer or application — not yet concluded.
- Sold
- Transfer completed.
- Rented
- Lease signed and tenant placed.
- Off-market
- Withdrawn, expired mandate, or temporarily not listed.
Photos
Photos uploaded to a property are compressed and stored in the encrypted local database. The first photo appears as the card thumbnail on the Properties grid. All photos are removed when you delete a property.
Starting an inspection from a property
On the Properties list, each card has an Inspect button that opens a new inspection form pre-filled with that property's address. This is the fastest way to start an entry or exit inspection.
07
Inspections
Inspection reports document the condition of a property at a specific point in time. Vesting generates a professional PDF you can email to landlords, tenants and your agency.
Inspection types
- Entry Inspection
- Conducted when a tenant moves in. Documents the condition of the property before occupation.
- Exit Inspection
- Conducted when a tenant vacates. Compared against the entry inspection to determine any damage or liability.
- New Listing
- A general condition report when you take on a new mandate. Useful for seller expectations and buyer disclosure.
Completing an inspection
- Open the inspection form and fill in the property address (or select from your properties), inspection type, date and agent name.
- Add the tenant/occupant name, their phone number, and the names of any witnesses.
- Work through the Room-by-Room Checklist — rate each room as Good, Fair or Poor, add notes about any damage or repairs needed, and upload photos directly from your camera or gallery.
- Record Meter Readings — electricity, water and gas — and photograph the meter faces.
- Add any General Notes such as keys handed over, remote controls, or special conditions.
- Collect digital signatures — agent, tenant and up to two witnesses can sign on-screen using a stylus or finger.
- Click Save as Draft to continue later, or Complete Inspection when everything is done.
- Generate the PDF and email or share it directly.
Rooms covered
- Lounge / Living Room
- Kitchen
- Main Bedroom
- Bedroom 2 & 3
- Bathroom / En-suite
- Garage / Parking
- Garden / Outdoor
- Exterior / Building
Generating a PDF
Once an inspection is marked Completed, a PDF button appears on the Inspections list. Tapping it opens the inspection form in PDF-generation mode. The PDF includes all room notes, condition ratings, meter readings, the photo summary and all signatures.
Inspection statuses
- Draft
- In progress — you can still edit all fields.
- Completed
- Signed off. PDF can be generated.
- PDF Generated
- A PDF has been created for this inspection.
08
Diary
The Diary page brings your schedule and follow-ups together. It embeds your Google Calendar on the left and shows today's lead follow-ups on the right.
Connecting Google Calendar
- On the Diary page, enter your Gmail address in the Connect your Google Calendar box.
- Click Connect. Your calendar appears in read-only view, set to Johannesburg time.
- Switch between Month, Week, Day and Agenda views using the buttons above the calendar.
- Click ↻ Refresh after saving new events in Google Calendar to see them here.
- To disconnect, click the Disconnect link next to your email address.
Adding events to Google Calendar
The Add to Google Calendar panel on the right pre-fills a new event for you:
- Select an Event Type (Viewing, Follow-up, Inspection, Meeting, Other).
- Optionally select a Lead from the dropdown — this auto-fills the event title, notes, and follow-up date from the lead's record.
- Edit the title, date, start/end times and location as needed.
- Click Open in Google Calendar ↗ — a new Google Calendar tab opens with everything pre-filled.
- Click Save in Google Calendar to confirm the event, then refresh the Diary.
Follow-ups Today sidebar
The Follow-ups Today panel lists all leads with a follow-up date of today or earlier. Overdue items are highlighted. Each item has a WA button to open WhatsApp instantly for that lead.
09
Export & Backup
Vesting data lives on your device. Export and backup regularly to protect against device loss, browser data clearing, or accidental deletion.
CSV exports
CSV files open in Excel, Numbers or Google Sheets. Available exports:
- Leads (CSV) — all lead records including status, follow-up dates, area preferences, budget and notes.
- Contacts (CSV) — all contact records including category, company and relationship notes.
- Properties (CSV) — all property records including mandate details, specs, owner info and pricing.
Full Backup (JSON)
The full backup exports all your data — including photos and inspection records — as an encrypted JSON file. The data is already encrypted in the database; the backup preserves that encryption.
Restoring from backup
- Go to Settings → Export Data → Restore from Backup.
- Confirm the merge warning — existing records are kept; backup records are merged in.
- Select your
.jsonbackup file. - Reload the app to see the restored data.
Backup schedule recommendation
- Take a full backup once a week at minimum.
- Always back up before changing your passphrase.
- Back up before clearing browser data or switching devices.
- Store backups in a secure location — Google Drive, iCloud or an encrypted USB.
10
Offline & Install
Vesting is a Progressive Web App (PWA). It works fully offline and can be installed on any device like a native app — no app store required.
Installing on Android (Chrome)
- Open Vesting in Chrome.
- Tap the three-dot menu (⋮) in the top-right corner.
- Tap Add to Home screen.
- Confirm by tapping Add. Vesting now appears on your home screen.
Installing on iPhone / iPad (Safari)
- Open Vesting in Safari.
- Tap the Share button (rectangle with an arrow pointing up).
- Scroll down and tap Add to Home Screen.
- Tap Add in the top-right corner.
Installing on desktop (Chrome / Edge)
- Open Vesting in Chrome or Edge.
- Look for the install icon (⊕) in the address bar, or go to the browser menu → Install Vesting.
- Click Install. Vesting opens in its own window.
How offline works
The first time you open Vesting with an internet connection, the app shell (all HTML, CSS and JavaScript files) is cached on your device by the service worker. After that, Vesting loads instantly from cache — even with no signal.
All data is stored in IndexedDB on the device. You can add leads, take photos in inspections, and complete reports with no connectivity. When you return online, no sync is needed because there is no server to sync to.
Shortcuts
When installed as a PWA, Vesting supports home-screen shortcuts. Long-press the Vesting icon (Android) or 3D Touch / Haptic Touch (iOS) to get quick shortcuts to:
- New Lead
- New Property
- Diary
11
POPIA Compliance
The Protection of Personal Information Act (POPIA) requires estate agents to handle client data responsibly. Vesting is designed with POPIA principles built in.
How Vesting supports POPIA
- Data minimisation — Vesting only collects the fields relevant to your practice. No tracking, advertising or telemetry.
- Purpose limitation — data entered is for your professional use only. It is never shared with third parties.
- Security — AES-256-GCM encryption with PBKDF2 key derivation ensures data is protected at rest.
- Storage limitation — data stays on your device. You control what is exported and where it goes.
- Data subject access — you can export any individual's record as CSV at any time.
- Right to erasure — delete any lead, contact, property or inspection at any time.
Your responsibilities
- Only collect personal information you need for the transaction or relationship.
- Inform clients that you record their details in a secure app on your device.
- When exporting CSVs, ensure the file is stored securely and not shared unnecessarily.
- Delete records of clients you no longer work with once no longer needed.
- Keep your device secured with a PIN, fingerprint or face lock.
12
Troubleshooting
I forgot my passphrase
There is no way to recover your passphrase. This is a deliberate security design — if Vesting could recover it, so could an attacker. Your options are:
- If you have a recent backup, clear the app's browser storage (browser Settings → Site Data → Vesting), set up fresh, then restore your backup using the correct passphrase from the time of backup.
- If you have no backup and cannot remember the passphrase, the data is not recoverable. Start fresh and use a password manager or written note to store your new passphrase safely.
The app asks me to unlock every time I navigate
This usually means your browser's sessionStorage is being cleared between pages, which can happen in private/incognito mode. Use Vesting in a regular browser tab, or install it as a PWA (it gets its own persistent storage context).
Photos are not showing on Property cards
Photos load asynchronously after the cards render. Give it a second or two — they should appear. If they don't, the photo may have failed to save. Try re-uploading the photo from the property's Edit screen.
The Google Calendar isn't showing
The calendar embed requires an internet connection and a valid Gmail address. If it shows a blank frame:
- Confirm you are online.
- Check that the Gmail address is the same one logged into your Google Calendar.
- Your calendar privacy settings in Google must allow embedding. In Google Calendar → Settings → your calendar → Access permissions, enable Make available to public or at minimum ensure it's not set to private-only.
- Try disconnecting and reconnecting your calendar in the Diary page.
The PDF is blank or missing photos
PDF generation reads photos from your local database. Make sure you are using a supported browser (Chrome or Edge are recommended). Safari on iOS may have limitations with certain PDF export features. If photos are missing, ensure they were saved to the inspection before generating the PDF.
The app won't install on my device
PWA installation requires HTTPS. If you are accessing Vesting via a local server or HTTP, the install prompt won't appear. Ensure the app is hosted on a domain with a valid SSL certificate.
I see "Database not initialised" errors
This can occur if IndexedDB is blocked by your browser settings (some strict privacy configurations disable it). Check your browser's site settings and ensure that cookies and site data are allowed for Vesting's domain.
Phone numbers show as invalid
Vesting validates South African phone numbers. Acceptable formats include:
082 765 4321+27 82 765 43210827654321
International numbers outside South Africa may not pass validation. Use the notes field to record international contact numbers if needed.
Restore from backup did nothing
Confirm the file is a valid Vesting backup — it should have a _meta and data key at the root of the JSON. Files exported from other apps or older unsupported versions may be rejected. After a restore, reload the page to see the updated data.
Vesting
Your practice. Your clients. Secured.
✦ Built by MD Works · Durban, South Africa ✦
v1.0.0