Over the past few weeks we've shipped a steady stream of features, performance fixes, and polish to Alliances CRM. Here's a rundown of everything that's now live in production.
1. Google Sign-In — One-Click Login
New users can now sign up and log in with their Google account — no email or password required. The OAuth flow is fully wired up, and we hotfixed an edge-case render loop on the callback page, so sign-in is smooth end to end.
Why it matters: Lower onboarding friction for trial users. No passwords to remember.
2. Spanish Language Support (i18n)
The entire auth flow, page labels, and forms now support both English and Spanish. On top of that, every workspace owner can override labels per workspace (e.g. rename "Leads" to "Prospects").
We also split out the country code + phone number picker into its own component so international users get a proper phone input experience.
Why it matters: LATAM market expansion is now a realistic next step.
3. Dashboard Performance — 500 Fix + Redis Cache
Hot workspace endpoints (dashboard stats, sidebar counts) are now backed by Redis cache. We also tracked down and fixed a long-standing dashboard 500 error.
Why it matters: Noticeably faster dashboard loads for larger workspaces.
4. Demo / Showcase Account with Seeded Data
Visitors can now experience the full CRM without signing up, via a read-only demo workspace pre-seeded with leads, deals, organizations, and tasks. A server-side write guard prevents any data mutation from the demo account.
Why it matters: Perfect for sales demos, the public marketing site, and investor pitches.
5. Forgot Password / Reset Password Flow
The full forgot password → reset link → new password flow is now live, complete with email templates and tested end to end.
6. Duplicate Lead Protection
You can no longer create a Lead with a duplicate email or phone inside the same workspace. Backend validation enforces it, and the frontend surfaces a clear error message.
Why it matters: Better data hygiene — accidental duplicates from bulk imports or CSV uploads are blocked at the source.
7. Email Tab Redesign + Open Tracking
The Email tab on Leads and Contacts has been refreshed, and every outgoing email now carries open status tracking — you can see who opened your email and when. The reply catch-up flow also got some improvements.
⚠️ This feature is in production but still needs heavier real-world testing. Feedback welcome.
8. Polymorphic Deal Assignee + Searchable People Picker
Previously, Deals could only be assigned to registered users. Now any workspace member — registered or invited — can be set as the assignee. We also added a searchable picker that surfaces every person in the workspace in one place.
Why it matters: Cleaner deal ownership tracking for larger teams.
9. Inline "+ New Role" Button on the Member Invite Form
If the role you need doesn't exist when you're inviting a member, you no longer have to navigate to a separate page. A side sheet opens inline from the invite form so you can create the role right there.
10. Super Admin Tools
Three new capabilities landed in the admin panel:
- Lifetime Free Access grant — flip a switch to unlock paid features for a user permanently.
- Trial End Date override —
trial_ends_atcan now be edited manually (useful for sales requests, special deals, and so on). - Users sidebar menu — wider, padded user-management pages with a proper client-side guard.
We also shipped a bug fix: lifetime users were getting blocked by the trial-expired gate — that's resolved.
11. Call Log Avatars + Pro Monthly Member Gate Fix
Every entry in the Call Log now shows a proper avatar next to it. We also fixed a bug where Pro Monthly paid workspaces were being incorrectly blocked by the member access gate.
12. Feedback Widget — Bottom-Left, Crisp + Web3Forms Wired
The floating feedback widget moved to the bottom-left corner (it was clashing with Crisp chat in the bottom-right). Both the Web3Forms key and Crisp ID are now properly wired in the production environment.
13. Production Polish
- Default avatar now ships via
storage/app/public. - Paddle live client token is properly injected at production build time.
- Faker is now a runtime dependency, so the demo seeder works in production.
- Member invitation emails now show the real inviter's email (no more placeholder).
- The deploy script strips stray
.env.localfiles before the frontend build, keeping builds clean.
14. Small but Important UI Fix
We added consistent left/right padding across the entire app — some pages were running content right up to the screen edge on mobile and tablet.
What's Next
- Full QA + analytics for the Email tab and open tracking.
- More languages beyond Spanish.
- A richer, more diverse seeded dataset in the demo workspace.
Got feedback? Drop it via the widget in the bottom-left corner of the app — we read every message.
