A discussion on improving the logged-out experience
Logged Out | Logged In | |
---|---|---|
No Account | Some Access | --- |
Has Account | Same ^^^ | Great Experience |
Acc W/ Large Tree | Same ^^^ | Great |
Acc W/ No Tree | Same ^^^ | Poor, can be bad |
Acc W/ Memories | Same ^^^ | Great, can share |
Acc W/ No Mem | Same ^^^ | Ok, can still look |
Acc W/ Temple Ops | Same ^^^ | Great |
Acc W/ No Temple | Same ^^^ | Disappointing |
Etc... | Same ^^^ | Good |
even though these are not the same thing
Logged Out | Logged In | |
---|---|---|
Acc W/ No Tree | --- | Poor, can be bad |
Acc W/ No Mem | --- | Ok, can still look |
Acc W/ No Temple | --- | Disappointing |
Pioneer Children's Memorial visit
10 June 2021
Experience is great if you are logged in.
You can filter to see all the people you are related too at the memorial and feel a connection to your relatives that crossed the plains.
Experience is not very great if you are a new user who has no tree.
Compound that with having just spent the last 20 min creating an account over a slow mobile connection and the experience goes from poor to disappointing.
Experience if they probably have a tree
Experience if they probably don't have a tree
Logged in | Logged out |
---|---|
Who is in the user's tree? | How many generations? |
What photos and memories does the user have? | Is the user familiar with the memories feature? |
What records has the user attached to ancestors? | Does the user research and attach records (often / recently / etc) ? |
import { useUser } from `@fs/zion-user`
// ...
const { signedIn, describe, ...user } = useUser()
const generations = useTreeGenerations(user)
useEffect(() => {
if (signedIn && generations) {
describe('tree.generations', generations.length)
}
}, [signedIn, describe, generations])
import { useUser } from `@fs/zion-user`
// ...
const { signedIn, loading, probableUsers, ...user } = useUser()
const [ primaryDeviceUser ] = probableUsers
if (signedIn) return <SignedInExperience user={user}/>
else if (!loading) return <LoggedOutExperience probableUser={primaryDeviceUser}/>
return <NoticeLoading />
// ...
function LoggedOutExperience({ probableUser }) {
return (
<>
{probableUser && (
<div>We think the logged out user might have an account.</div>
)}
<div>The default logged out experience</div>
{probableUser?.tree?.generations >= 4 && (
<div>
We also think the user has a rich enough tree to suggest
logging in will give them a feature they might want and
provide value to their experience.
</div>
)}
</>
)
}