What shipped fast
Lovable was the best first step because the portal needed data, auth, and a client-facing shell immediately. Cursor became the best second step because role checks, private records, and long-term code ownership mattered more than speed once the portal had to survive real client use.