Release notes

Changelog

Every meaningful change to SoShiny, dated and categorized.

July 2026

New Jul 16, 2026

Association Health — a report dashboard for the board

A new report under Operations answers three questions at a glance: how complete your member profiles are, who you can actually reach, and who has engaged with the portal. Vitals up top, a chart of where members stall on their setup checklist, an email-reachability breakdown, text opt-in and sign-in meters — and a worst-first worklist of every member below 100%, one click from their profile. Payments and financials will join this report as those features roll out.

Fixed Jul 14, 2026

Tide times now come from the ocean, not the river

Beachfront communities were getting tide predictions from the nearest gauge even when it sat on a river — and river tides can run hours off the surf. The tide card now prefers open-coast NOAA stations (Bellair now reads the Daytona Beach Shores ocean pier), and the sunrise & sunset card names its city, just like the forecast.

New Jul 14, 2026

Export the directory to CSV

Board members and managers can download exactly what the directory filters show — search, role, owners-only, and contact-gap views included — as a spreadsheet with names, units, roles, emails, phones, mailing addresses, and last login. One click in the filter toolbar.

Improved Jul 14, 2026

Mail Letters: see who can't receive mail, and choose unit delivery

The cost preview now links to a plain explanation of exactly who a mailing will skip and why (for example, a member whose mailing address is outside the US). On any member's profile the board can switch their letters to deliver to their unit at the community instead — reversible any time. The page also shows the community's real return address, and balance top-ups now offer $250 and custom amounts with a click-to-add-funds shortcut.

Improved Jul 14, 2026

Word documents accepted as violation evidence

Violation files now accept Word documents (.doc/.docx) alongside photos and PDFs — handy for attorney letters and typed notices. Every other document upload already supported Word.

New Jul 14, 2026

Choose your postage: First-Class or Standard

Every mailing now offers two speeds: ✉️ First-Class for time-sensitive notices (arrives in about 3–5 business days) or 🐢 Standard for newsletters and non-urgent mail (cheaper, arrives in about 1–2 weeks). The compose page shows the per-letter price for each and recalculates the total live as you switch.

Improved Jul 14, 2026

Mail Letters: clear, simple postage

Printed letters now show one clear postage line on the compose page, and the cost preview spells out the whole math before you send: how many letters, the current per-letter price, the exact total, and what your balance will be afterward. The board president can send letters alongside board admins and the property manager.

New Jul 13, 2026

Renter's insurance & lease tracking

Every rented unit can now carry its two must-have documents: the renter's insurance policy and the lease agreement. Upload them on the unit page under Documents, and the board dashboard shows exactly which rented units are missing either one — click the alert to see the list.

New Jul 13, 2026

Send a letter or text to one member

Board admins and managers can now reach a single member by paper or text: 📮 Letter and 💬 Text buttons sit right on the member's directory profile, next to Email. The composer opens locked to that one person with the exact cost shown. Sent letters also now include a "View the letter that was sent" panel, so the paper trail shows what went out, to whom, and what it cost.

New Jul 13, 2026

One letter per unit — primary owner audience

Letters and texts gain a "primary owner per unit" audience: co-owned units get ONE letter instead of two, cutting postage on a full mailing by about a third. The unit's primary owner is chosen automatically.

Improved Jul 13, 2026

The profile checklist now asks the board, too

Board members and property managers get the same Finish Setup experience residents do — the completion card on the dashboard, the checklist, and the celebrations. The card also got a lot harder to miss: a big red-to-green percentage, the next few items by name, and a full-size Finish setup button.

New Jul 12, 2026

Nine new announcement types

Announcements now speak your community's language: ✨ What's New, 🗣️ Have You Heard?, 🔍 Lost & Found, 🚔 Safety & Security, 💧 Utility & Outages, 🅿️ Parking & Towing, 🏢 Office Notice, 🏛️ Board & Governance, and 🎉 Celebration — each with its own badge color on the dashboard, the public page, and the lobby TV.

Improved Jul 12, 2026

Recording a member's departure, respectfully

When someone is no longer in the community, the board can now record why — moved out, sold, transferred ownership, or passed away — and when, even if it happened a while ago. Marking a passing immediately stops every email, text, and letter to them, notes the family or estate contact, and shows the unit as "Estate of…" until ownership is resolved. Past departures can be corrected or undone from the unit's history.

New Jul 11, 2026

Lobby TV: forecast, tides, sunrise, trivia, history — and weather alerts

The lobby TV learned a lot of new tricks: a 5-day forecast for your city, today's tide times from the nearest NOAA station, a sunrise & sunset card with the UV index, a Trivia-of-the-Hour question (answer revealed the next hour), and This Day in History. Active National Weather Service alerts for your area appear automatically as a red alert card at the front of the rotation. Dad Jokes and Quotes to Make You Think now bring fresh entries every hour, and the whole screen deals its cards in a new order on every refresh.

Improved Jul 11, 2026

Finish Setup: friendly popups for everything

Every item on the setup checklist now opens a simple popup — change your address, cell, email, photo, or emergency contact without ever leaving the page, and allow text alerts right there too. Completing or skipping an item earns a little confetti, and reaching 100% opens a congratulations window with the welcome video and a straight path to your dashboard.

Improved Jul 11, 2026

Owners: the Lobby TV, from your couch

Owners now have a Lobby TV link in their sidebar under Community — the same live screen that plays in the lobby, in a new browser tab.

Fixed Jul 11, 2026

Search takes you to the person, not the whole directory

Clicking a member in search results now lands on that person — managers get their profile, residents get the directory filtered to just them. The directory search also understands full names typed together, like "Karen Swenson."

New Jul 4, 2026

Finish setup — a friendly checklist for new residents

New residents now see a gentle "Profile completion" bar on their dashboard with a Finish setup link. The setup page walks through the essentials — confirm your mailing address, cell, and email; allow text alerts; add a photo, vehicle, guest, service animal, and emergency contact — each with a one-tap action. Anything that doesn't apply can be skipped with a reason ("I don't have a vehicle") and counts as answered. Items complete automatically when you do the real thing anywhere in the portal, and the bar disappears at 100%.

New Jul 4, 2026

Communications balance + smarter text sending

Texts and (soon) printed letters are now paid from a prepaid communications balance — top up $25, $50, or $100 by card right from Text Members, and every send shows its cost up front (5¢ per message segment per recipient). Email broadcasts stay free. Text sending also got guardrails: a live cost preview as you type, quiet hours (9pm–8am local, with an emergency override), a monthly sending limit, and a warning if you try to send the same text twice in a week.

New Jul 4, 2026

Text alerts are now live

Community text messaging is live. Boards and managers can send SMS alerts — meeting and event reminders, maintenance and amenity notices, and urgent building alerts — to members who have opted in, right from Text Members. Members opt in under My Profile → Text alerts, and can reply STOP at any time to unsubscribe. Fully A2P 10DLC-registered and TCPA-compliant.

Design Jul 3, 2026

A simpler member dashboard

The resident dashboard is cleaner: the count tiles for Announcements, Events, and Marketplace stay at the top and link out, and the long duplicate listings below them are gone. Your unit card also carries quick actions right on the detail line.

Improved Jul 3, 2026

Everything about you now lives in My Profile

No more hunting through two places to edit your info. Your timezone, text-alert opt-in, directory privacy, and password have moved from Settings into My Profile, alongside your name, contact details, travel, guests, and vehicles. Settings is now just for community configuration (board and managers). There's a My Profile link at the top of the sidebar for everyone.

New Jul 3, 2026

Resident quick actions: register a vehicle or guest, and mark yourself away

Right from your unit card on the dashboard, you can now register a vehicle, register a guest, or tap "I'll be away" — each opens a quick pop-up form, no page-hopping. When you're away the button flips to "I've returned" so one tap marks you home. Your unit shows an "away" ribbon and a "guests staying with you" ribbon at a glance, and My Profile shows your current away/returned status plus everyone you've got visiting.

New Jul 3, 2026

See who has guests registered

Board members and managers get a new Registered Guests page (under Operations) that rolls up every guest a resident has registered — guest name and party size, unit, visit dates, vehicle, and who registered them. Filter by Current & upcoming, Past, or All, search by guest or unit, and tap any row to open the full registration. Requested by a community through the in-app suggestion box.

New Jul 3, 2026

Lease renewal reminders for the board

When a rental lease is coming up for review, the board's daily summary now flags it — "Unit 421 — lease ends in 30 days" — with a link straight to the unit's lease record. Reminders arrive at 60, 30, 14, 7, and 1 days before the end date (and on the day itself), so nothing slips through without becoming a daily nag. Requested by a community through the in-app suggestion box.

Improved Jul 3, 2026

Board agenda: rich-text notes + link the minutes to approve

Agenda item Details and Outcome fields are now full rich-text editors, so you can bold, bullet, and format resolutions the way they'll read in the record. Any agenda item — especially the standard “Approve Minutes from Last Meeting” — can now link directly to a set of meeting minutes, adding a one-click “View & approve minutes” button right on the agenda.

Improved Jul 3, 2026

Multi-day events show their full date range

Events that span more than one day now display their full date range (e.g. “Jul 3 – Jul 6”) everywhere they appear — the dashboard, the events page, and the lobby TV. We also fixed a bug where a multi-day event that was already under way would disappear from those lists before it had actually ended.

New Jul 3, 2026

See what’s assigned to you

Staff and managers get a focused view of everything assigned to them — maintenance tasks, work orders, and to-dos — in one place, so nobody has to dig through the whole portal to find their own work.

New Jul 3, 2026

Quieter, smarter board emails

The board inbox no longer fills up with one email per event. New activity — join requests, amenity bookings, property listings, feedback, forms, architectural requests, and marketplace posts — now rolls into a single end-of-day summary for the board, while the property manager still gets the operational ones right away. Overdue maintenance is a single 8am rollup instead of a message per task, and the daily summary also counts what was completed that day plus any new announcements, events, and items for sale. Choose how your community is notified under Settings → Board notifications (three modes; a daily summary for the board is the default).

New Jul 1, 2026

Bulk-import a maintenance schedule from CSV

The PM Scheduler now has an “Import CSV” button with a downloadable template. Upload one preventive-maintenance task per row — title, frequency, start date, category, location, and assignee — and each task is created with its first occurrence and email reminders. It matches assignees by name or email, creates any location that doesn't exist yet, and shows a per-row report of what imported.

Improved Jul 1, 2026

Sortable directory + refreshed member profile

Click any column header in the resident directory (Name, Unit, Role, Owner/Renter, Email, Phone, Last login) to sort. And the member profile page was rebuilt to match the unit page — a single action bar (Edit, Log, Documents, Email, Print, Move out) with quick-add pop-ups, and Contact info / Contact log / Documents as tidy collapsible sections.

Improved Jul 1, 2026

Unit page: quick-add occupants + typed notes

Adding an occupant now uses a fast type-ahead search — start typing a name or email, and if the person isn't found you can add them as a new member in the same step. Unit notes can also be tagged by kind (call, text, email, in-person), matching the way the directory logs contact.

Security Jul 1, 2026

Security hardening

A full source security review led to hardening across access control, file uploads, and public endpoints — tighter role-assignment rules, safer image handling, and stricter scoping on a few public URLs. No action needed on your end.

June 2026

New Jun 29, 2026

Community directory goes national — New York, Texas & Arizona

The public community directory now spans four states. Browse roughly 50,000 registered community associations — condos, HOAs, mobile-home parks, marinas, and lake communities — at /communities, with new state landings for New York, Texas, and Arizona alongside Florida. Each listing links to the statutes that govern it.

Design Jun 29, 2026

New Association Community Directory hub

/communities is now a national "Find or Add Your community association" hub with a quick state switcher, and Florida gets its own landing at /communities/florida. Florida's county and category pages keep their existing web addresses.

Improved Jun 29, 2026

Faster unit page — one action bar with quick-add pop-ups

The unit page now leads with a single action bar — Edit, Parking, Forms, Documents, Notes, Violations, Agent, Lease, and Photos — each showing a live count and opening a pop-up to add a new item. The sections below are tidied into collapsible panels that stay closed when empty.

Improved Jun 28, 2026

Mobile dashboard upgrades + color themes

Big polish pass for phones: the notification bell now shows a live count and opens a dropdown of what needs your attention; global search is now reachable from a magnifying-glass in the top bar; and you can change the look — light/dark mode plus 8 color themes (Sunset, Slate, Marina, Garden, Forest, Plum, Crimson, Emerald) — right from the Appearance icon on any device. Sign out and Help now live in the left menu (and are searchable) so they’re out of the way of the buttons you use most.

New Jun 28, 2026

RSS feeds for the blog & features

Follow SoShiny in any feed reader: the blog (soshiny.com/blog/feed) and the feature library (soshiny.com/features/feed) now publish standard RSS feeds, with auto-discovery built into the site.

Improved Jun 27, 2026

Glossary now inside the dashboard + global search

The HOA Glossary is now built into the portal, not just the public site. Find it under Reference → Glossary (every role can see it), search it A–Z or by topic, and — best of all — glossary terms now show up in the dashboard search box. Type “quorum” or “reserve study” anywhere and the definition is one click away.

New Jun 27, 2026

New: HOA Glossary

A plain-English glossary of 49 HOA and community-association terms — assessments, CC&Rs, reserves, quorum, lien, fiduciary duty and more — grouped into six topics and searchable A–Z. Definitions cross-link to related terms, and every term has its own shareable link. Find it under Resources → HOA Glossary.

Improved Jun 27, 2026

Help shows only what applies to you

The in-app Help library now filters to your role: renters see help for renter features, owners see owner features, and board members & managers see everything. No more scrolling past board-only topics if you’re a resident.

Improved Jun 27, 2026

Directory contact-gap buttons + accurate unit note counts

The Directory now has quick “📧 No email · N” and “☎️ No phone · N” filter buttons with live counts. On a unit, the per-occupant note badge now reflects the member’s full contact log (notes + calls/texts/emails) so it matches the directory, and clicking Edit on an occupant scrolls the edit panel into view and highlights it (that’s where the “Primary on title” checkbox sets the primary owner). The member contact-log “add” now opens its own focused page instead of an inline form.

Improved Jun 27, 2026

Directory: Cell vs. Other phone

A member’s first phone number is now labeled “Cell” (and noted as the textable number used for SMS alerts), and the second is “Other” (landline/work). The Cell number is exactly what text broadcasts send to, so you can tell at a glance which contacts you can reach by text.

Improved Jun 27, 2026

Dashboard flags for missing phone numbers

Alongside the existing email-health chips, the manager dashboard now shows “Contacts with no phone” and “No owner phone: N units,” each linking to the directory filtered to exactly those people/units — so you can see at a glance who you can’t reach by phone, not just by email.

Improved Jun 26, 2026

Violations: search, sort, archive + mobile fixes

The Violations list gets a search box (by unit, resident, or type) and sorting (newest, oldest, by unit, by status). You can now archive a violation — archived ones drop out of every list (including “All”) and live behind a new “🗄 Archived” filter, with a Restore button. On phones the list now shows the unit number, and on a violation’s page the Update-status control moved to the top.

Design Jun 26, 2026

Big mobile cleanup — everything fits the phone now

Swept the rest of the portal for phone-friendliness. Tables that used to run off the right edge — Work Orders, Violations, Vehicles, Parking, Insurance, Employees, Email Members, Forms, Committees, Area Attractions, Activity, Notifications, the PM Schedule and Tasks — now show just the key columns on a phone (tap a row for the full detail). Board Meetings, Events and My Work no longer squeeze long titles into one word per line.

Improved Jun 26, 2026

Clearer PM completions + a Done list

Marking a maintenance task complete now opens a clear prompt: confirm it’s done, then choose whether to schedule the next one and on what date (pre-filled, editable) — instead of silently rescheduling. The PM Schedule also defaults to the next two weeks, adds a date-range filter, and a new “✓ Done” tab that logs every completed task (what, when, by whom, and notes).

New Jun 26, 2026

Track leases and renewals on rented units

Each unit now has a Lease section where the board records the lease term (start/end + monthly rent) and logs renewal decisions (approved or denied, with notes) — keeping a full history. The Units list flags rented units whose lease is expiring within 60 days (“lease ends Mmm d”) or already expired, so renewals don’t slip through the cracks.

Improved Jun 26, 2026

Units: filter to renters + spot missing owner contact info

The Units page has a “🏠 Renters only” filter to show just the units with a tenant, and each row now flags “✉ no email” / “☎ no phone” when a unit’s owners have no email or phone on file — so the board can see at a glance which units they can’t reach. (Also: composing or editing a document now hides the full document list underneath, showing only what you’re working on.)

New Jun 26, 2026

Sign documents you write in-app

You can now request signatures on a document you compose right in SoShiny — not just uploaded PDFs. When composing, add required signers (leave it empty if no signature is needed). Each signer gets a “read & sign” prompt at the top of their dashboard, signs with a saved signature, by drawing, or by typing, and the signatures appear in a block at the bottom of the document. The documents list is also now mobile-friendly: tap any row to open the document, where you can read, edit, sign and print.

Improved Jun 26, 2026

Search and filter your Tasks

The Tasks page now has a search box (matches the task title, notes, or the assignee’s name) and an “Assigned to” dropdown so managers can quickly narrow a long list down to one person, a group, or whatever they’re looking for. Search sticks as you switch between the Open/Mine/Done tabs.

Design Jun 25, 2026

More tables fit on mobile

Continuing the mobile cleanup: the Units and Concerns/Feedback lists now show just the key columns on phones (tap a row for the rest), so they fit the screen instead of running off the edge.

Fixed Jun 25, 2026

Community landing page hides expired announcements

The public community page (your bellaircondos.com landing) was showing every announcement including expired ones. It now shows only currently-active announcements, matching the dashboard and lobby TV.

Improved Jun 25, 2026

Notes on deactivated members

You can now open a deactivated member from Directory → Deactivated (their name links to the profile, plus a Notes button) to read and add to their contact log — handy for keeping a record on former owners or renters.

Fixed Jun 25, 2026

Member notes and contact log are now one

Notes added from the directory (the 📋 badge) and entries in a member’s Contact log were stored separately and didn’t show together. They’re now merged into a single timeline on the member’s profile, and the directory note count reflects both. The 📋 badge now opens the member’s Contact log.

Fixed Jun 25, 2026

Dashboard hides expired announcements

The dashboard was listing announcements that had already expired (and the count tile included them). It now shows only currently-active announcements — published and not past their expiry — matching the Announcements page, including the resident view and the emergency banner.

Improved Jun 25, 2026

At-a-glance tiles for residents

Owners and renters now see three quick-count tiles at the top of their dashboard — Announcements, Upcoming events, and Marketplace — each showing the current count, a short description of what it is, and a tap-through to the full page.

Design Jun 25, 2026

Cleaner dashboard on mobile

Tightened the home dashboard for phones: removed the doubled-up header (the notification bell no longer overlaps the logo), stat tiles now fit the screen instead of running off the edge, the status chips are more compact, and the greeting takes less room so your community info shows sooner. A notifications bell now lives in the mobile top bar.

New Jun 25, 2026

Install the portal as an app (PWA)

SoShiny is now a Progressive Web App — residents and board members can add it to their phone or computer home screen and open it like a native app (full-screen, no browser bar). On a community’s own custom domain it installs under that community’s name. It also shows a friendly offline screen when the connection drops. On iPhone: Share → Add to Home Screen. On Android/Chrome: the Install prompt or menu → Install.

New Jun 25, 2026

Per-member contact log (CRM-style)

Each member profile now has a Contact log to track every interaction like a CRM: log a call, text, or email as inbound or outbound, or jot a general note. Entries show as a timeline with who logged them and when. Board/manager-only. Great for keeping a running history of communication with an owner or renter.

New Jun 25, 2026

Attach documents to a member

From a member’s profile in the Directory you can now upload documents (PDF, images, Word/Excel, text) that stay attached to that person — leases, agreements, correspondence, IDs. They’re board/manager-only, listed on the member’s profile with quick view and remove, and stored securely outside the public web.

New Jun 25, 2026

Attach evidence to a violation

You can now attach photos, screenshots, and documents (images or PDF) to a violation and keep them with the case as you work toward resolution. They show as a thumbnail grid on the violation, open in a new tab, and can be removed. Access is board/manager-only and files are stored securely outside the public web.

New Jun 25, 2026

Email a violation notice to the owner

Each issued violation notice now has an “Email to owner” button — a genuine send step alongside print. It emails the notice (branded as your community, with the signer’s name and office) to the resident named on the violation and the unit’s owner(s) of record, real email addresses only. The notice shows an “Emailed” badge once sent, and you can resend. If no one has an email on file, it tells you to print and mail instead.

Improved Jun 25, 2026

Choose the signer + apply a digital signature on violation notices

When issuing a violation notice you can now choose who signs it (any board member or manager) instead of it defaulting to whoever filled it out, and apply that person’s saved digital signature so it prints on the letter. If they have no saved signature, a blank signature line prints for a wet signature. The notice footer now reads “issued via the [your community] portal.”

Improved Jun 25, 2026

Edit an issued violation notice + rich-text body

The violation notice body is now a rich-text editor (bold, headings, lists, links) and you can edit a notice after issuing it — each issued notice has an Edit button. Issuing saves the notice only; you print or email it as a separate step.

New Jun 25, 2026

Send a suggestion or bug report

There is now a lightbulb button in the top bar of every dashboard page to send a suggestion or report a bug directly to the SoShiny software team (not your board). It goes straight to our queue with the page you were on, so we can act on it fast.

Improved Jun 25, 2026

Task completion: add a note, a photo, and a follow-up

When you mark a To-Do task done, a quick window now lets you add a comment about what you did, attach a photo, and — if needed — create a follow-up task in one step. The note and photos show on the task afterward.

Improved Jun 25, 2026

Assign tasks to a group or convert to a work order

To-Do tasks can now be assigned to a group — Any board member, Any manager, or Board Meeting — not just one person, and they show on the right people’s lists. A task can also be converted into a Work Order in one click when it turns into a real maintenance job.

Improved Jun 25, 2026

Unit occupancy history

When an owner or renter leaves, “Move out” now keeps them in the unit’s history with a date range instead of erasing the record. Each unit shows its past occupants, so you can see who lived there and when.

Improved Jun 25, 2026

File a violation from the unit page

The unit page has a “File a violation” button that opens the violation form with the unit and its owner already filled in.

New Jun 25, 2026

Board-meeting activity report

A new Activity report lets you pick a date range (this week, last week, this month, or custom) and print a clean summary of what happened in your community — perfect for the board packet. Routine sign-ins are left out by default.

Improved Jun 25, 2026

Printable member card with more detail

The directory member view is now a full-width card with Email, Print, and Edit right on it, plus more details when available (full mailing address, rental agent, text-alert status). You can print a member’s card for your records.

Improved Jun 25, 2026

To Do Tasks: detail view, sharing & a Done report

Click any task to open a full detail view you can print, email to your team or board, or text (once SMS is enabled). There is also a new Done report — completed tasks for this week, last week, this month, a custom range — that you can print or email. Plus: In progress and Blocked filters on the task list, your open tasks now appear in the dashboard “needs attention” alerts, and the menu item is now “To Do Tasks.”

New Jun 25, 2026

Tasks + a “My Work” inbox

There is now a shared, assignable to-do list under Operations → Tasks. Managers can assign tasks to any employee or board member (with a due date, priority, and an email when it lands on someone’s plate), and board members and employees can add their own. Alongside it, the new My Work page is a single personal inbox that pulls together everything assigned to you — open tasks, maintenance coming due or overdue, and work orders — sorted by urgency, so you see your whole day in one place.

New Jun 24, 2026

PM Schedule — recurring maintenance with reminders

Boards and managers can now schedule preventive-maintenance tasks that repeat on any cadence — daily, weekly, every two weeks, monthly, quarterly, twice a year, yearly, a custom number of days, or one-time. Assign each task to an employee or a board member, and SoShiny emails them a reminder before it is due and an overdue warning if it slips. Mark a task done and the next occurrence is scheduled automatically. Find it under Operations → PM Schedule, with All / Mine / Due soon / Overdue views.

Design Jun 24, 2026

Homepage refresh — clearer offer, less clutter

We gave the homepage a focused redesign so the offer is front and center. The hero now leads with a plain outcome and the price on its own line ($25/mo base + 33¢/unit). The feature list — which used to appear twice — now shows once, and pricing sits right after the industry cards so you reach it without a long scroll. The header clearly splits “Resident sign in” from “Get started,” the FAQ shows the top three questions with a new full /faq page for the rest, the statute and community-directory blocks moved down as bonuses, and the whole page was tuned for mobile.

New Jun 23, 2026

Download the full feature list (PDF)

Want something to hand your board? There is now a one-click “Download the full feature list (PDF)” button on the homepage features section. It generates a clean, branded handout of every SoShiny feature — always up to date because it is built straight from our live feature list — with our logo, phone number, and a tidy two-section layout. Grab it any time at soshiny.com/soshiny-feature-list.pdf.

Design Jun 22, 2026

Dark mode & color themes

Make SoShiny yours. Open the Appearance menu (the sun icon in the top bar, or the Appearance section in the footer) to switch between Light and Dark mode and pick a color theme tuned to your kind of community: Sunset for condos, Slate for HOAs, Marina for waterfront, Garden for mobile-home and 55+ communities, and Forest for campgrounds and RV parks. Your choice is remembered on your device.

New Jun 22, 2026

Text alerts (SMS) — members can opt in now

Members can now opt in to text-message alerts from their community under Settings → Your account. Boards will be able to send urgent texts (Operations → Text Members) once we finish the carrier registration (A2P 10DLC) the U.S. requires for business SMS. Texts only ever go to members who opted in, and you can reply STOP to any message to opt out anytime.

New Jun 22, 2026

Community surveys & polls

Run quick community polls — pick-one, pick-many, or open-ended questions, with an optional comment box. Choose anonymous or named responses and when members see results (right after they answer, or once the poll closes). It is separate from formal Voting, so there are no quorum or record-keeping requirements — just an easy way to gauge what your community thinks. Find it under Community → Surveys.

New Jun 22, 2026

Manage your subscription and billing online

Board admins can now start a subscription, add a card or bank account (ACH), update payment methods, and download invoices — all from a new Billing & Subscription page in Settings. Every association gets a 30-day free trial with no credit card required up front.

New Jun 21, 2026

America 250 pricing — every feature, $25/mo, locked in for life

To celebrate America’s 250th, our base plan is now $25/mo (down from $50) plus $0.33 per unit — every feature on every plan, no tiers, no setup fees. Start before December 31, 2026 and your rate is locked in for the life of your account. The pricing page now shows your exact monthly and yearly savings as you size it to your community.

New Jun 20, 2026

Download the statute Quick Reference as a PDF

Each state statute Quick Reference now has a one-click PDF download (and the emailed copy links the PDF too) — a clean branded cheat sheet for board meetings.

Improved Jun 20, 2026

Simpler pricing calculator

The big unit-count number on the pricing page is now directly editable (the separate “or type a number” box is gone), and the monthly estimate rounds to the nearest quarter.

New Jun 20, 2026

Free statute Quick Reference by email

The public statute Quick Reference pages now offer an optional popup to get the guide emailed to you. It is opt-in only — the page stays completely free — and captures interested community leaders into a marketing list so SoShiny can follow up. Includes one-click unsubscribe.

New Jun 20, 2026

New Lobby TV slideshow mode

The Lobby TV has a third layout: a full-screen slideshow that shows one item at a time (big image with title and details) and auto-advances every 7 seconds. Pick it under Settings → Lobby TV → Display Mode, or on the soshiny.com/tv sign-in screen.

Fixed Jun 20, 2026

Consistent spacing/colors + login hardening

Fixed a set of spacing and accent-color values that were silently rendering wrong in a few spots (meeting pages, broadcasts, signing). Also hardened the post-login redirect against open-redirect tricks.

New Jun 20, 2026

See who unsubscribed + a clearer opt-out

Members who opt out of broadcast email now show a "Unsubscribed" badge in the directory, and the manager dashboard has an "Unsubscribed: N" chip that opens the filtered list. The unsubscribe link in broadcasts now leads to a last-chance page explaining what they’ll miss versus what they’ll still always receive (emergencies, dues, legal notices) before anything changes.

Improved Jun 20, 2026

Broadcast replies go to the sender; open counts on the list

When a board member or manager sends an email broadcast, replies now go straight to that person. The broadcasts list also shows an "Opened" count and percentage for each sent broadcast at a glance.

Improved Jun 20, 2026

More flexible member records

Ownership and role are now separate, so a person can be an owner AND staff (or board). You can add a "Neither" status for pure employees who don’t own or rent, and members can be added or saved without an email on file (they show a “Call to get email” prompt). Renters now appear as occupants on their unit page, agents show as a compact memo, and changing a password is its own page.

Improved Jun 19, 2026

A person can be both an owner and staff (or board)

The member editor now separates "Owns a unit? (Owner/Renter)" from "Role / access" (Resident, Staff, Board member, Board admin, Property manager). The two are independent, so someone can be an owner who is also on staff or the board. The directory shows their ownership and their role separately.

Security Jun 19, 2026

Spam protection on public request forms

The community finder, claim, and join forms now silently block automated bot submissions with a honeypot + timing check, on top of existing CSRF and per-IP rate limiting. No change for real visitors.

New Jun 19, 2026

Bounced & missing-email flags in the directory

The Community Directory now flags email problems: members with no email on file show a "Call to get email" prompt, and members whose email has bounced show a "Bounced" badge. The manager dashboard shows clickable alerts that jump to a filtered list of exactly those members so the board can collect or fix addresses.

New Jun 19, 2026

Email open tracking for broadcasts

Email Members broadcasts now track opens. The broadcast results page shows how many recipients opened (with a percentage) and an opened timestamp per person. Bounces and spam complaints are also captured automatically and suppress future sends.

Improved Jun 19, 2026

Type to find any sidebar menu item

A filter box at the top of the dashboard sidebar lets you type to instantly find any menu item — matching items surface from whichever section they live in, and the rest hide until you clear it. Handy when the menu has a lot of sections.

Improved Jun 17, 2026

Simpler, lower pricing: $20/mo + 33¢ per unit

SoShiny pricing is now $20/month base plus 33¢ per unit per month — every feature on every plan, 30-day free trial, no contracts. A 50-unit community runs about $36.50/month. The pricing calculator on the pricing page reflects the new rate.

New Jun 17, 2026

Pin your most-used sections with sidebar Favorites

Your dashboard sidebar now has a Favorites group at the top. Click the heart on any section to pin it there; click again to send it back. Board members start with Directory, Units, Who’s Away, Parking, and Feedback; owners start with Announcements, Events, Marketplace, Directory, and Feedback. Your favorites are saved to your account, so they follow you across devices.

New Jun 17, 2026

Governance safeguards on rule & bylaw changes

Adding or editing a rule now shows a governance-change confirmation — a reminder that changes require board approval and/or a community vote — stamped with your name, role, date, and IP. On confirmation, the change is logged, the board is emailed, and members are notified in-app. A no-op save changes nothing and notifies no one.

Improved Jun 17, 2026

Board members land in the Board section at login

Board members now arrive in the Board view when they sign in (they can still switch to the member or renter view anytime with the view-as toggle).

Improved Jun 17, 2026

Show/hide password on more screens

The show/hide password toggle is now on the password-reset, invite, and account password-change screens, not just sign-in.

Improved Jun 17, 2026

Faster community photo galleries

Public community photo galleries now load lightweight thumbnails in the grid and the full-resolution image only when you open a photo — noticeably faster pages.

Improved Jun 16, 2026

Manager-only “how-to” videos for board members

Board members and managers now get an extra “Manager Features” video button next to the section how-to video — showing leader-only tips for running that part of the community. It appears only while you’re in the board view, so regular members never see it. First one is live on Announcements, with more sections to follow.

New Jun 16, 2026

Print minutes, and email them to the Board or Owners

Open any board meeting minutes and you can now print a clean letterhead copy, or email them to your Board or to your Owners. Before sending you get a full preview of the branded email and a checkable recipient list, so nothing goes out until you say so. SoShiny also remembers when each set of minutes was emailed and warns you before sending a duplicate.

New Jun 9, 2026

Add your community’s details to the directory — and a new Pro listing

Community listings can now carry real contact details — phone, email, website, and a short description. Anyone who knows a community can “Suggest details,” and our team reviews each submission before it goes live. Listings show a full-width street map with the location, plus what’s nearby. A new Pro listing ($10/yr) adds a verified badge, featured placement, clickable links, photos, and instant self-serve editing (rolling out).

New Jun 8, 2026

Aerial maps and nearby restaurants, parks & dog parks on community listings

Every community in the directory now shows an interactive aerial (satellite) map of its location — no click needed — plus nearby restaurants (within 5 miles), parks and dog parks (within 10 miles), so you can get a feel for the area at a glance. Place data comes from OpenStreetMap.

New Jun 8, 2026

Claim your community from the directory

Found your community in the new directory? You can now claim it in a couple of taps — tell us who you are and we will verify you and get your board set up on SoShiny. The directory is also wired into the “find your community” search on the sign-in page: if your community is already on SoShiny you go straight to sign-in, and if it is one of the 30,000+ listed-but-not-yet-joined communities, you can claim it on the spot.

Improved Jun 8, 2026

New document categories: Financials, Taxes, Bids, and Invoices

Document libraries now include four new built-in categories — Financials, Taxes, Bids, and Invoices — so boards can keep budgets, tax filings, vendor bids, and invoices neatly organized alongside bylaws, minutes, and insurance. Available to every community now; you can still add your own custom categories any time.

New Jun 8, 2026

Browse 30,000+ Florida communities in the new public directory

We published a public directory of more than 30,000 Florida community associations — condo associations, HOAs, and mobile-home parks — at soshiny.com/communities. Browse by type and by county, and open any community to see its address, size, registration status, and the Florida statutes that govern it. If one is yours, claim it to bring transparent, statute-ready governance to your board in minutes.

New Jun 7, 2026

Members can find their community and request an invite

Residents who land on SoShiny without an invite can now search for their community by name and either sign in (one-click email link) or request access from their board — all without needing to know their community’s web address. Communities that have published a public landing page are searchable; anyone whose community isn’t listed can send a quick manual request that routes to our team. New "Request access" links added to the sign-in and signup pages.

Improved Jun 7, 2026

Signup page now points members to their portal sign-in

Visitors who land on the SoShiny signup page are now asked whether they run a community (and want to sign up for the software) or are a member looking to sign in to their existing community portal. Members are sent straight to the sign-in page instead of accidentally starting a new association.

New Jun 7, 2026

New communities get a guided Getting Started checklist

When your board first signs in, the dashboard now shows a Getting Started checklist that walks you through the launch steps — set up your community website, add units, invite members and your board, upload governing documents, and post your first announcement and event. Each step checks off automatically as you complete it, with a progress bar, and the card disappears once you’re done (or you can hide it any time). New communities also receive a warm welcome note from the SoShiny team with pointers to the in-app help videos and our success@soshiny.com support inbox.

Improved Jun 6, 2026

Member email broadcasts now reply to your community inbox

When a board member sends an Email Members broadcast, replies now go to your association’s Main email instead of the individual person who happened to hit send. Set it under Settings → Association Profile (the Main email + Main phone fields moved there from the Public Landing Page section — same fields, more logical home). If no Main email is set, replies fall back to the sender as before. The address still appears on your public landing page exactly as it did.

New Jun 6, 2026 View →

Tenant sign-in + join flow at /join — passwordless magic links + board-approved community access

Big rework of what a visitor to a tenant host (bellaircondos.com, badassdemo.com, etc.) experiences when they hit /signup.php. The old behavior dropped them on the SoShiny.com marketing-style 'create a new association' form, which made no sense for someone looking for THEIR community. Now: /signup.php on any tenant host 302s to a new /join.php page that knows which community it's on (from the host). The page asks for the visitor's email and forks two ways. (1) If the email matches an active member, SoShiny sends a one-click passwordless 'magic link' to their inbox — single-use, 1-hour TTL, SHA-256 hashed at rest — and the visitor sees a 'check your inbox' confirmation. Clicking the link lands on /login.php?magic=<token>, calls login_user(), and drops them on the dashboard with no password required. (2) If the email is not on file, the page shows a join-request form prefilled with their email — first name, last name, unit number (validated against units table — no fake unit submissions), phone (optional), an optional 'anything the board should know' note. Submitting fires notify_association_managers() so every board member + property manager gets emailed about the new request and inserts a pending row in the new join_requests table. Board admins manage the queue at /dashboard/join-requests.php with pending/approved/rejected filter pills and per-request Approve and Reject actions. Approving creates an active user (auto-roles them owner unless the unit already has an owner-occupant, in which case renter), generates a temp password as fallback, and emails the new member a magic-link sign-in URL so they never need to type the temp password. Rejecting emails them the board's reason. A pending-count badge on the 'Join requests' nav entry in the Operations group lets the board see new requests at a glance. Anti-abuse: 5 magic-link requests per IP per hour, 3 join requests per IP per hour, full audit log on approve/reject. Two new tables: magic_signin_tokens + join_requests (migration 118, additive).

New Jun 6, 2026 View →

Help library refresh: per-topic 'Go to feature' button, auto-video, and 2 new topics

Three coordinated upgrades to /dashboard/help.php. (1) Every help topic now ships with a per-topic 'Go to feature' deep-link — click 'Documents and files' in the help library and you get a primary CTA button that drops you straight into /dashboard/documents.php. Forty-seven existing topics backfilled with the right URL; new topics get a Feature URL field in the admin editor (additive migration 117 added help_topics.feature_url). (2) Help videos shipped via includes/help-videos.php now auto-surface in the matching help topic with a 'Watch the walkthrough' button next to the Go-to-feature CTA — zero DB work needed. A new slug ↔ nav-key map (help_nav_key_for_topic_slug) bridges the two registries; topic.youtube_url still takes priority when set so the admin can override per topic. (3) Two new help topics for sections that shipped this week and weren't covered: 'Notifications log' (the audit trail for every transactional email SoShiny sends on the association's behalf) and 'Digest' (the curated rollup email with the 'sent once per recipient' guarantee). Live topic count: 47 → 49, every one of them with a feature_url.

New Jun 5, 2026 View →

Welcome video auto-plays on first login + 'Welcome Video' button on every dashboard

Every member (owner, renter, board, manager, staff) now sees a short SoShiny welcome video on their very first /dashboard/ visit — a centered modal with a 16:9 player and a 'Got it — let's go' button. Closes via the X, the backdrop, the ESC key, or the Got it button; each path silently stamps users.welcome_video_seen_at so it never auto-opens again for that account. They can still re-watch any time via the new orange '🎬 Welcome Video' button under the dashboard greeting. Built on additive migration 116 (welcome_video_seen_at DATETIME NULL on users) + a CSRF-protected /dashboard/welcome-mark-seen.php endpoint. The mark-seen call is fire-and-forget on the client, so a flaky network never blocks the user from getting into the dashboard.

New Jun 5, 2026 View →

Help video: Property Listings

Property Listings (/dashboard/listings.php) now has a 'Watch a quick video' button next to the page H1. Click → modal player with the YouTube walkthrough at youtu.be/zBTVdC_eORo. ESC, click-outside, or X closes; the video auto-stops on close. Help-video registry now covers 6 sections (announcements, events, marketplace, media, area attractions, property listings).

New Jun 5, 2026 View →

New: Branded welcome drip for every new association (day 0 + day 3 + day 7)

Every newly-provisioned association now gets a three-touch welcome sequence — fully branded HTML with the SoShiny header bar, association logo (if uploaded), orange CTA button, and a soft-gray footer matching the existing broadcast emails. Day 0 fires inline when a super-admin approves the signup at /admin/associations.php: includes temp password, sign-in CTA, and a 'what to try first' checklist. Day 3 lands automatically 72 hours later: a nudge with four quick wins (upload rules + bylaws, post first announcement, add an event, invite other board members) plus the portal CTA. Day 7 lands a week in: a check-in pointing at the in-app help library and offering a 15-minute screen-share. Stop conditions are enforced at send time — if the association status flips to inactive / cancelled / suspended, or the board admin is deactivated, or their email looks placeholder, the row is skipped, not sent. Built on a new scheduled_emails queue (migration 115) drained by a /cron/drain.php endpoint Hostinger cron hits every 10 minutes. The queue is also reusable for any future delayed-send work.

Improved Jun 5, 2026 View →

All transactional emails now ship branded HTML matching the broadcast template

Until today, only the member invite email had the polished navy-header / orange-CTA / soft-gray-footer treatment. Password reset (both self-serve from /forgot.php and board-sent from /dashboard/directory.php), document-signing notifications (sign requests + fully-signed alerts), marketplace approval + rejection emails, and property-listings approval + rejection emails now all use the same branded shell. New helpers email_html_wrap() + email_button_html() + association_logo_url() in includes/functions.php make any future transactional email a one-screen edit. Each email automatically embeds the sending association's logo if they've uploaded one, falling back to the assoc name in plain navy. Plain-text fallback unchanged for every email — recipients on text-only clients see exactly what they saw yesterday.

New Jun 5, 2026 View →

New: Property listings from owners + renters now require board approval before publishing

When an owner, renter, or other non-board member posts a home for sale or rent on /dashboard/listings.php, the listing now enters a 'Pending review' state and is hidden from the community until a board member or property manager approves it. Board admins see a prominent orange '⏳ N awaiting review' button at the top of the Listings page whenever items are pending; clicking it opens a review queue with each pending listing's photo, title, price, specs, and poster info, plus Approve and Reject buttons. Approving makes the listing visible immediately and emails the poster a confirmation. Rejecting prompts for a reason, deletes the listing + photos, and emails the reason to the poster. Sellers can still see their own pending submissions in the regular list, marked with a dashed orange border and 'Pending review' badge, so they know it went through. The Status dropdown on the new-listing form is now board-only — non-board posts cannot self-assign any status. The 'Pending sale' status (an in-contract listing) is kept distinct from 'Pending review' (an unapproved listing) so the meanings don't collide. Implementation: additive migration 114 adds 'pending_review' to the property_listings.status ENUM. The submission email goes through notify_association_managers() with the in-app notification log context so it surfaces on /dashboard/notifications.php too.

New Jun 5, 2026 View →

New: Marketplace listings from non-board members now require board approval before publishing

When an owner, renter, or other non-board member posts an item on /dashboard/marketplace.php, the listing now enters a 'Pending review' state and is hidden from the community until a board member or property manager approves it. Board admins see a prominent orange '⏳ N awaiting review' button at the top of the Marketplace page whenever items are pending; clicking it opens a review queue with each pending listing's photo, title, price, description, and poster info, plus Approve and Reject buttons. Approving makes the listing visible immediately and emails the poster a confirmation. Rejecting prompts for a reason and emails it to the poster. Sellers can still see their own pending submissions in 'My listings' marked with a dashed orange border and ⏳ badge so they know the post went through. The post form itself now shows a one-line note to non-board posters that a review is required. Board posts continue to publish immediately. Implementation: additive migration 113 adds 'pending_review' to the marketplace_listings.status ENUM (no existing rows changed). The pending-submission email goes through notify_association_managers() with the new in-app notification log context so it surfaces on /dashboard/notifications.php too.

New Jun 5, 2026 View →

New: per-section video help — floating button + modal player

Every dashboard section can now ship with a short YouTube walkthrough that members can play in-app. A bright orange '▶ Watch a quick video' button floats in the bottom-right corner of any page that has a registered video. Click it and the video opens in a centered modal with a 16:9 player; click outside, hit the X, or press ESC to close. The video stops playing automatically when the modal closes. First section live: Announcements (/dashboard/communications.php) with the video at youtu.be/Aw6LB-MM_8Q. Adding a video for a new section is a one-line edit to includes/help-videos.php — no page-level code changes needed. The button is hidden on mobile labels (icon-only) and hidden entirely when printing.

New Jun 5, 2026 View →

New: Curated digest rollup for board (daily) and owners (weekly)

soshiny.com/dashboard/digest.php — a new way to send a single rollup email summarizing community activity, with each item sent at most once per recipient. Board admins pick a cohort (Board, Owners, or All Members), see candidate items pulled from the last 14 days (announcements, upcoming events, new documents, recent meeting minutes, new marketplace listings — plus for the Board cohort: new concerns, ARC requests, pending amenity bookings, open work orders, recent violations), check the ones to include, add an optional intro note, and send. The 'sent once per recipient' guarantee is enforced at send time: for every recipient, items they've already received in any prior digest are filtered out, and if all picked items have already been seen by them they're auto-skipped. The compose page reports recipient counts up front and the result page shows sent vs skipped per digest. Cadence is fully manual — no cron — so the board controls when to fire. Recipients receive a branded HTML email with a navy header and the new items grouped by category. Built on the new digests + digest_items + digest_recipients tables (migration 112). Goes through Postmark with per-recipient logging in the existing notification_log so each digest send shows up on /dashboard/notifications.php too.

Improved Jun 5, 2026 View →

Temporary: Kevin gets a silent BCC on every outbound email

For the next ~2 weeks, every transactional email SoShiny sends will silently include success+bcc@soshiny.com as a Bcc — Kevin's own mailbox via plus-aliasing, so the audit stream can be filtered/labeled separately from regular inbox traffic without standing up a new mailbox. Recipients don't see the Bcc; it's invisible in the rendered email. The Bcc target is config-driven (config.mail.bcc_audit on prod) so disabling it is a one-line config change with no code edit. Skips itself when the primary recipient IS the Bcc address (avoids double-deliveries).

Fixed Jun 5, 2026 View →

Quick Reference page now has proper top/bottom margin

soshiny.com/florida/quick-reference (and the NY/TX/AZ siblings) were rendering flush against the site header with no breathing room above the first card. Two issues: the template was opening a duplicate <main> element inside the one header.php already opens (invalid HTML), and the container had no vertical padding to separate the cards from the header. Fix: dropped the duplicate <main>; added padding-top/bottom on the container so the printable cards visually float in the middle of the page on screen. Print CSS unchanged so the printed PDF still paginates cleanly to two letter-size pages.

Improved Jun 5, 2026 View →

Notification preview chips: cleaner wording, click-through to contacts, sit BELOW submit

Three small refinements to the preview chips shipped earlier today. (1) Wording: 'will email N board managers' is now 'will email N Board & Managers' — matches how you'd read it out loud. (2) The chip is now a clickable link to /dashboard/contacts.php so anyone curious about exactly who's on the recipient list can jump there in one click. Hover state turns the count orange. (3) Position: the chip moved from sitting NEXT TO the submit button to sitting BELOW it (right-aligned), so the button stays the visual anchor and the disclosure sits underneath where it doesn't compete for attention. Applied to concerns, ARC, and forms — the three forms with member-facing submit buttons.

New Jun 5, 2026 View →

See who gets emailed — preview chips on every submit + new Notifications log page

Two new transparency surfaces for outbound email. (A) Per-action preview chips: every form that triggers a notification (concerns, ARC, forms, amenity bookings) now shows a small '📧 Submitting will email N board managers' chip right next to the Submit button — so you know the blast radius before you click. Board responses on member-filed items show '📧 This will email <name>' instead. Anonymous concerns show 'No email will be sent.' (B) New page at /dashboard/notifications.php (board-only) listing every transactional email this association has sent in the last 7/30/90 days — recipient, subject, type filter, status (sent/failed), Postmark MessageID, link to the underlying record. Headline counters at the top (total in window, sent, failed, queued). Filter pills by email type. Deep link to the Postmark Activity feed for full delivery + open + bounce data. Backed by a new notification_log MySQL table (migration 111) populated by an optional $ctx argument on send_mail() — call sites pass association_id + kind + related_id + sent_by, and the log row writes itself. Existing send_mail() calls without context continue to work; they just don't show up in the in-app log (Postmark Activity still has them). The previously-discussed Path C (per-user digest + immediate-vs-daily preferences) is logged as a separate admin_todo for when notification fatigue becomes a real signal — today's Bellair volume of ~5 emails per concern is manageable.

New Jun 5, 2026 View →

Quick Reference cards now live for New York, Texas, and Arizona

v1 Florida was the prototype; the lead-magnet model is now shipped for all four statute-hub states. soshiny.com/newyork/quick-reference, /texas/quick-reference, and /arizona/quick-reference each render a 2-page printable cheat sheet specific to that state's governing statutes — NPC + RPL Article 9-B + the Martin Act for New York; Property Code Ch. 81/82/202/204/209 + BO Code Ch. 22 for Texas; ARS Title 33 Ch. 9 + Ch. 16 + supporting Title 10 nonprofit provisions for Arizona. Same SoShiny navy + orange branding, same print CSS that paginates to two letter-size pages, same QR codes pointing back to the per-state hub, same dynamic last-updated date, no email gate. Each state hub got a Download card linking to its quick-reference page (Florida's card pattern, generalized). Architecturally, the original single-file florida-quick-reference.php was refactored into a shared state-quick-reference.php template + a per-state content registry at includes/quick-reference-content.php, so adding a 5th state (Massachusetts, North Carolina, California) is now a content-only change — append an array entry, add an .htaccess rewrite, done.

Improved Jun 5, 2026 View →

Admin to-do list is now the SoShiny master tracker

Per Kevin's pivot — the admin to-do list at /admin/todos.php is now the canonical SoShiny project tracker. New 'Blocked / waiting' status added (migration 110, additive ENUM change) so items waiting on external triggers (Kevin's input, time-based observation, tenant onboarding signals) get their own section instead of crowding the open queue. The 'Active' filter now includes blocked items, the row sort puts In-Progress → Open (sorted by priority) → Blocked → Done → Won't-do so the page reads top-down as the project state. Populated with 20 done items (audit trail of today's shipped work), 12 open items (top-of-queue + on-deck), 6 blocked items (waiting on Stripe design answers, DMARC observation window, tenant #3, BadassHOA decommission timer, Kevin's CMS browser-test), and 2 in-flight items (NY/TX/AZ Quick Reference cards, feature-page hero screenshots).

Fixed Jun 4, 2026 View →

Tenant email links now disambiguate when an association has no custom domain

Lightweight version of the slug-routing brief. The tenant_dashboard_url() helper appends ?from_assoc={id} to outbound email links only when the sending association lacks a verified custom domain — for tenants with a custom domain (bellaircondos.com, badassdemo.com), the domain itself is the disambiguator and nothing is appended. Both live associations today have custom domains, so behavior is unchanged in production; this is forward-looking infrastructure for the next tenant who onboards without a domain. Also: deep links through login. When an unauthenticated visitor clicks a dashboard email link, require_login() now stashes the original URL as ?next= on the login page, and login.php redirects back to it after successful sign-in (open-redirect-guarded — only local /paths, never /login itself). Dashboard bootstrap rejects requests where ?from_assoc differs from the user's actual association_id with a clear 'sign in with the correct account' message instead of a confusing 404.

New Jun 4, 2026 View →

New shared to-do list for super admins at /admin/todos.php

A persistent, shared to-do tracker for SoShiny super admins, replacing the ad-hoc 'REMAINING / next-session candidates' list that lived inside CLAUDE.md. Add an item with title, optional body, priority (High/Medium/Low), and category (SEO/email/features/ops/billing/bug). Status flow is Open → In Progress → Done (or Won't Do); reopen anything any time. Filter pill row at the top toggles between Active / Open / In Progress / Done / Won't Do / All. Each item tracks who added it and who completed it. Backed by a new admin_todos table (migration 109); audit-logged like every other admin action. Seeded with 8 starter items pulled from the standing big-ticket queue (Stripe wiring, feature-page screenshots, v1.5 PDF email modal, NY/TX/AZ quick-reference cards, extend password toggle, VPS+Caddy move, DMARC tighten, BadassHOA decommission).

Improved Jun 4, 2026 View →

Show/hide password toggle on the login screen

Granting Richard Brownbill's suggestion from Bellair: the login form now has a Show button next to the password field that flips the input between hidden and visible. Useful for catching typos on a phone keyboard or when the password came from a manager. Toggle is keyboard-accessible and screen-reader-friendly (aria-pressed + aria-label flip with state). No password is logged or transmitted anywhere — the toggle is purely a client-side rendering change.

Fixed Jun 4, 2026 View →

Tenant notification emails now link to the right domain

A board email about a Bellair Condos concern was linking to soshiny.com/dashboard/concerns.php?id=30 instead of bellaircondos.com — the same bug existed across every notification email the platform sends. Audit + fix: 14 hardcoded https://soshiny.com/dashboard/... URLs across concerns, ARC, search, forms, amenities, and documents now use a new association_base_url() helper that returns the association's verified custom domain (bellaircondos.com, badassdemo.com, etc.) when one is set, falling back to soshiny.com otherwise. The same helper is wired into the invite + password-reset emails (send_password_link()) and the new-member invite send (dashboard/send-invite.php), so a Bellair board admin sending an invite from soshiny.com still produces a bellaircondos.com link in the recipient's inbox. Brand-anchor links to soshiny.com in email footers ('Powered by SoShiny') are unchanged — those should always point at the platform.

Improved Jun 4, 2026 View →

Email delivery now flows through Postmark (transactional and broadcast)

Transactional emails — board-member invites, password resets, signing notifications, work-order updates, broadcast emails — now route through Postmark instead of the host's msmtp pipeline. Better deliverability, full per-message tracking in the Postmark Activity feed, automatic bounce + complaint handling, DKIM/Return-Path alignment baked in, and proper List-Unsubscribe headers on every broadcast for compliance with bulk-sender best practices. Implementation: added a 'postmark' driver to the send_mail() helper in includes/functions.php that POSTs to api.postmarkapp.com/email with the 'outbound' MessageStream. The broadcasts feature on /dashboard/broadcasts.php has had its own Postmark integration since session 14 and now auto-picks up the token (its 'Postmark not configured' warning banner is gone). Falls back to msmtp on any failure so no message is silently lost. Smoke-tested with a 200 OK + MessageID from the Postmark API.

New Jun 4, 2026 View →

Free Florida statute Quick Reference Card — printable, no email required

Shipped v1 of the per-state Quick Reference lead-magnet asset (Florida first). soshiny.com/florida/quick-reference is a 2-page printable cheat sheet that summarizes Chapters 718, 719, and 720 — the 5–6 most-cited sections of each, the notice rules by meeting type (board / members / budget / assessments / rules), quorum thresholds for condos and HOAs, minutes retention, the 10-business-day estoppel turnaround under §718.116(8), and a one-line plain-English explanation of how condos, HOAs, and co-ops differ. Branded SoShiny navy + orange, with two QR codes pointing back to /florida. Print/Save-as-PDF button at the top. Page-break CSS produces a clean 2-page document when sent to a printer or a PDF target. No email gate — the page is free and fully indexable, so it can attract backlinks from law-firm and management-company resource pages. New CTA card on /florida links to it between the headline search bar and the chapter cards. The sitemap auto-includes the new URL. Postmark + email-gated v1.5 comes next.

Improved Jun 4, 2026 View →

Sitemap moat made visible: by-the-numbers strip on /about + state hub CTA polish + statute-CTA bug fix

Three shipped, one held for clarification. (1) New 'What we've built so far' strip on /about with four auto-updating tiles — 524 statute sections, 4 state law libraries, 37 product feature pages, 612 total sitemap URLs — pulled live from the same sources sitemap.xml reads, so they update the moment a statute or feature is added. (2) All four state hubs (/florida, /newyork, /texas, /arizona) got refined mid-page CTA copy that cites specific statutes (§718.116(8) on FL, RPL Article 9-B on NY, Property Code 81/82/202/204/209 on TX, ARS Title 33 on AZ), plus a softer secondary 'See how SoShiny works in [state] communities →' link to the relevant vertical page alongside the existing 'Start your [state] association free' button. (3) Bug fix in the statute-CTA category map: 'Assessments & Finance' (45 statute sections across all 4 states) was linking to the renamed-and-now-404 /features/parking-units slug — now correctly points to /features/hoa-units-parking-fees. Same map: 'Enforcement & Fines' (16 sections) was pointing to /features/architectural-review which doesn't match the category — now points to /features/violations-workflow. (4) Held: the per-state Quick Reference PDF lead magnet — needs Kevin's input on the PDF generation pipeline, email-capture infrastructure, and whether a static printable HTML page would be acceptable as a v1 instead.

Content Jun 4, 2026 View →

New blog draft: 'What Does an Association Manager Do?'

Added a ~3,000-word blog draft covering the full operational scope of a community association manager (CAM) — the seven core duty buckets, what's outside the role, Florida CAM licensing under Chapter 468, CAI credentials (CMCA / AMS / PCAM), 2026 salary data with a 9-row range table, a hiring checklist, and a 5-question FAQ. Treated to the same SEO + social standard as the other 14 drafts: 52-char seo_title, 160-char meta description, 8-keyword seo_keywords, 5 tag pills, anchored H2s on every section for direct deep-linking, 10 inline feature-page links (work orders, documents, voting & ballots, board meetings, etc.), 4 inline cross-links to sibling blog posts (Hidden Cost, three-path breakdown, how-to-switch), and 6 state-hub links into Florida / NY / TX / AZ statute pages. Stays as draft pending Kevin's review; lives at /blog/what-does-an-association-manager-do once flipped to published.

Improved Jun 4, 2026 View →

Work order form: unit field is now type-ahead, locations sort alphabetically

Two quick wins on /dashboard/work-orders.php?action=new. (1) The Unit dropdown is replaced with a typeahead input — start typing a unit number and the browser suggests matching units as you go. Faster for boards with hundreds of units (no scrolling through a giant dropdown). The case-insensitive lookup still binds to the same unit_id on the back end and the Who's-Away warning still fires when you pick an away unit. (2) The Location dropdown now sorts strictly alphabetically — the legacy manual sort_order field is no longer honored on this picker, so the list always matches what you'd expect.

Improved Jun 4, 2026 View →

Home link now lives above the accordion sections in the sidebar

The Home link used to live inside the Community section, so it was hidden whenever you had a different section (Governance, Settings, etc.) expanded. Moved it to a dedicated row above all accordion sections — it's always visible at the top of the sidebar regardless of which section is open. Subtle separator line below it keeps the visual hierarchy clean. Removed the duplicate Home links from inside the Community section on all three nav variants (board, member, renter).

Improved Jun 4, 2026 View →

Settings broken out into a sidebar menu — one section per page

The Settings page used to be a single long accordion with 12 collapsible sections (profile, landing, account, lobby TV, plan a visit, tag colors, newsletter, permissions, locations, activity log, subscription, danger zone). It's now broken out into a Settings group in the left sidebar with one entry per section. Clicking 'All settings' lands on a clean card-grid index; clicking any specific section (e.g. 'Public landing page') jumps straight to a focused page with just that form and a '← All settings' back link. Each section's URL is /dashboard/settings.php?section=<slug>, so you can bookmark or link directly to any single setting. Implementation: kept a single PHP file (settings.php) instead of splitting into 12 separate files — same UX, far less surface area for bugs, and trivially reversible if real file splits become useful later. Role gates are unchanged: board members see 10 sections, board admins / super admins see all 12 (Permissions + Danger zone are admin-only), members see only Your account.

Improved Jun 4, 2026 View →

Sidebar nav cleanup: accordion sections, view-as visible when collapsed, flash auto-dismiss

Four polish items on the dashboard sidebar. (1) Nav sections (Resources, Governance, Admin, etc.) now behave as an accordion — only one section is open at a time, clicking any section closes the others, and the active page's section is always open. Section headers are now more prominent: bigger labels, brighter color, and the open section gets a faint orange tint with an orange chevron so you can see at a glance where you are. (2) The Viewing-As picker (Board / Member / Renter) now stays usable when the sidebar is collapsed to its narrow 64px width — the three buttons stack vertically and show single-letter initials (B / M / R) instead of disappearing. (3) Flash notifications like 'Returned to your normal view' now auto-dismiss after 5 seconds and have a manual × close button — no more occupying screen space indefinitely.

New Jun 3, 2026 View →

Edit meeting date + new Description field from the meetings list

Two improvements to the board meeting workflow at /dashboard/meetings.php. (1) Each upcoming and past meeting card now has an Edit button next to Open — one click jumps straight to the editable details form (date, time, title, description, location, virtual link), no longer hidden two clicks deep behind the Notice & Print tab. (2) Meetings gained an optional Description field — a short paragraph explaining what the meeting is about (topics, special votes, anything members should know up front). Description is editable on the same details form, appears under the date line on the meetings card, in the read-only meeting header, and on the printed Notice of Board Meeting between the date/location header and the State/County block. Schema change is purely additive (TEXT NULL); existing meetings carry an empty description until edited.

Improved Jun 3, 2026 View →

Manager's Report + Committee Report added to the agenda category list; Public Comments now precedes Motion to Adjourn

Two requested additions to the board meeting agenda builder at /dashboard/meeting-detail.php. (1) When adding a new agenda item, the category dropdown now includes "Manager's Report" and "Committee Report" alongside the existing Officers' Report, Old Business, New Business, and the standard locked items. (2) The two standard closing items have been re-ordered: Public Comments now sits BEFORE Motion to Adjourn so the floor closes after public input, not before it. This change applies to brand new meetings (auto-seeded in that order) and the swap was also applied to every existing meeting across every association that had Motion to Adjourn ahead of Public Comments. The print template (/dashboard/meeting-print.php) was updated to match, so printed agendas and minutes reflect the new category labels and order.

Fixed Jun 3, 2026 View →

Comparison pages now use SoftwareApplication schema (fixes GSC warnings)

The three head-to-head comparison pages (soshiny.com/vs/hoalife, /vs/condo-control, /vs/runhoa) had been emitting Product structured data, which Google Search Console flagged for missing aggregateRating and review fields. We don't have real verified customer reviews yet, and fabricating them violates Google's structured-data guidelines and triggers manual actions — so the right fix is to use the correct schema type. Switched all three pages to SoftwareApplication (the same schema homepage and pricing already use), via a one-line include that points at the existing canonical partial. One source of truth for the pricing schema across all 5 pages. No pricing data changed.

Fixed Jun 3, 2026 View →

Fixed visible JSON text on blog posts (Quill stripped the FAQ schema)

Four published blog posts (Hidden Cost, Five Jobs, Florida Compliance, and What Does Community Software Cost) were showing a raw FAQPage JSON blob as visible text on the page. Root cause: the rich-text editor in /admin/blog.php (Quill) strips <script>, <details>, and <summary> tags on every save — so the FAQ accordions and their structured-data scripts were getting eaten the moment any admin opened a post to edit it. Visible content was preserved but the schema and the collapsible UI were lost, and the JSON-LD body leaked into the rendered HTML as plain text. Fix: rewrote the FAQ section on every blog post (4 published + 11 drafts, 15 total) to use plain h3/p HTML that Quill preserves. The Q&A is still visible and readable; the FAQPage rich-snippet eligibility is gone for now. A separate small software change to post.php would restore the schema by moving the FAQ to its own field on the post (rendered outside the Quill editor's reach).

Fixed Jun 3, 2026 View →

Restored the deep rewrite of the HOA Units & Parking feature page

An earlier admin edit (the slug rename from parking-units to hoa-units-parking-fees) saved over the deep content rewrite that had landed on the page minutes before, bringing back two empty H3 sections. The full rewrite is now restored at the new URL (soshiny.com/features/hoa-units-parking-fees) — including the field-list bodies for "What's on each unit record" and "And every parking spot is its own record too", the FAQ section with FAQPage structured data, the 8 distinct benefit icons, the trimmed meta description, and the og:image alt text. Five inline links from blog posts (Hidden Cost plus four drafts) were also updated from the old slug to the new one.

Content Jun 3, 2026 View →

Deeper rewrite of the Parking & Units feature page

soshiny.com/features/parking-units got a content + SEO pass. Two empty H3 sections ("What's on each unit record" and "And every parking spot is its own record too") had been rendering as bare headings with no body underneath — both are now filled with the actual field list of what lives on each record (identifier, type, ownership %, sqft, assessments, floor plan, occupants, modification history, board-only notes for units; spot ID, kind, assigned unit, sticker number + expiration, current vehicle, rental tag, citation history for parking spots). The page also picked up: anchored H3 ids on every section so any one can be linked to directly, an FAQ section at the bottom with FAQPage structured data (Google can now surface 5 questions and answers in search results), 18 inline links to related SoShiny feature pages, 3 inline links into the Florida statute hub (§718.110, §718.112, Chapter 720), an honest meta description that no longer gets truncated mid-word, an alt attribute on the social-share image, varied benefit icons (8 distinct emoji instead of two repeated 🏠/🛡️), and cooperatives + mobile home parks added to the "related industries" list.

Content Jun 2, 2026 View →

All 14 blog drafts now SEO and social ready

Every unpublished blog draft on soshiny.com (14 in total — covering self-managed boards, choosing software, online voting, switching tools, Florida statute compliance, e-signatures, board onboarding, and more) got a content and SEO pass. Each draft now leads with a Key Takeaways callout, has anchored H2 sections (so any heading can be linked to directly), and ends with a 5-question FAQ that emits FAQPage structured data — meaning Google can show those questions and answers directly in search results. Bodies roughly tripled in length on average to add the FAQ section, plus 4–11 inline links per post to relevant SoShiny feature pages, sibling blog posts, the Florida statute hub, and the comparison hub. Each draft also picked up a custom SEO title, meta description, comma-separated keywords, and 5 tag pills that flow into the BlogPosting structured data. Status stays as draft on every one — Kevin reviews each before flipping it to published.

Content Jun 2, 2026 View →

Deeper rewrite of the “Hidden Cost of Email and Spreadsheets” blog post

The most-visited blog post — soshiny.com/blog/hidden-cost-of-email-and-spreadsheets — got a content + SEO pass. The body roughly tripled in length to add a Key Takeaways callout at the top, a new section showing what email-and-spreadsheets looks like inside three different community types (a 220-unit condo, a 96-unit HOA, and a 120-slip marina / 88-lot mobile home park), and a 5-question FAQ at the bottom that emits FAQPage structured data so Google can surface answers directly in search. 14 inline links now point to relevant SoShiny feature pages (work orders, voting & ballots, activity log, rules & bylaws, documents, full association website, lobby TV, email broadcasts, parking & units, who’s away, insurance & COI tracker, board meetings & minutes) and three sibling blog posts (community-software cost, how-to-switch-without-losing-data, the self-managed-board series). The post also picked up tag pills (Board governance · Self-managed HOA · Community software · Operations · Cost of ownership), a custom SEO title and meta description, meta keywords, and updated structured data — three JSON-LD blocks now on the page (Organization, BlogPosting with Person author and the new tag list, and FAQPage).

Improved Jun 2, 2026 View →

Faster homepage, 20 MB uploads, and cleaner nav dropdowns

Three improvements that make the day-to-day feel snappier: (1) homepage hero photos are now 86% smaller (3.8 MB → 541 KB across all 6 industry cards) so the page loads noticeably faster on mobile networks. (2) Max upload size for community photos, GIFs, and documents bumped from 10 MB to 20 MB everywhere — handy if you're sharing high-res shots or longer event GIFs. (3) The nav dropdowns no longer disappear when you move your mouse into the menu (closed a 6 px hover gap), and the standalone About link is now a Resources ▾ dropdown grouping About, Blog, Security, Compare to alternatives, and Changelog — mirroring the structure already in the footer.

New Jun 2, 2026 View →

Public statute hubs now live for New York, Texas, and Arizona

What was a Florida-only public statute hub is now a 4-state Law Library: /florida (existing — 232 sections), /newyork (NEW — 83 sections), /texas (NEW — 116 sections), and /arizona (NEW — 93 sections). Each state's hub has its own chapter overview pages plus dedicated section pages with plain-English summaries, official statute citations, related-section cross-links, Article + BreadcrumbList + FAQPage JSON-LD, and a state-specific CTA block. A new “Law Library” dropdown lives in the main nav on every public page, and the footer gained a 4-state Law Library column. The homepage statute-coverage strip auto-updates as more states come online. Sitemap grew from ~190 URLs to 607 — including 546 statute pages indexable by Google. Florida URLs are byte-for-byte preserved; no broken inbound links. Internal refactor: the three Florida-only templates were generalized into reusable state.php / state-chapter.php / state-section.php that read from a new includes/statutes-config.php — adding the next state (MA, NC, CA) is now a CSV import plus 3 lines of config.

New Jun 2, 2026 View →

New /about and /security pages + national-availability homepage hero

Three coordinated changes that reposition SoShiny on first impression: (1) Homepage hero copy rewritten to position SoShiny as the transparent governance platform for HOAs, condos, and co-ops anywhere in the United States — keeping the existing video hero. (2) New /about page at soshiny.com/about with the founder bio, company facts (legal entity, Daytona Beach HQ, all-50-states availability, pricing), values cards, and a hiring CTA. (3) New /security page at soshiny.com/security with documented data-protection posture: TLS 1.3, libsodium-encrypted sensitive fields, nightly off-site backups, role-based access, comprehensive audit log, bcrypt + rate-limited login, multi-tenant isolation, and our GDPR/CCPA alignment. Plus: legal entity name corrected to “So Shiny Software, LLC” everywhere (footer, schema.org Organization, privacy & terms). A new “Statute coverage” strip on the homepage explains that Florida’s statute hub is a bonus compliance layer, not a geographic limit — SoShiny still works for any U.S. community association.

Improved Jun 1, 2026 View →

7 new help topics + browse statutes by state on the Legal page

Added help topics for 7 features that were live in the portal but missing from the help library — In-App Help, Locations, Newsletter Signup, Storage Tracking, Global Search, Your Own Domain, and Full Association Website. The help library now covers 47 topics across every shipped feature. Also: the Legal Reference page (/dashboard/legal.php) now defaults to your association's state but lets you switch to any other state we've loaded with a one-click pill row — handy if your board is curious about how Florida/New York/Arizona/Texas handle a particular issue. Your home state stays starred so you can always tell which one is yours.

New Jun 1, 2026 View →

Arizona and Texas statutes now indexed inside SoShiny

Added 209 more statute sections covering the laws that govern community associations in Arizona (93 sections across Title 10 Nonprofit, Title 33 Ch. 9 Planned Communities, Title 33 Ch. 16 Condominiums) and Texas (116 sections across Property Code Ch. 81/82/202/204/209 and Business Organizations Code Ch. 22). Surfaces automatically in /dashboard/legal.php for any association with an Arizona or Texas address — no per-state code change needed. SoShiny’s legal index now covers Florida (232), New York (83), Arizona (93), and Texas (116) — 524 sections of community-association law, fully searchable inside the portal.

New Jun 1, 2026 View →

New York association statutes now indexed inside SoShiny

Added 83 New York statute sections covering the four laws that govern NY community associations — Not-for-Profit Corporation Law (NPC), Real Property Law (RPP), Real Property Actions and Proceedings Law (RPA), and General Business Law (GBS §§ 352-e/eee/eeee). Available now in the board-side legal search at /dashboard/legal.php for any association with a New York address. The Florida hub is unchanged — same 232 FL sections, same public URLs at /florida/{ch}/{slug}. Internal id format was upgraded to {STATE}-{CHAPTER}-{SECTION} so the next state (TX/CA/MA) drops in without ambiguity.

Content Jun 1, 2026 View →

37 feature landing pages now published with real content

Every SoShiny feature now has its own dedicated landing page at soshiny.com/features/{slug} — 22 marquee features (Architectural Review, Voting & Ballots, Lobby TV, Documents, Electronic Signatures, etc.) plus 15 new utility-feature pages (Florida Statutes, FAQ, In-App Help, Marketplace, Property Listings, Newsletter Signup, Locations, Insurance & COI Tracker, Storage Tracking, Activity Log, Employees, Contacts, Violations Workflow, Media & Photo Galleries, Area Attractions). Each page leads with a Did-You-Know hook, a plain-English overview, four real per-vertical use cases (condo, HOA, marina, campground), 8 owner-and-board benefit cards, cross-links to related features, and an industry-coverage block. Sitemap now lists 37 feature URLs. The homepage compact "supporting cast" strip is now CMS-driven — adding a new feature in admin automatically surfaces it.

New Jun 1, 2026 View →

Honest comparisons: SoShiny vs. RunHOA, HOALife, and Condo Control

Launched a comparison hub at soshiny.com/vs plus three head-to-head pages — soshiny.com/vs/runhoa, /vs/hoalife, and /vs/condo-control. Each page shows where the competitor wins, where SoShiny wins, a 12-row feature matrix, real switch stories, and 5 honest FAQs. The hub has a 4-column decision guide that names which platform fits which kind of community — even when SoShiny isn't the right answer. Commercial-intent landing for boards Googling 'condo control alternatives', 'hoalife vs', or 'runhoa review' — the SEO category most likely to convert directly to signups.

Content Jun 1, 2026 View →

Housing cooperatives now have their own vertical page

Added soshiny.com/cooperatives.php targeting boards of housing co-ops, mutual housing associations, and limited-equity cooperatives. Covers Florida Chapter 719 share-and-occupancy structure, fitness-and-finance approvals, member loan tracking, and the assessment-vs.-rent distinction that trips up cooperative boards. Cross-linked into the homepage By-Industry strip alongside Condos, HOAs, Marinas, Mobile Home Parks, Deed-Restricted Communities, and 55+ Communities. The Condos vertical now redirects co-op-curious traffic across to the new page so the right audience lands on the right copy.

May 2026

New May 31, 2026 View →

Florida Statute Hub — every condo, co-op & HOA law in plain English

Launched a public reference at soshiny.com/florida covering all 128 sections of Florida Chapter 718 (Condominium Act), 719 (Cooperative Act), and 720 (Homeowners’ Association Act). Each section gets its own page with a plain-English summary, the official source link, the full statutory text in a collapsible block, related sections in the same chapter, prev/next navigation, and a Frequently-Asked-Questions block (with HOA-specific answers acknowledging that Chapter 720 disputes go to civil court, not DBPR). Pillar hub has a client-side search across every section, three chapter cards, and a curated 'most-referenced statutes' strip. Board members and homeowners googling a specific statute (e.g. 'florida statute 718.112') will now find a SoShiny page at the top of the results.

Improved May 31, 2026 View →

Admin CMS quality pass — media picker, blog statuses, industry editor, author writers

Ten-item upgrade to the admin CMS shipped in four groups. (A) Universal media picker modal — pick from the existing library, upload new, or link to an external URL — wired into every image field and every Quill editor. Thumbnails are generated at upload time, so the media library now loads in milliseconds. (B) Blog admin gets full search + status filter, plus archived and soft-deleted statuses with a 10-day grace window before purge — restore any post that was deleted by mistake. (C) Industry editor adds SEO keywords, OG image override, featured-image picker, Quill rich-text for the lede and use-case sections, and a new customer-quotes section that renders as testimonials on the live page. (D) Authors get a list of their posts on their profile page; super-admins see an Edit-this-post link at the top of every public post; and any SoShiny user can now be granted blog-writer access without needing full super-admin keys.

New May 31, 2026 View →

Features library + dedicated landing pages

Built a real CMS for product features. The 22 features on the homepage marquee are now managed through a new Admin → Features area: edit the icon, title, card copy, and order without touching code. Each feature also gets its own deep landing page at soshiny.com/features/{slug} with hero image, demo video, full overview, benefits grid, how-it-works steps, related industries, and a CTA — published one at a time as content gets written. Drafts keep their homepage card but their landing page shows a friendly 'Coming soon' and stays out of the sitemap, so Google never sees thin pages.

Content May 30, 2026

Sharper copy on the homepage By Industry pills

Rewrote the section intro and all six industry-card descriptions on the homepage to be tighter, more specific, and more honest about what each community type actually gets out of SoShiny. Condos lead with searchable rules; HOAs lead with the no-manager-markup promise; Marinas with the COI + spreadsheet pain; Mobile Home Parks with ROC fit; Deed-Restricted with ARC/board alignment; 55+ with the lobby TV + plain-language angle.

Design May 30, 2026

Photographic hero cards on the homepage By Industry section

Every card in the By Industry section now leads with a wide 3:1 photographic hero — condos, HOAs, marinas, mobile home parks, deed-restricted communities, and 55+ communities. Replaces the small emoji icon with imagery that actually represents each community type, and the cards link straight through to their vertical landing pages.

Content May 30, 2026 View →

Mobile Home Parks & ROC co-ops join the lineup

Repurposed the RV Parks vertical (URL still /rv-parks.php) into a dedicated landing for mobile home parks, manufactured-housing co-ops, and 55+ communities — leaning into the resident-owned community (ROC) board-governance use case where SoShiny actually shines. New copy throughout: per-lot directory, snowbird tracking, amenity booking, online voting from out-of-state, and a 96-lot Florida ROC use case. Homepage By Industry card matches.

Content May 30, 2026 View →

Deed-Restricted Communities & POAs join the lineup

Repurposed the Campgrounds industry page (URL still /campgrounds.php) into a dedicated landing for deed-restricted communities and Property Owners Associations (POAs). New title, lede, three pain-points (covenants buried in a binder, ARC chasing paper, violations stalling mid-process), six features focused on architectural review + searchable covenants + per-lot violations workflow, a 320-lot use case, and five FAQs. Homepage By Industry card matches.

Content May 30, 2026 View →

Meet the SoShiny Team byline

Posts written by the team now byline as 'SoShiny Team' with a real author profile at soshiny.com/author/soshiny-team. Includes our editorial intro, contact email (success@soshiny.com), and link to follow us on X. Posts can also be re-attributed to individual authors (Kevin, Reboooot, or any new author you add) via the Author dropdown in the blog editor.

New May 30, 2026 View →

Author profiles + a real SEO panel on the blog editor

Every SoShiny team member can now have a real author profile — display name, avatar, bio, job title, LinkedIn, and X handle. Each author gets a public landing page at soshiny.com/author/{slug} showing their bio and every post they've written, complete with Person structured data so Google can attribute articles to a real human (E-E-A-T). Blog posts now show a proper byline with avatar and a link to the author's profile, both on the index and on individual post pages. The post editor got a full SEO & social panel: separate SEO title (≤70 chars + live counter), SEO description (≤170 + live counter), focus keywords, social-share image override, tags, and a live Google search-result preview that updates as you type. Author picker is a dropdown of your team instead of free text. Authors are managed in the new Admin → Authors area.

New May 30, 2026 View →

SEO-friendly media library

The Media library got a major upgrade. Every image now carries alt text, a title, a caption, and dimensions. A live SEO score flags generic filenames (IMG_1234, Screenshot…), too-short/long names, and missing alt text. Click any tile to open a detail editor with a Google-ready SEO panel, quick Copy <img> tag and Copy markdown buttons, a Used-in list showing every post / industry page / changelog entry that references the image, and an SEO-friendly filename rename that automatically updates all references across the site so nothing breaks. A red dot on the tile and a running 'X of Y have alt text' counter at the top keep gaps visible.

Improved May 29, 2026

Sitemap now updates itself

The soshiny.com sitemap is now generated dynamically from the CMS. Every new blog post you publish and every industry page edit shows up in the sitemap automatically, so search engines pick up new content without anyone hand-editing a file. Same URL (soshiny.com/sitemap.xml), nothing changes from the outside.

New May 29, 2026 View →

Privacy Policy and Terms of Service are live

Published our Privacy Policy and Terms of Service at soshiny.com/privacy.php and soshiny.com/terms.php. Both are linked from the footer of every page, and signup now requires an explicit checkbox agreement before an association can be created. We also added our Daytona Beach address and contact info to the site footer and structured data so search engines can show them in knowledge panels.

Content May 29, 2026

We're now SoShiny, LLC of Daytona Beach

Updated the company name across the site footer, print headers, lobby TV, transactional emails, and our Organization metadata. The legal entity behind SoShiny is SoShiny, LLC, based in Daytona Beach, Florida. No change to your account or how anything works — just a cleaner copyright line.

Design May 29, 2026

Refreshed the marketing footer

Rebuilt the soshiny.com footer as a multi-column layout: brand + Follow us on X on the left, a Product column (Pricing, Blog, Changelog, Get started, Sign in), and a By industry column linking to all six community types we serve (condos, HOAs, marinas, RV parks, campgrounds, 55+ communities). Wraps cleanly on mobile.

New May 29, 2026 View →

The SoShiny blog is live

We launched a blog at soshiny.com/blog — guides, tips, and product news for running condos, HOAs, marinas, campgrounds, RV parks, and 55+ communities. Behind the scenes, the marketing site is now managed through a new admin CMS: write and publish blog posts with a rich-text editor, manage a reusable image library, and edit the by-industry landing pages — no code required.

Content May 28, 2026 View →

SoShiny is on X

Follow SoShiny at @soshinyapp on X. There's now a 'Follow us' link in the site footer, and the handle is wired into our page metadata and structured data so shared links and search engines credit the account.

Content May 28, 2026

More answers on the homepage FAQ

Expanded the homepage FAQ from 5 to 14 questions — now covering which kinds of communities SoShiny serves, pricing, the free trial, contracts, custom domains, electronic signatures, online voting, email broadcasts, and the lobby announcement TV. Laid out in a clean two-column grid, and the questions feed structured data so they're eligible to appear directly in Google search results.

New May 28, 2026

Landing pages for every kind of community

SoShiny now has dedicated pages for the communities it serves — condos & co-ops, HOAs, marinas, RV parks, campgrounds, and 55+ communities. Each one speaks to that community's real workflows and questions, with the same every-feature-on-every-plan platform behind it. A new 'By industry' section on the home page and footer links tie them all together.

Improved May 28, 2026

Easier to find SoShiny on the web

Behind-the-scenes work so search engines and link previews understand SoShiny: unique page descriptions and canonical tags, rich link-share cards for social and messaging apps, structured data (organization, software, and FAQ), and a sitemap. The old BadassHOA.com address now permanently redirects to SoShiny.com so no old links get lost.

Design May 28, 2026

New logos and hero video

Refreshed the SoShiny wordmark in the header (now a touch larger) and the footer, added a new illustrated banner above the features grid, and swapped in a new hero video on the home page.

New May 28, 2026

Drag to reorder your community photos

Boards can now set the exact order community photos appear on the public site. On the Media page, drag any photo to a new spot — the order saves automatically and is reflected in the public gallery (and the lobby/lightbox). New uploads land at the end so they're easy to place.

New May 28, 2026

Community photos open in a lightbox you can arrow through

On a community's public site, clicking a photo in the Community Photos gallery now opens it in a full-screen lightbox instead of jumping to a bare image page. Use the on-screen arrows or your keyboard's left/right arrow keys to move between photos, Esc or the backdrop to close, and a counter shows your place in the set.

Design May 28, 2026

Custom-domain login + footer polish

On a community's own domain, the sign-in page no longer shows the SoShiny logo up top — the association's own logo in the sign-in card stands on its own. Refreshed the SoShiny white logo in footers and the dashboard sidebar, and updated the footer credit to “SoShiny is © 2026 Savvy Brain LLC and Kevin B. Leigh.” with links.

Improved May 27, 2026 See it live →

Search box on admin Help Topics

/admin/help.php now has a live search bar above the topic list that filters on title, slug, category, and body text. Multi-word queries are AND'd; empty category groups auto-collapse; a Clear button (and Escape) resets. Useful now that the help library is at 40+ topics and growing.

Design May 27, 2026 See it live →

Pricing redesign — one price, every feature, no tiers

Pricing simplified to a single linear model: $50 base + $0.50 per unit. No Starter / Growth split, no thresholds, no per-resident fees. On the home page, the old two-card layout is replaced by a single bold box: big price banner across the top, a Calculate-your-Association CTA, and 22 feature:benefit pairs in a two-column grid. The /pricing.php calculator: slide your unit count from 1 to 1,000, price updates live with no tier name; new two-line headline 'Amazing price for the Most Features / Everything you need to run a modern association'; slider layout restructured so the big price sits below the slider (no more layout-shift wobble as digits change); added a navy closing CTA block at the bottom of the page.

Design May 27, 2026 See it live →

Marketing site refresh — feature ordering by association lifecycle

The features grid on the home page now opens with 'Full Association Website' (renamed from Public Landing Page, with a beefier description) because the public-facing community website is the first thing a board sees value in. The remaining 20 cards reorder roughly in the sequence a new board would actually adopt them — stand it up (directory, parking, rules, documents), communicate (announcements, email broadcasts, lobby TV), govern (events, meetings, voting), serve residents (concerns, ARC, work orders, amenity booking, vehicle registry, who's away), forms (e-signatures, sign any PDF), engagement (committees, search), and your-own-domain as the paid upgrade at the end. New tagline strip 'Condo · Home · Marina · Campground and Beyond' under the section logo. Eyebrow says 'Modern Association Software'. Closing CTA reads 'Ready to run your Association like a boss?'.

New May 27, 2026 See it live →

SoShiny.com is live

soshiny.com is now serving from its own Hostinger environment with its own database, its own success@soshiny.com mailbox, and its own super admin. Hero lede refreshed to spotlight the full feature lineup (community website, rules, documents, announcements, lobby TV, work orders, architectural review, electronic signatures, committees, events, employees, member and renter directory), and Lobby Announcement TV moves up into the marquee feature grid alongside Email Broadcasts.

Design May 27, 2026 See it live →

New SoShiny logo lockup

Refreshed the main site logo with the new SoShiny.com / Association Management Software lockup — a circular sun-burst mark with a tiny mid-rise condo, waterfront home, sailboat, and RV, paired with the orange wordmark. Live in the public site header. The dark-background variants in the dashboard sidebar and footer still use the previous mark until we have a reversed/white version of the new art.

Design May 27, 2026 See it live →

We're now SoShiny — rebranded from BadassHOA

Same product, broader vision. BadassHOA is now SoShiny — a community management platform built not just for HOAs and condos, but for marinas, campgrounds, RV parks, retirement communities, and any group that needs a way to keep members in the loop and a board organized. All existing customers, members, settings, and data move with the rebrand. Branding is being updated across the site; if you spot anything that still says "BadassHOA," let us know — we'll catch it.

Improved May 26, 2026 See it live →

Who's Away — filter tabs, agent picker, and resident-side away ribbon

Iteration pass on the Who's Away board. Management page now has filter tabs across the top — 'Away now' (the default, since that's what you're usually checking), 'Upcoming', and 'Occupied' — with live counts. Unit-number search bypasses the filter so you can find any unit fast. Adding an absence now offers a rental-agent / real-estate-agent picker that pulls from the community contacts directory, so 'the agent who has the keys' is one click away. On the resident dashboard, when a unit is currently marked away, the 'My Unit' ribbon switches to a red palette with an away badge so an owner instantly sees they (or their tenant) are flagged. Renters' own absences are private to them.

New May 26, 2026 See it live →

Vehicle Registry — every car, truck, RV, and golf cart on the property

A proper registry for every vehicle parked on the property. Members register their own from their profile (✈️ My travel schedule sits next to 🚗 My vehicles); board admins and property managers see and edit the whole lot from /dashboard/vehicles.php. Each vehicle captures plate + state, year / make / model / color, kind (car, truck, SUV, motorcycle, RV, trailer, golf cart, other), parking choice (assigned spot, general parking, or off-site), and a board-assigned sticker number with issue date. Two printable PDF-style views: a per-vehicle parking pass (laminate-ready, identifies the car as authorized) and a 'wrong car in the lot' warning notice the board fills in on the fly with the offending plate. A print-ready list of every active vehicle in the association is one click away.

Improved May 26, 2026 See it live →

Real-estate agents added to the community contacts directory

Boards can now attach real-estate agents as a distinct contact kind in the community contacts directory, separate from rental agents. Useful when a unit goes up for sale and the listing agent becomes the de-facto key-holder while owners are out. The new kind also appears in the Who's Away agent picker — so when a unit is vacant for a showing, the absence record can link directly to the listing agent.

New May 26, 2026 See it live →

Who's Away — unit travel schedule for management and the board

A digital housekeeping board so management knows who's out of town, especially during snowbird season, hurricane prep, and scheduled maintenance. Residents add their own travel ranges from their profile (✈️ My travel schedule), and property managers + board admins can enter on their behalf from the new /dashboard/whos-away.php. Each absence captures the start/end dates (end-date optional for open-ended trips), kind (short trip / snowbird / vacant / authorized worker access), emergency contact, who's authorized to enter, pet on premises, vehicle left on site, and an encrypted-at-rest key location. A one-click Emergency view prints a sorted list of every currently-away unit with all the contact details — the page managers hit before a hurricane or water shutoff. Broadcast email now has a Who's Away filter so boards can send 'we're shutting off water Thursday' to people who are actually home, or 'building impact incoming' to people who are away. Work-order and concerns forms warn when the chosen unit is currently away. Snowbird auto-prompt: returning snowbirds get a 'Heading south again this year?' card on their profile that clones last year's range one year forward. PRIVACY: Who's Away is hard-coded to property management and board roles. It does not appear on the Lobby TV, the public community landing, the community directory, or any broadcast preview — and the permission is not configurable, by design. Every key-location read is individually audit-logged.

New May 26, 2026 See it live →

Custom-domain sign-in page now wears your community's branding

Associations on a custom domain (e.g. bellaircondos.com) now get a fully branded sign-in page. Visitors who go to bellaircondos.com/login.php see the community's logo above the sign-in card and its hero image as the full-page background, with a navy gradient overlay for legibility. The page title and headline read 'Sign in to <association name>'. A '← Back to <association>' link below the form returns to the community's landing. The SoShiny marketing nav (Features / Pricing / FAQ / Get started) is hidden on custom-domain visits — only the 'Powered by SoShiny' credit in the footer links back to the platform.

Content May 26, 2026 See it live →

"Owners / Renters" renamed to "Community Directory"

The sidebar entry, page title, and heading have all been renamed from "Directory" / "Owners / Renters" to "Community Directory" — clearer about who's listed and consistent with how boards refer to it.

Improved May 26, 2026 See it live →

Dashboard polish — unit ribbon, view switcher, help in global search

Three connected upgrades to the resident dashboard. (1) The My Unit ribbon now lists the actual owners and tenants on the unit (pulled from the occupants roster) instead of just the logged-in user's role, plus the monthly HOA assessment derived from the unit's annual fee. (2) Board admins, board members, property managers, and super admins get a 3-way Board / Member / Renter view-as switcher pinned to the top of the left sidebar — easier to preview what each role sees without leaving the page. (3) The dedicated help search bar on the dashboard has been replaced by integrating help topics into the global 'Search everything' bar in the top right, and a Help link has been added to the main sidebar nav so it's always one click away.

Fixed May 26, 2026 See it live →

Settings — hero banner upload now actually saves

Uploading a hero banner image via Settings was silently failing — the file got written to disk but the database column was never updated, so the page reloaded without the banner. The form submission now writes the new hero path properly.

Fixed May 26, 2026 See it live →

Help link in the sidebar is clickable again

The 'Help' link at the bottom of the sidebar (and the admin Sign-out link too) was being silently swallowed by an invisible scroll-hint overlay sitting on top of it. Clicks now register correctly whether the hint is visible or not.

Content May 26, 2026 See it live →

Pricing page simplified — two plans, clearer Starter label

The Enterprise card has been removed from the public pricing page. We now show two plans side by side: Starter (small HOAs) for up to 20 units at $20/mo flat, and Growth for 21+ units at $20 base plus $0.50 per unit over 20. Every plan still includes every feature — there is no tier-gating. The custom-domain add-on at $99/year continues to sit below the plan grid.

Content May 25, 2026 See it live →

Pricing page now lists the custom-domain add-on ($99/year)

Associations that want to run their community on their own domain (e.g. yourassociation.com) instead of soshiny.com/{slug}/ can add that to any plan for $99/year. We provide DNS instructions, provision the SSL certificate, and handle the routing. Currently available by request via the waitlist link on the pricing page while the routing layer is finished.

New May 25, 2026 See it live →

Amenity bookings now post to the community calendar — open or private

When a member books an amenity (clubhouse, pool deck, BBQ area, etc.) they pick whether the gathering is 'Open to members' or a 'Private event / party'. As soon as the booking is approved (or instantly if the amenity allows auto-approval), an event is added to the community calendar so neighbors can see the space is reserved. Open events show the purpose so people can join; private events only show 'reserved — private event' so the space isn't accidentally double-booked. Denying or cancelling a booking automatically removes the event.

Design May 25, 2026 See it live →

Resident dashboard rebuilt for everyday homeowners

The dashboard residents land on after logging in has been redesigned for non-board users. Removed the nag-style 'Needs your attention' banner. New layout: a help search bar at the top, a pinned emergency notice (when one is active), a 'My Unit' ribbon with your unit details, four clear shortcut tiles (Feedback to the Board, Rules & Bylaws, My Documents, Marketplace), announcements with color-coded type accents and a 'New' pill for items posted in the last week, upcoming events with thumbnails, a marketplace strip, your own recent activity, and a 'Reach your board' footer with board admin names and a link to the full contacts page.

New May 24, 2026 See it live →

PDF signing — place your saved signature on any uploaded PDF

Any member can now sign uploaded PDF documents directly in the portal. Click Sign on a PDF row to open the signing page: the full document renders via PDF.js, you pick a saved signature (or draw a new one), click to place it on any page, and the document is baked client-side by pdf-lib before being saved as a signed copy. Signed copies are stored separately so the original is never modified.

New May 24, 2026 See it live →

Platform messages — SoShiny team can push banners to association dashboards

Super admins can now post messages directly to any association's dashboard from the admin panel. Messages appear as a navy banner labeled "From SoShiny" at the top of every dashboard page. Each message can target all members or board-only roles, carry an optional expiry date, and be paused or deleted at any time.

New May 23, 2026 See it live →

Board meeting agenda builder — agendas, resolutions, notices, and proof of notice

Board members and managers can now build and manage full board meeting agendas. Propose agenda items throughout the month, approve or table them, and attach resolutions with per-member yes/no/abstain votes. Print-ready outputs match Florida statute requirements: Proof of Notice Affidavit (§718.112), Notice of Board Meeting (with Zoom/Google Meet info), numbered Agenda, and a Resolution record with individual vote tallies.

Improved May 23, 2026 See it live →

Member invite email — branded HTML, feature list, and sender sign-off

Invite emails now send as full HTML with the association's logo, an orange CTA button, a portal bookmark link, and a 7-item feature list explaining what members can do once logged in. The sign-off shows the name, email, and phone of whoever sent the invite. The footer links both the association name and SoShiny back to their respective portals.

Improved May 23, 2026 See it live →

Directory: last login date visible per member row

Board admins and managers can now see when each member last logged in directly from the directory. Members who have never logged in but have a real email on file show a red "Never" label alongside the invite button, making it easy to spot who still needs onboarding.

Improved May 23, 2026 See it live →

Gifted plan — super admins can grant free access as a charity designation

A new 'Free (gifted)' plan is available in the association plan dropdown. Super admins can set any association to gifted status, giving them full access at no cost for as long as the designation is active — intended for charitable or sponsored associations, not discounted billing.

New May 21, 2026 See it live →

Board notes — log calls, emails, and conversations per member or unit

Board admins and managers can now log private notes on any unit or member. Notes are tagged by type (📞 Call, 📧 Email, 💬 Text, 🤝 In person, 📋 General), include a backdatable date field, and support full edit and delete. A 📋 icon with note count appears on each occupant row in the unit detail page and on every member row in the directory — click to open the notes log. Notes are never visible to residents.

Improved May 20, 2026 See it live →

Directory: Owners / Renters split, 3-way member type, media thumbnails

The directory nav label is now 'Owners / Renters' and the dashboard tile shows owner and renter counts as two separate numbers. The add/edit member form now has a 3-way Owner / Renter / Staff radio group instead of a checkbox. Media uploads now generate thumbnails (400×400 max) for faster grid loading. The audit log is now visible to board admins on the Settings page.

Improved May 19, 2026 See it live →

Bellair tenant directory imported

37 renters across 29 units imported from the Bellair tenant list. All accounts are active in the directory with phone numbers on file. Tenants without an email address on record have placeholder emails and can set their own via the password-reset flow when they're ready to log in.

New May 19, 2026 See it live →

Assign rental and real estate agents to units

Board admins can now link a rental/property management agent or real estate agent to any unit. Agent contacts are stored association-wide so the same agent can be linked to multiple units without re-entering their info. The unit detail page shows a new Agents card with dropdowns for each agent type, and an inline form lets you add a brand-new agent on the spot without leaving the page.

Improved May 18, 2026 See it live →

Lobby TV: smooth scroll on Samsung Smart TVs

The lobby TV display now scrolls smoothly on Samsung Smart TVs and other lower-powered browsers. The previous JavaScript requestAnimationFrame loop ran on the main thread and caused choppy, jumpy motion on Tizen WebKit. The new approach uses CSS @keyframes animation, which the browser hands off to the GPU compositor thread — resulting in smooth, continuous scrolling. Also: weather data is now fetched server-side in PHP (no client-side fetch calls, no layout pop when the page loads), Google Fonts removed in favor of the system font stack, and all clamp() values have rem fallbacks for older Tizen versions that don't support clamp().

New May 18, 2026 See it live →

In-app help center

A help center is now built into the dashboard. Every page has a ? button in the top bar and a Help link at the bottom of the sidebar. The help viewer has a searchable sidebar with topics grouped by category, and shows role-appropriate content — a resident only sees topics relevant to residents, while board admins see everything. Topics include getting started, directory privacy, changing your password, announcements, events, marketplace, concerns, architectural review requests, documents, legal reference, and more. The system is designed to grow over time.

New May 18, 2026 See it live →

Residents can opt out of the member directory

Unit owners and renters can now hide themselves from the resident directory without involving the board. A new 'Directory privacy' checkbox in Settings > Your account lets you opt out with one click. Other residents won't see your name, unit, email, or phone in the directory — but the board and management can always see your information for community management purposes. Board and management roles don't get the toggle since their presence in the directory is part of their community role.

Improved May 18, 2026 See it live →

Concerns form now shows how the board will contact you

When you submit a concern, complaint, or compliment, the form now displays your contact details — name, unit, email, and phone — so you know exactly what the board will use to follow up. If your phone isn't on file, a link takes you straight to profile to add it. The anonymous toggle hides your contact block and shows a clear warning: the board won't be able to follow up or give you updates if they don't know who you are. The member name typeahead also now respects your directory privacy setting — if the board has restricted the full directory, the picker is hidden entirely.

Improved May 18, 2026 See it live →

Dashboard tile polish — members breakdown, rules label, safer contact tiles

Three small improvements to the dashboard tiles. (1) The Members tile now shows a breakdown under the total count: how many owners, how many renters, and how many team/staff members. (2) The Rules tile label is now 'Rules & bylaws' to more accurately reflect what it links to. (3) The Board & mgmt and Contacts tiles no longer act as links for users who don't have contacts access — previously clicking them would hit a 'you don't have access' wall; now they render as plain non-clickable tiles for those users.

Improved May 18, 2026 See it live →

Events and lobby TV now display in your association's local timezone

Associations can now set their local timezone in Settings > Association profile. Events are stored in UTC and displayed in the association's local time everywhere — the Events page, the event editor (so 6 PM means 6 PM, not 6 PM UTC), and the Lobby TV. Previously all times were stored and displayed as UTC, so a 6 PM event showed as 2 PM on the TV for Eastern associations. Times entered in the event form are now treated as local time and converted to UTC on save.

Improved May 18, 2026 See it live →

Archived announcements tab for board admins

Board admins can now view expired announcements without digging through settings. A new 'Archived' tab on the Announcements page lists everything past its expiry date. Switching back to the live view shows only current announcements as before. Useful for referencing what was communicated in past months or reposting a seasonal reminder.

New May 18, 2026 See it live →

Lobby TV PIN kiosk login — no more sharing the token URL

The Lobby TV now has a proper PIN-based login screen at /tv. Enter your community ID (the slug, e.g. 'bellair') and your 4–10 digit PIN, and you get a bookmarkable URL you can load on any TV or kiosk browser. The PIN is managed by the board admin in Settings > Lobby TV — it's randomized on first setup and can be changed any time. The kiosk is rate-limited: 10 wrong PIN attempts from one IP locks out that IP for 15 minutes. Legacy token-based URLs still work if you have one bookmarked. The TV display also gained infinite scroll (content loops seamlessly instead of jumping), a 10-minute page refresh, a high-visibility footer CTA pointing residents to the portal, and copyright.

Improved May 15, 2026 See it live →

Announcement tag colors — customizable per association

Announcement type badges are now color-coded by type: Beautification is green, Emergency is red, Event is blue, Maintenance is amber, and General is orange. Board admins can now customize any of these colors in Settings > Announcement tag colors. Pick a color with the color picker, preview the badge live, and save. The chosen color applies on the announcements dashboard, the public community landing page, and the lobby TV. Colors reset to the app defaults at any time via the Reset to defaults button.

Improved May 14, 2026 See it live →

Events: All tab so nothing disappears into the past

Board admins now see an 'All' tab on the Events page alongside Upcoming and Past. The All tab shows every event regardless of date with full Edit and Delete buttons. This fixes a real problem: if you save an event with the wrong date it would immediately fall off the Upcoming view and show up buried in Past with no obvious way to fix it. Now it's always reachable.

New May 14, 2026 See it live →

Legal reference — Florida HOA and condo statutes, searchable in-app

A new Legal page (balance-scale icon in the sidebar, under Resources) gives every signed-in member access to Florida's HOA and condo statutes — chapters 718 (condominiums), 719 (cooperatives), 720 (HOAs), and 553 (building codes). FULLTEXT search across all 232 statutes, plus filters for chapter, what it applies to, and category. For statutes with full text loaded in-app, click Expand to read it right there. For the rest, the Official site button opens the Florida Legislature's page directly. Board admins can import additional states or update the statute list via the admin panel (Admin > Legal import, CSV format).

Improved May 14, 2026 See it live →

Lobby TV overhaul — 3-column layout, weather, readable from across the room

The Lobby TV display got a full rework. Three columns — Announcements, Upcoming Events, and Marketplace — each with a colored header, item count, and its own independent scroll that loops when it runs out of content. Text is sized for distance viewing using fluid clamp() values (event dates read as large as 2.6rem). A weather widget centered in the header shows current conditions (WMO emoji + temperature + wind + precipitation) from Open-Meteo (free, no API key), refreshing every 30 minutes. The association's logo is now larger (up to 110px tall). Recurring events are now properly expanded — previously a weekly meeting series only showed one row; now all upcoming occurrences appear. Fixed a bug where trial-status associations were excluded from the TV query.

New May 13, 2026 See it live →

Marketplace — buy, sell, and give away within your community

Residents can now post items for sale, free giveaways, or wanted ads directly in the community marketplace at /dashboard/marketplace.php. Each listing has a title, category (Furniture, Appliances, Electronics, Clothing, Vehicles, Real estate, Services, Free, and more), price (or 'Free'), description, and an optional photo. Listings default to active and can be marked sold or removed by the poster. Board admins can remove any listing. Active listings appear on the Lobby TV in the third column and are counted on the dashboard home tile. The category set and moderation settings can be extended by the board.

Improved May 13, 2026 See it live →

Announcements can include an image

Board admins can now attach an optional image to any announcement — a flyer, a photo from last month's social, a map of the work zone, anything. The image appears inline below the announcement body on the dashboard and on the public community landing. Images are served through the same secure file gatekeeper as documents, respecting the announcement's audience setting.

New May 13, 2026 See it live →

Birth and death notices as announcement types

Two new announcement types — Birth notice and Death notice — let the board share community life events with residents who want to know. They have their own distinct badge colors and are categorized separately so residents can filter or ignore them. Like all announcements, the audience can be scoped (all residents, owners only, board only).

New May 13, 2026 See it live →

Per-unit photo gallery + document archiving

Each unit now has its own media gallery — floor plan images, interior photos, renovation before/after shots — managed from the unit detail page (/dashboard/unit.php). Images are scoped to the unit, board-only by default, and served through the secure file gatekeeper. Separately, documents can now be archived (soft-deleted) instead of permanently removed. Archived documents stay in the database and can be restored by a board admin, but they don't appear in the regular document listing. Useful for superseded rules, old insurance certificates, or past floor plans you want to keep but not surface.

Content May 13, 2026 See it live →

Governing documents guide for residents

A new in-app reference page explains Florida HOA and condo governing documents in plain language — what a Declaration of Condominium is, how it differs from the Bylaws and Rules, who can change what and by what vote threshold, and what residents can do if they disagree with a rule. Linked from the Rules & Bylaws page. Scoped to each association's city and type. No legalese.

New May 13, 2026 See it live →

Formal violation workflow — issue notices, track cures, print official letters

Board admins and property managers can now record formal violations (noise, parking, pets, unauthorized modifications, and more), cite the specific governing-document rule, and link the violating unit and resident. From the violation detail page, issue any of four notice types: Warning, Cure Notice (with a deadline), Fine Notice (with a dollar amount), or Hearing Notice. Each notice pre-populates a legally-shaped letter body that you can edit freely before saving. Every saved notice appears in a timeline and generates a print-ready letter: association letterhead (logo + address), recipient, rule citation, due date or fine amount callout, body text, and a signature block. The print page auto-fires the browser print dialog. Violations also integrate into the Concerns workflow — a new 'Convert to Violation' button on any concern detail page pre-fills the violation form. Fine amounts are captured for the record; fine payment tracking is wired in once the billing module ships.

New May 13, 2026 See it live →

Saved signatures — reuse your signature on future forms (private to you)

After signing any form, you can now tick 'Save this signature to my account for future forms' (with an optional label like 'My signature' or 'Initials'). Next time you file a form, a new ⭐ Saved tab appears on the signature pad with your saved signatures — pick one and you're done. Strictly private: only the owner can see and use their saved signatures. Even board admins can't see them. Manage (delete) them from the new 'My signatures' card on your profile. Each form submission still embeds its own copy of the signature image, so deleting a saved signature doesn't invalidate forms you've already signed.

New May 13, 2026 See it live →

Configurable permissions dashboard — board sets who sees what

Board admins can now configure exactly which role is required to access each feature. A new Permissions page (board-admin only) shows a matrix: rows are features, columns are roles. Pick the minimum role for each feature and save. Features you can configure include: viewing meeting minutes, viewing work orders (read-only), viewing violations (read-only), viewing the employee roster, viewing insurance records, the full resident directory, submitting concerns, and submitting ARC requests. Management-write actions (creating work orders, issuing violation notices, editing employees) are always restricted to board/management roles and are not configurable. Changes take effect immediately and are per-association — you're not changing settings for any other community. If you haven't customized a feature, it falls back to a sensible default. Custom overrides are labeled 'custom' in the matrix so you always know what you've changed.

Improved May 13, 2026 See it live →

Role renamed: 'Resident' is now 'Owner'

The resident role has been renamed to 'Owner' throughout the app and database. This better reflects what the role actually represents — a unit owner, not just any resident. Existing accounts are migrated automatically; nothing changes for current users except the label. The 'Renter' role remains separate (renters have narrower access than owners — they can't file ARC requests, join committees, or access settings). If you were filtering by 'Resident' anywhere, you'll now see 'Owner' in its place.

New May 13, 2026 See it live →

Work orders — post a resident announcement when status changes

When a board admin updates a work order status, an optional 'Post an announcement' section now appears in the status form. Tick the checkbox to expand it, pick the audience (All residents, Owners only, Renters only, or Board only), and write the announcement body. The title auto-fills based on the new status — 'Work completed: [title]' when marking done, 'In progress: [title]' when starting work — but you can change it to anything. Handy for closing the loop with residents: when the pool pump is finally fixed or the elevator comes back online, one status change both updates the work order and notifies residents without a second trip to the announcements page.

New May 13, 2026 See it live →

Electronic signatures on forms — E-SIGN / Florida UETA compliant

Every form that carries legal weight (guest registration, amenity reservation, estoppel request, hurricane prep) now requires an electronic signature before it can be submitted. Three sign methods are offered side-by-side: ✍️ type your name (rendered in a cursive font), draw with your finger or mouse on an HTML5 canvas, or upload a PNG/JPG of an existing signature. Required consent checkbox cites the federal E-SIGN Act and Florida's Uniform Electronic Transactions Act. Audit trail captured automatically on submit: IP address, timestamp, user agent, and a SHA-256 hash of the form payload — if anyone edits the form later, the hash mismatches and a tampering warning appears next to the signature. The signature renders both in the on-screen detail view and on the printable permit (drawn/uploaded images are embedded inline). Note: not legal advice — confirm with your counsel before relying on this for binding contracts.

Improved May 12, 2026 See it live →

Work orders — assign to employees, not just board members

The 'Assigned to' dropdown on work orders now includes all active employees (contractors, vendors, maintenance staff) alongside board and management roles. If an employee has a title on file (e.g., 'HVAC Technician', 'Pool Service'), that title shows in the dropdown. This means you no longer need to create a board-role account just to route a work order to your plumber or landscaper.

Improved May 12, 2026 See it live →

Insurance — attach policy documents directly to each record

The insurance record edit view now includes an attached documents section. Board admins can upload PDFs, Word docs, or images (up to 25 MB each) directly from the insurance page and they're stored with the policy record — no more uploading to the documents library and hunting for them later. Attached files are board-only and pull from the same storage quota. You can also delete individual attachments from the same view.

Improved May 12, 2026 See it live →

Employees — attach W-9s, contracts, and background checks to employee records

Board admins can now attach documents directly to an employee record — W-9s, signed contracts, background-check reports, certifications, anything relevant to that person. The upload section appears in the employee edit form (board admin only). Attached files are board-only access, stored in the same upload quota, and can be individually deleted from the same view.

Improved May 12, 2026 See it live →

Employee financial details gated to board admins only

Pay type, pay rate, and salary information on employee records is now visible and editable only by board admins and super admins. Board members and property managers can still view and update everything else on an employee record (name, title, contact, status, notes) but pay details are hidden. This separates the operational view from the financial one without splitting the page into two separate access tiers.

New May 12, 2026 See it live →

Forms library expanded — 8 new types + Bellair-card guest form

Guest registration now matches the official Bellair Registration Card (10/2025) — Name, full address, total in party + names of all others, Car license (make / color / plate / state), Owner / Family / Guest-of-Owner / Tenant / Guest-of-Tenant radio, house-rules-acknowledged checkbox (required), and Emergency contact (name + phone) fieldset. Eight new form types alongside: 🔧 Maintenance request (issue kind + urgency + access instructions), 🐕 Pet registration (species + breed + weight + vaccinations + emergency vet), 🚗 Resident vehicle registration (permanent, distinct from temp parking), 🔨 Contractor / work notice (dates + hours + access), 🎉 Amenity reservation (clubhouse / pool deck / BBQ pits with deposit acknowledgement), 🌪️ Hurricane prep checklist (storm name + staying vs evacuating + a 9-item checklist), ☎️ Emergency contact submission (who to call if you're unreachable), 📨 Estoppel / sale request (title companies for closings). All print as permits with the big confirmation code. On unit pages the form launchers are now inline text links instead of big cards.

New May 12, 2026 See it live →

Meeting minutes, maintenance-to-WO, and forgot-password rate limiting

Three things shipped together. (1) Board meeting minutes: a new Minutes page in the dashboard lets the board record official meeting minutes with a rich-text editor (Quill), attendee list, meeting type (Regular / Special / Annual / Executive Session), and date. All members can read; only board admins and property managers can create or edit. (2) Maintenance request → Work Order: when a member files a maintenance request form, board admins now see a 'Convert to Work Order' button on the submission detail that pre-fills the work order title, priority, description, location, and access instructions from the form payload. (3) IP rate limiting on the forgot-password page: the page now caps at 5 reset-link requests per IP address per hour and returns a clear error if exceeded. Previously there was no per-IP cap — an attacker could spam unlimited reset emails from a single connection.

New May 12, 2026 See it live →

Forms: guest registration, parking pass, move-in/out, key requests

New 📝 Forms page at /dashboard/forms.php. Residents pick a form type, fill it out, and get an instant printable permit with a unique confirmation code (e.g. AB72-9XKM) — no waiting for board approval. Five form types to start: 👋 Guest registration, 🅿️ Temp parking pass, 📦 Move-in notice, 📤 Move-out notice, 🔑 Key/fob request. Each form prints as a tilted-letterhead permit with the big confirmation code, valid-from/through dates, vehicle plate or guest name, and your unit. Board sees the full log + can revoke any permit (with optional reason). On the unit detail page, a Forms section shows recent submissions and quick-launch tiles for each form type. New form types are a one-line ENUM addition for the future.

Improved May 12, 2026 See it live →

Rules: filter by category

The Rules page search bar gained a Category dropdown alongside the existing Source filter. Categories come from your curated list plus any legacy categories still in use on existing rules (so old imports stay filterable). Live search now also honors source + category so typing 'noise' with Category=Pets returns only pet-related noise rules. The Print button passes the category filter through, and the printed cover meta line shows it ('159 rules · matching "pet" · category: Pets').

Improved May 12, 2026 See it live →

Renters: Settings and Committees hidden

Renters no longer see the Settings or Committees links in the sidebar, and the pages themselves redirect renters back to the dashboard if they hit the URLs directly. Settings exposes association admin info that's not useful to tenants; Committees are an owner/board space and renters already can't join. Owners and board members are unaffected.

Improved May 12, 2026 See it live →

Renters: no ARC submissions, no committee joins

Two owner-only privileges are now properly enforced. Renters can still view what their building is up to but can't file Architectural Review requests (an exterior change is the owner's call, not the tenant's) and can't self-join committees (membership is for unit owners). The 'New request' / 'Join' buttons hide for renters; the empty state shows a friendly note pointing them at the unit owner. Owners and board members are unaffected.

New May 12, 2026 See it live →

ARC → Work Order, nav tidy-up, cleaner member edit

Approved (or any) ARC request can be promoted to a Work Order with one click — same pattern as concerns. Use it when the HOA needs to inspect after completion or do related work on the common area. The WO is pre-filled with the ARC's title, body, and unit, and back-links via source_arc_id; the ARC detail page shows a 'Linked work orders' card listing every WO spawned from it. The WO header also shows a 🏗 'from ARC #N' badge for the reverse link. Sidebar: Events moved up under Announcements (used to sit below Documents/Rules). Directory: when editing a single member, the Board + Residents listing below the form is now hidden — replaced by a 'Back to directory' button so the page isn't scroll-heavy.

New May 12, 2026 See it live →

Concerns can now say who or what they're about + cite rules

The Submit-a-concern form has a new optional 'Who or what is this about?' section with three pickers: a type-ahead member search ('the loud party was at John in 412'), a unit dropdown ('happened in Unit 217'), and a rule citation chip widget ('violates rule 3.4 No barbecues on balconies, type to filter by number or keyword, click chips to remove'). On the concern's detail page the targets surface in a warning-yellow card visible only to the board and the submitter — the person named never sees they were named. Foundation for proper rule-violation tracking down the line.

Content May 12, 2026 See it live →

Marketing site refreshed with the new feature set

The public home at soshiny.com now shows what's actually been built: 12 hero feature tiles (Rules, Documents, Announcements, ARC, Work Orders, Concerns, Events, Committees, Directory, Public Landing, Parking & Units, Global Search) plus a 'boring-but-essential' strip below (Insurance, Employees, Contacts, FAQ, Media, Locations, Storage, Activity log, Print everything). Hero copy and FAQ refreshed too — pricing bullets now honestly call out 1 GB free + $5/mo per extra GB instead of the old 'Unlimited storage' line.

New May 12, 2026 See it live →

Architectural review + global search + insurance tracker + settings bug fix

Three new tools and a critical bug fix: 🏗 Architectural Review at /dashboard/arc.php — owners submit requests to change anything exterior (paint, dish, deck, windows, landscaping) with category, dates, contractor info, estimated cost. Board reviews with a thread, approves / denies / approves-with-conditions, and the submitter gets an email when the decision lands. 🔎 Global search box in the top bar — one search hits rules, documents, announcements, events, concerns, ARC requests, and members. Click any result to open it directly. Honors access controls (board-only docs hide from non-managers, members see only their own concerns + ARC). 📋 Insurance + COIs at /dashboard/insurance.php — track the association's policies and contractor certificates of insurance. Status badges color-code by expiry: expired (red), 30 days (yellow), 90 days (blue), beyond (green). Optional link to the actual PDF on file. 🛡 BUG FIX: editing the Association profile (name / slug / address) used to also wipe the Landing content (vision, about, amenities, contact info, social links) because both forms posted to the same handler that overwrote every column. Each form now scopes its update to its own field set.

Improved May 12, 2026 See it live →

Employees: type-ahead member picker

Replaced the giant member dropdown on the employees form with a type-ahead search box. Start typing a name or a unit number and the matches filter live (up to 10 results). Arrow keys + Enter to pick, click to pick, Escape to dismiss. Form refuses to submit unless an actual member is selected (no more 'I typed the name but the dropdown didn't match'). Also flipped all 189 imported pending Bellair residents to active so they show up properly in counts and visibility checks.

Fixed May 12, 2026 See it live →

Storage breakdown shows real names + a funny 404 page

The storage breakdown page now lists each file by its title (e.g. '2026 Bylaws.pdf' instead of the UUID filename) for documents and media, with the raw filename underneath. Clicking a document used to return 'Bad request' because the URL was missing the type parameter — fixed in both the storage page and the My documents card on profile (now correctly /dashboard/file.php?type=document&id=N). Also added a friendly 404 page — when a URL doesn't exist, you get a tiny HOA Violation Notice card with a randomized joke instead of Apache's default page.

Improved May 12, 2026 See it live →

Committees: collapsed descriptions + Make chair / Step down on existing members

Long committee descriptions now collapse to about three lines on the listing with a 'Show more ▾' / 'Show less ▴' toggle, so multiple committees fit on the screen at once. Short descriptions render in full with no button (auto-detected). Per-member rows in the manage table now have ⭐ Make chair (promotes them and demotes the current chair) and Step down (demotes the current chair to a regular member) buttons next to Remove, so admins can rearrange the roster without removing and re-adding people.

New May 12, 2026 See it live →

Storage breakdown — see where your space is going (Drive-style)

Click the 💾 Storage widget at the top of the dashboard to open a new breakdown page. Headline shows total used / quota with a Drive-style stacked bar split by category — Documents, Photos & inline images, Member headshots, Logo & branding, Other. Below that, each category gets its own card with the 50 largest files (name, size, upload date) and a Manage link to the page where you can delete them. Documents and branding files link directly to their viewer so you can preview before deciding. Makes cleaning up much easier than scrolling through the document or media list trying to find the big ones.

New May 12, 2026 See it live →

Storage quota tracking — 1 GB free + $5/mo per extra GB

Every association now gets 1 GB of file storage free. A 💾 Storage widget at the top of the dashboard (managers only) shows current usage as a colored progress bar that turns yellow at 75% and red at 95%. Documents, media, and inline-image uploads check the quota before saving and refuse with a friendly message when an upload would put you over — no silent disk fill. The widget includes a 'Need more? $5/mo per extra GB · Contact us' link that emails success@soshiny.com. Super admin can grant paid GB to any association via /admin/associations.php (edit form → Storage section) until self-serve checkout exists.

New May 12, 2026 See it live →

Employees — track owner-employees, contractors, and volunteers

New Employees page at /dashboard/employees.php for the board to track anyone the association pays or relies on. Independent of role and owner status — an owner can also be the maintenance person, a board member can be an unpaid volunteer, a contractor can be on retainer. Each record: job title, type (Employee / Contractor / Volunteer), pay type (Hourly / Salary / Flat / Unpaid), start/end dates, status, and notes. The directory's Owner / Renter column now shows a small 💼 'job title' chip next to the owner badge when the person also has an active employment record. The user's own profile page gets a 💼 Your employment card showing what the board has on file (read-only).

New May 12, 2026 See it live →

Click any announcement or event to open the detail view, print it individually

Every announcement and upcoming event on the dashboard (and on the Announcements / Events full listings) now leads with a colored Month / Day calendar tile and is clickable end-to-end. Clicking opens a detail page with the full title, audience, timestamps, body, and a 🖨 Print button. Single announcements print via /dashboard/announcement-print.php with the date tile + letterhead on top; single events print via /dashboard/events-print.php?id=N (recurring series also list their next 12 occurrences in both the screen view and the printout). The Upcoming events column on the dashboard gets its own 🖨 Print link in the header that prints the next 60 days of events.

New May 12, 2026 See it live →

Dashboard refresh + suggestion edit button + filter-aware rule print

Dashboard tiles are now a 4-across grid with a colored icon, label, and big tabular-numeral count on each card — twelve tiles in total. Pending rule suggestions moved off the Rules tile into its own dedicated 🚩 tile that gets an orange left-edge when anything is awaiting review. New Board & mgmt tile shows the headcount and jumps straight to the Board section of the directory. Concerns tile gets the same orange edge when something's open. Above the tiles the page now shows a live local clock and date that ticks every 30s — same JS also drives the morning/afternoon/evening greeting from your browser's clock so 3:30 PM EDT reads correctly. Sidebar also gets a 🌐 Public site link that opens /<your-slug>/ in a new tab. Rule suggestions queue gets a dedicated ✏️ Edit button alongside Approve/Reject so cleaning up wording no longer requires going through the Approve form. The Print button on Rules is now context-aware: if you've searched or filtered by source, it becomes 'Print results' and prints only what's on screen. Suggestions queue also gets its own Print button.

Improved May 12, 2026 See it live →

Compact 3-column parking print is now actually compact

The 3-column parking print used to render each spot as a 3-line card (kind on top, big number, then unit + owner). For 80+ spots that filled multiple pages. Reworked to a one-line-per-spot layout — number first in bold, then a small kind tag, then the unit + owner inline. Tighter page margins (0.35in) and smaller type let a full Bellair lot fit on one or two pages.

Improved May 12, 2026 See it live →

Denser Print-all-rules + dashboard greeting reads local time

Print-all-rules now renders in two columns with tighter margins (0.4in) and slightly smaller type, so a full ruleset fits in roughly half the pages it used to. Each rule still breaks cleanly without splitting mid-block. Separately, the dashboard greeting (Good morning / afternoon / evening) was wrong for anyone not on UTC — the server clock is pinned to UTC and PHP was always computing the time of day from that. A tiny JS now overwrites the greeting using the browser's local time, so 3:30 PM EDT correctly reads 'Good afternoon'.

Fixed May 12, 2026 See it live →

Picking a board office auto-promotes the role

Before: setting a board office on a member whose role was Resident or Renter silently dropped the office (since offices only apply to board roles). The form gave no feedback, which is exactly how Polly and John ended up appearing not to save. Now: picking any board office on a resident or renter auto-promotes them to Board member (least-privilege board role), and the success flash spells out what happened. Property managers keep their existing role.

Fixed May 12, 2026 See it live →

Board landing + directory now include pending members

Imported residents come in with status=pending until they sign in for the first time, but the 'Meet your board' landing section and the dashboard Board card were both filtering for status=active only — so a board member like Scott Bender (imported, marked as Director, set to show on the public landing) was being hidden. Fixed: both views now include everyone except status=inactive. Same fix applied to the Print contacts + board view.

New May 12, 2026 See it live →

Announcements: schedule + auto-expiry, deactivate moved to edit form

When you post an announcement you can now set a Start posting at time (defaults to now — schedule something for next Monday morning if you want) and pick how long it stays up: 1 day / 1 week / 2 weeks / 1 month / 3 months / pick a specific date / never expires. Members only see live announcements. The Announcements page header has a 'Show all' toggle so managers can review scheduled + expired posts; live posts also show a small 'expires Mar 14' hint, and the card visibly dims once expired. Directory's Deactivate button moved out of the listing rows and is now next to Save on the member edit form — fewer click targets per row and harder to misclick on the wrong row.

New May 11, 2026 See it live →

Work Orders + per-member documents + nav cleanup

New /dashboard/work-orders.php for admin-only operational tickets: open / in-progress / blocked / completed / closed, with priority, location, unit, assignee (board / PM), contractor (from your Contacts), cost estimate + actual, due date, and a full timeline that interleaves status changes with free-text notes. Concerns now have a 'Convert to Work Order' button that pre-fills a new WO from the concern's text and back-links them — you can see all WOs spawned from a concern right at the top of its detail page. Documents now accept an optional 'Attach to member' value alongside the existing 'Attach to unit' — a lease, an appointment letter, or any other paperwork tied to a specific person surfaces on their profile under My documents. Communications was renamed to Announcements and moved up near the top of the sidebar.

New May 11, 2026 See it live →

Board officer titles + contacts overhaul + rule-suggestion edits

Board members + property managers can now hold an officer title (President, Vice President, Secretary, Treasurer, Secretary-Treasurer, or Director). The title shows on the directory and "Meet your board" landing section in canonical order — President first. It's display-only; admin capabilities still flow from the role. Contacts page is now a single flat list (no more per-category sections) with two new print buttons: contacts-only, and contacts + board members & managers. Admins can also now edit a pending rule suggestion's wording before approving — a new Save edits (keep pending) button lets you clean up text without committing yes/no. Dashboard event count now correctly includes recurring occurrences (a weekly meeting seeded back in March still shows on the tile).

New May 11, 2026 See it live →

Dashboard refresh + printable event lists

Dashboard now opens onto a two-column layout — Recent announcements on the left, Upcoming events on the right — so the board can scan both at a glance. The stat tiles got a working Units link (to /dashboard/units.php), an accurate member count that includes pending residents, and three new tiles: Events (with upcoming count), Concerns (with open-count badge), and FAQs. The Events page also got Print buttons for Today / This week / This month — clean print-ready lists grouped by day, audience-scoped, with the association's letterhead and copyright footer.

New May 11, 2026 See it live →

Rules: flag for board review

Managers can now flag any rule for board review with an optional note ("conflicts with bylaw 5.2", "language needs updating", etc.). Flagged rules carry a red "Needs review" badge in the listing and a banner on the rule's detail page. One click to clear the flag once handled.

New May 11, 2026 See it live →

Compose documents inline + print any rule or document

Documents page now has a Compose button alongside Upload — write the document directly in a rich-text editor (headings, bold/italic, lists, blockquotes, inline images) instead of uploading a Word or PDF file. Every composed document and every rule now has a Print button that opens a clean print-friendly view and triggers the browser's print dialog, so save-as-PDF and paper copies work cleanly. Print-all-rules-in-number-order is also available from the Rules header.

Design May 11, 2026 See it live →

Rules: number-first layout + category as a pill + open one rule at a time

Each rule in the listing now leads with its rule number in bold navy, followed by the source pill (bylaw / board rule / policy) and the category as its own warm-yellow pill. The default sort is by rule number (the way the board references them). Click Open on any row to view that one rule on its own page. Rule suggestion + rule category rename are now available to managers too (previously only members could suggest, and categories could only be added or deleted).

New May 11, 2026 See it live →

Units: annual HOA and garage assessment amounts

Each unit now tracks an annual HOA assessment and an annual garage assessment (separate, since not every unit has a garage). Visible on the unit detail page header and editable on the unit form. CSV import accepts two new optional columns (annual_hoa_assessment, annual_garage_assessment).

Design May 11, 2026 See it live →

Copyright footer on every page

Every page now carries "© 2026 Savvy Brain LLC and Kevin B. Leigh. Powered by SoShiny." Marketing site keeps the existing fat footer; dashboard and admin layouts get a tight single-line stripe.

New May 10, 2026 See it live →

Personal headshots + about-me bios

Every signed-in user can now visit /dashboard/profile.php to upload a headshot (PNG, JPG, or WEBP, 4 MB max) and write a short bio. Headshots show up next to your name in the directory, on board-member cards on the community landing page, and at the bottom of the sidebar where you click to edit. Bios appear under your role badge on the public landing for board members who've opted into showing on it.

New May 10, 2026 See it live →

Contacts directory: emergency lines, utilities, and recommended contractors

New /dashboard/contacts.php (manager-only) lets the board list emergency and non-emergency phone numbers, utility providers, and suggested contractors by trade. Items marked public render on the community landing in an "Important numbers" section. Contractors carry an auto-disclaimer that the association doesn't guarantee their work. The Settings page's Main email and Main phone fields are now labeled clearly (they were always there, just buried as "public contact").

New May 10, 2026 See it live →

Vision statement on the public landing + FAQ CSV import

Settings has a new Vision Statement field that renders prominently above the About section on the public landing. FAQ now supports CSV bulk-import (question, answer, optional sort_order) and shows when each FAQ was last updated.

New May 10, 2026 See it live →

Units: CSV bulk import + garage / parking spot tracking

Register dozens of units at once from a spreadsheet — required column is unit_number, plus optional type, bedrooms, baths, square_footage, ownership_percent, garage_number, parking_spot, and notes. Re-importing the same unit_number updates instead of duplicating. Garage and parking-spot fields acknowledge that those numbers often differ from the unit number (your unit 421 might have garage 64). Locations also picked up an optional category field so garages, event spaces, and amenities don't all sit in one bucket.

Improved May 10, 2026 See it live →

Documents: edit metadata + expandable descriptions

Documents in the listing now have an Edit button (board/PM only) for changing title, description, category, access level, or unit assignment without re-uploading. Long descriptions clamp to two lines with a Show More toggle so the table stays scannable.

New May 10, 2026 See it live →

Concerns: complaints, compliments, and suggestions

Any signed-in member (resident or renter) can submit a concern — complaint, compliment, or suggestion — with an optional anonymity toggle. The board sees an inbox with status filters (open/new/in-progress/resolved/closed) and a counter banner for items awaiting attention. Each concern has a discussion thread with regular replies plus board-only internal notes. Resolved concerns can carry a resolution summary that's emailed to the submitter.

Improved May 10, 2026 See it live →

Mailing addresses for absentee owners + new "Beautification" announcement category

User profiles now have an optional mailing address that's used when an owner lives somewhere other than the unit they own (typical when they're renting their property). Communications gained a Beautification category alongside General, Event, Maintenance, Emergency. Long rule bodies on the Rules page now collapse to four lines with a Show More toggle. The dashboard's Quick Actions side panel was removed — every action it surfaced is one click away in the sidebar.

New May 10, 2026 See it live →

Co-owners, tenants, and per-unit documents

Each registered unit now tracks every person living in it — primary owner, co-owners, and tenants — independent of the single-string unit_number on a user record. Managers can add/edit/remove occupants from a unit detail page (/dashboard/unit.php) and upload documents scoped to that specific unit (rental agreements, deeds, insurance certificates). The new "Unit only" access level on documents means a rental agreement is visible only to the people listed on that unit plus the board.

Improved May 10, 2026 See it live →

At-a-glance dashboard tiles: rules, photos, and total members

The dashboard home now shows seven counts you can click into instead of five — Members (every active user), Units, Rules, Documents, Photos (image media), Posts, and Committees. The grid auto-fits so it stays tidy on narrow screens.

Design May 10, 2026 See it live →

Each association's logo and name now anchor the dashboard

Sign in to your dashboard and the top of every page now shows your association's branding (logo + name + city) instead of the generic SoShiny mark. The collapse toggle for the side navigation moved up there too, so it stays visible and clickable whether the sidebar is expanded or collapsed.

Improved May 10, 2026 See it live →

Renters see only board contacts in the directory

Privacy update: renter accounts now see only the Board section of the Directory page — no full resident roster, no other unit owners' contact details. Owners and managers see everything as before.

Fixed May 10, 2026 See it live →

Rules page now lists all rules, not just search hits

Visiting /dashboard/search.php with no search term used to show "No rules on file yet" even when hundreds of rules were imported. Now the page defaults to a most-recent listing (200 rows), and search narrows it down. Imports were always landing in the database correctly — just invisible until you typed a query.

New May 10, 2026 See it live →

Building locations: curate the spaces in your property

Managers can now add named locations (Clubhouse, Pool deck, Roof terrace, …) at /dashboard/locations.php, with optional descriptions and an active/inactive flag. The Events form auto-suggests from this list while still accepting free-text. The locations table is also the foundation for the maintenance work-order flow we're building next.

New May 10, 2026 See it live →

Members can suggest rules; board approves with a final adoption date

Any signed-in member (resident or renter) can submit a rule suggestion via a new form on the Rules page. The board sees a banner alert and a counter badge when suggestions are pending. Approving opens an editable inline form with all the suggestion's fields plus an adoption date — submit and it becomes a real rule with that date as the effective date. The suggester is emailed on either decision (approve or reject, with optional note).

New May 10, 2026 See it live →

Recurring events: weekly board meetings, monthly socials, etc.

Events now have a Repeats option (daily, weekly, biweekly, monthly, or none) plus an optional repeats-until date. Series are stored as a single row; occurrences are computed at display time and shown both on the dashboard listing and on the public community landing — no need to re-create a meeting every Tuesday.

Improved May 10, 2026 See it live →

Property managers now have full management rights, plus a "View as" lens for the board

Property managers can now add, edit, and delete content across the dashboard alongside board members and board admins (residents and renters remain view-only). Board users also get a new View-as toggle in the sidebar — preview the dashboard exactly as a homeowner or renter sees it (manage controls hidden, board-only documents suppressed) and one click to return to your normal view.

New May 10, 2026 See it live →

Per-association activity log for the board

New /dashboard/activity.php page (board members, board admins, and property managers only) shows every audit event scoped to your association — who added a rule, deleted a document, posted an announcement, etc. Filter by action, actor, or date. When a SoShiny admin signs in as a user to help with support, the activity log makes that visible with a small "via SoShiny support" tag on the actor.

New May 10, 2026 See it live →

Document categories you can manage

Document uploads now use a curated category dropdown (Bylaws, Minutes, Insurance, Forms, Renters, General by default). Board users can rename categories — and the rename propagates to every existing document tagged with the old label — or add and delete categories from a Manage page accessible right from the upload form.

New May 10, 2026 See it live →

Send invitations and password resets from the admin panel

On /admin/users.php, leave the password field blank when creating a user and they'll get an emailed invitation with a link to set their own password (status starts as pending; first password set promotes them to active). Each existing user row now also has a Reset button that emails them a one-hour reset link. Welcome and invitation emails read "from your association" instead of generically from SoShiny.

New May 10, 2026 See it live →

SoShiny is live in production

https://soshiny.com is now serving the real SoShiny stack — marketing site, signup, login, board dashboards, super-admin panel, public community landings, the works. Real SMTP is wired (success@soshiny.com via smtp.hostinger.com:465), so password reset, signup notifications, and the contact form all send actual email instead of writing to a log file.

New May 10, 2026 See it live →

Events calendar — board meetings, socials, work parties

New /dashboard/events.php page (board admins create/edit/delete; signed-in members see read-only). Each event has title, start + optional end, location, description, and audience (Public / Members / Board). Public events render in an Upcoming events section on the community landing, with a calendar-tile date format. Past/upcoming + audience filters in the dashboard listing.

New May 10, 2026 See it live →

Embedded map on community landing

When a board admin saves a real address on /dashboard/settings.php, we geocode it via Photon and store latitude/longitude. The /{slug}/ landing then renders an OpenStreetMap iframe centered on the property — no API key, no fees. The address-only "View on map →" link still works as a fallback.

New May 10, 2026 See it live →

Social links in the landing footer

Five new fields on /dashboard/settings.php: Website, Facebook, Instagram, X/Twitter, Nextdoor. Each one renders as an inline-SVG icon in the landing footer when set. Empty fields render nothing. URLs auto-prefix with https:// if the board pasted just a domain.

Security May 10, 2026 See it live →

Per-board-member opt-in for the public landing

Board members are no longer auto-listed on /{slug}/ — they have to explicitly opt in via /dashboard/directory.php (Edit member → "Show in Meet your board"). Default is off. Migration 011 added show_on_public_landing to users; existing rows default to 0 so nobody is exposed without consent.

New May 10, 2026 See it live →

Meet your board, public documents, and View-on-map link

Three more sections on the public landing: (1) Meet your board — auto-listed from active board roles, shown as first-name-plus-last-initial cards with role badges; (2) Documents & forms — anything in /dashboard/documents.php with access_level=public, served via the new /public-document.php gatekeeper; (3) View on map — link in the hero address that opens the property location in Google Maps.

New May 10, 2026 See it live →

FAQ + contact form on the public landing

Added FAQ section and a real contact form to /{slug}/. Boards manage FAQs at /dashboard/faq.php (Q + A, sort order, edit/delete). Contact form is CSRF-protected, has a hidden honeypot field for spam, validates name + email + min 10-char message, and emails the association's contact_email (or admin_email fallback) via the existing send_mail() pipeline. Submission audit-logged.

New May 10, 2026 See it live →

Public landing page is now a real community website

Added five content sections to /{slug}/: hero banner image, formatted About paragraph (Quill), Amenities list (one per line, two-column grid), public photo gallery (auto-pulled from media with visibility=public), and Contact info card (email + phone). All editable on /dashboard/settings.php (board admin only). Sections render only when content exists, so nothing looks empty if a board hasn't filled it in yet.

Fixed May 10, 2026 See it live →

Landing page silently failing on public-announcement query

The announcements query on /landing.php joined the users table (for author names) but selected `id` unqualified. Both tables have an `id` column, so MySQL threw an ambiguity error and the page died — visitors saw a 302 to /login.php instead of the community page. Qualified the column names. Public announcements feed now renders correctly.

New May 10, 2026 See it live →

Board admins can customize their community URL slug

/dashboard/settings.php has a new Slug field that controls /{slug}/ — the public-landing URL. Format-validated (a-z, 0-9, hyphens), uniqueness-checked across all associations, and audit-logged when changed. Comes with a clear warning that changing breaks any existing bookmarks.

New May 10, 2026 See it live →

Public announcements feed on the community landing

Announcements posted with audience=all now render on the public /{slug}/ landing page — eight most recent, with type badge, date, author, and a 360-char excerpt. Board-only or owners-only announcements stay private.

New May 10, 2026 See it live →

Per-association public landing page at /{slug}/

Each association now gets a public, branded community page at https://soshiny.com/{slug}/ — name, address, logo, primary-color accent, and a sign-in CTA. Opt-in via Settings → Show public landing page (default off). Logo upload is also now in the Settings form (PNG/JPG/SVG/WEBP, max 1MB). Real paths like /dashboard/, /admin/, /login.php, /assets/ all take precedence so the rewrite never collides.

New May 10, 2026 See it live →

Real address autocomplete (Photon/OSM)

Type a partial street address on /signup.php, /admin/associations.php (edit), or /dashboard/settings.php and see a dropdown of real places. Click one to auto-fill street, city, state/province, ZIP, and country. Powered by Photon (komoot.io) — free, no API key, OpenStreetMap data. ZIP-only lookup is still wired as a fallback.

New May 10, 2026 See it live →

Per-unit details (bedrooms, baths, sqft, ownership %, type)

New units table keyed by (association_id, unit_number). Edit-member form on /dashboard/directory.php now has a Unit details section that upserts the unit row when you save. Properties belong to the unit so two members in the same unit share them.

Fixed May 10, 2026 See it live →

Dashboard 'Units' tile now counts actual registered units

Was reading the static unit_count capacity from association settings. Now counts distinct unit numbers across active + pending members — matches what you actually see in /dashboard/directory.php.

Improved May 10, 2026 See it live →

Removed change-password card from association settings

Settings page is association-level (name, address, branding) — password changes are person-level. Users who want to change their password use /forgot.php; super admins or board admins can change any user's password via /admin/users.php or the add-member flow.

Fixed May 10, 2026 See it live →

Board admins can actually add members now

Two issues — labeled the action "+ Add member" instead of "+ Invite", and fixed a real bug where new users were created with status=pending which silently rejected them at login. They now start as status=active and can sign in immediately with the password you set or the auto-generated one we email them.

Improved May 10, 2026 See it live →

Removed demo-credentials hint from /login.php

The login page used to show local-dev demo logins. Removed for cleaner production-grade UX.

Security May 10, 2026 See it live →

Super admins can reset any user's password

User edit form on /admin/users.php now has a Change Password section. Set a new bcrypt-hashed password directly, or click Generate Random for a 14-char password from a non-ambiguous charset (no I/l/O/0). Saving invalidates any outstanding password-reset tokens for that user. Audit-logged separately as user.password_changed_admin.

New May 10, 2026 See it live →

ZIP / postal-code auto-fill

Type a US ZIP or Canadian postal code on /signup.php, /admin/associations.php (edit), or /dashboard/settings.php and the city + state/province auto-populate. Powered by Zippopotam.us — free, no API key. Manual entry still works for international addresses or if the API is unreachable.

New May 10, 2026 See it live →

Super admins can edit any user

/admin/users.php now has an Edit button on every row — full edit form for name, email, phone, role, association, unit, status, owner flag. Email-uniqueness check; self-lockout guard prevents super admins from demoting or deactivating their own account.

New May 10, 2026 See it live →

Public changelog launched

This page. Every meaningful change to SoShiny is logged here, categorized, and dated.

Fixed May 9, 2026 See it live →

Geocoding now runs on first save when lat/lon is missing

Previously the geocode-on-save check only fired when an address field changed, so associations with an existing address but no stored coordinates never got geocoded — and their map section stayed hidden. The check now also triggers when latitude or longitude is empty, so simply hitting Save once will populate coordinates and reveal the map.

Content May 10, 2026 See it live →

Hero headline + lede rewrite

New headline: 'Transparent, Simplified and Built for Your Community.' New lede pays off the three words — every feature on every plan, in one portal your board can run and your community will actually use.

New May 10, 2026 See it live →

Signup detail view for super admins

Each pending signup row has a 'View' button that opens a clean detail card with full address, contact info (with mailto: + tel: links), submitted timestamp, and inline approve/reject buttons.

New May 10, 2026 See it live →

Structured address fields with US/Canadian state datalist

Replaced the freeform address input on /admin/associations.php, /dashboard/settings.php, and /signup.php with separate Street / City / State-Province / ZIP-Postal / Country fields. Type-ahead datalist lists every US state and Canadian province; free text still allowed for international.

New May 10, 2026 See it live →

Edit any association from the super-admin panel

/admin/associations.php now has an Edit button on every row — lets super admins update name, slug, address, plan, status, and primary color. Slug uniqueness enforced; audit-logged on save.

Design May 10, 2026 See it live →

Refined logos + bigger nav lockup

Brand logos shipped to /assets/images/. Public top nav uses the color version (now 56px tall in an 88px nav bar for readability). Sidebars use the white version with the SoShiny Symbol for the collapsed-icon state.

Fixed May 10, 2026 See it live →

Hero CTA contrast over video

Inverted the hero overlay so the darkest pixels sit where copy lives (was backwards). Orange CTA now has a subtle white inner ring + drop shadow so its silhouette holds against any video frame. Ghost button bumped to a stronger frosted-glass treatment.

Fixed May 9, 2026 See it live →

Nav button text now stays white on orange

The site-nav anchor color rule was overriding button text color. Scoped it to :not(.btn) so primary buttons keep their white-on-orange treatment regardless of context.

Design May 9, 2026 See it live →

Full-bleed video hero

Replaced the YouTube iframe with a self-hosted MP4 background video and overlaid the hero copy on top. Centered single-column layout, navy radial overlay for text legibility, dark-mode-friendly button styling, reduced-motion fallback.

New May 9, 2026 See it live →

Rules CSV import + downloadable template

Board admins can bulk-import rules via CSV at /dashboard/search.php?action=import. Required columns: title, body. Optional: rule_number, category, source, effective_date. Unknown categories auto-create. Template available at ?download=template.

New May 9, 2026 See it live →

WYSIWYG editor + image upload on rules

/dashboard/search.php?action=new now has a Quill 2.0.2 editor for rule bodies. Toolbar includes formatting, lists, links, and an image button that uploads directly into the rule via /dashboard/upload-image.php (board admin only, MIME whitelist, 8MB cap, served via the existing file gatekeeper).

New May 9, 2026 See it live →

Rule categories with management UI + effective dates

Categories are now first-class — create / list / delete via /dashboard/search.php?action=categories. The new and edit-rule forms use a category dropdown (with an 'Add new' link). Each rule also has an effective_date input.

Design May 9, 2026 See it live →

Left-sidebar layout for dashboard + admin

Replaced the horizontal top-nav on /dashboard/ and /admin/ with a fixed left sidebar (collapsible to icons-only, mobile slide-over). Persistent collapse state, active-link highlighting, brand logo + user info + sign out all in one place.

New May 9, 2026 See it live →

Activity log viewer for super admins

/admin/activity.php — paginated audit log (50/page) with filters for association, action, actor, and since-date. Pulls every audit event across every tenant. Linked from the audit-events stat tile on /admin/.

New May 9, 2026 See it live →

Committees with chairs and members

New /dashboard/committees.php — board admins can create committees (e.g. Rules, Beautification, Architectural Review), add or remove members, designate a chair (auto-demotes prior chair), and delete the whole committee. Committee count is a clickable stat tile on the dashboard.

New May 9, 2026 See it live →

Member directory: edit + CSV bulk import

Board admins can now edit any member (name, unit, role, email, phone, owner status, status) and bulk-import a roster via CSV. Sort is a proper alphanumeric natural sort — 101, 101A, 102, B2 in the right order. Owners-only filter.

Improved May 9, 2026 See it live →

Dashboard stat tiles are clickable

Every stat card on /admin/ and /dashboard/ is now an anchor that navigates to the relevant management page. Hover gives a subtle lift, an arrow slides in, and the value goes orange.

Content May 9, 2026 See it live →

Pricing model finalized

$20 flat for up to 10 units, $0.50/unit for 11-100, $0.75/unit for 101+. 30-day free trial included. Every plan includes every feature — no tier-gating on SSO, API access, or audit log export. Calculator updated, all four pricing cards show identical features.

Design May 9, 2026 See it live →

Inter typography throughout

Switched from Syne to Inter as the single typeface for the whole site. Hierarchy comes from weight + size + tight negative tracking on display-sized headings.

Fixed May 9, 2026 See it live →

Pricing calculator field can be cleared during typing

Clearing the unit-count input no longer snaps the value back to 50. Empty state is allowed mid-typing; on blur the field falls back to 50 only if it's still empty or invalid.

Security May 9, 2026 See it live →

Password reset flow + change-password card

Added /forgot.php and /reset.php with SHA-256 hashed tokens, 1-hour TTL, single-use, anti-enumeration messaging. Plus a 'Change your password' card on /dashboard/settings.php for already-logged-in users. Outstanding password reset tokens are invalidated when the user changes their password.

Fixed May 9, 2026

Pinned every PDO connection to UTC

Discovered during password reset testing — MAMP MySQL ran in EDT while PHP defaulted to UTC, causing 1-hour reset tokens to look already-expired. db.php now sets time_zone='+00:00' on every connection so PHP's time() and MySQL's NOW() agree.

New May 9, 2026 See it live →

Phase 1 launched

Multi-tenant SaaS for condo and HOA associations. Public marketing site, board dashboard, super-admin panel, full design system, 11-table schema with audit log, file uploads with secure gatekeeper, CSRF + login throttling, role-based access. Initial 6 dashboard pages: home, documents, rules, directory, communications, media, settings.