Bereal Profile Viewer Page
"I tried 'BeReal Viewer Pro' – after completing 3 surveys, it showed me a fake list of 6 names. I asked two of them if they’d viewed my profile, and both said they hadn’t opened BeReal in weeks." – u/anon_bereal
"The site asked for my phone number to 'verify.' Now I get 20 spam texts a day." – Trustpilot review for berealviewer.net
"I installed an APK from a TikTok link. My account posted crypto spam to all my friends 2 hours later." – r/Scams
Before we talk about viewers, we must first understand what BeReal actually shows you. As of the latest stable version of the BeReal app (updated bi-weekly), here is exactly what you can see regarding interactions:
Unlike Instagram, LinkedIn, or Twitter, BeReal was built on a specific psychological premise: No pressure. The founder, Alexis Barreyat, has stated in interviews that the "two-minute window" and the lack of vanity metrics were deliberate choices to fight social media addiction. bereal profile viewer
If BeReal introduced a profile viewer feature, it would immediately destroy the magic of the app. Consider the consequences:
BeReal’s philosophy is "Blind Browsing." You look at your friends' days because you like them, not because you want to leave a digital footprint.
If you want, I can:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BeReal Profile Viewer</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
<style>
:root
--bg: #0a0a0a;
--surface: #141414;
--card: #1a1a1a;
--border: #2a2a2a;
--fg: #f5f5f0;
--muted: #777;
--accent: #e8e0d4;
--accent2: #c4a882;
--toast-bg: #222;
* margin: 0; padding: 0; box-sizing: border-box;
body
font-family: 'Outfit', sans-serif;
background: var(--bg);
color: var(--fg);
min-height: 100vh;
overflow-x: hidden;
/* Subtle background texture */
body::before
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(ellipse 80% 60% at 50% 0%, rgba(196,168,130,0.06) 0%, transparent 60%),
radial-gradient(ellipse 60% 50% at 80% 100%, rgba(196,168,130,0.03) 0%, transparent 50%);
pointer-events: none;
z-index: 0;
.phone-frame
width: 390px;
max-width: 100vw;
min-height: 100vh;
margin: 0 auto;
position: relative;
z-index: 1;
background: var(--surface);
border-left: 1px solid var(--border);
border-right: 1px solid var(--border);
@media (min-width: 768px)
body
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
.phone-frame
min-height: 844px;
max-height: 90vh;
border-radius: 40px;
border: 1px solid var(--border);
box-shadow:
0 0 0 4px #0a0a0a,
0 40px 80px rgba(0,0,0,0.6),
0 0 120px rgba(196,168,130,0.04);
overflow: hidden;
.scroll-area
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: none;
-ms-overflow-style: none;
.scroll-area::-webkit-scrollbar display: none;
/* Story ring */
.story-ring
background: conic-gradient(var(--accent2), #e8e0d4, var(--accent2));
padding: 2.5px;
border-radius: 50%;
transition: transform 0.3s ease, opacity 0.3s ease;
.story-ring.viewed
background: var(--border);
opacity: 0.6;
.story-ring:hover transform: scale(1.05);
.story-ring-inner
background: var(--surface);
padding: 2px;
border-radius: 50%;
/* Bereal photo style */
.bereal-post
position: relative;
border-radius: 16px;
overflow: hidden;
cursor: pointer;
transition: transform 0.3s ease;
.bereal-post:hover transform: scale(1.01);
.bereal-post img
width: 100%;
height: 100%;
object-fit: cover;
display: block;
.bereal-small
position: absolute;
top: 12px;
left: 12px;
width: 80px;
height: 80px;
border-radius: 10px;
overflow: hidden;
border: 2px solid rgba(0,0,0,0.5);
box-shadow: 0 4px 12px rgba(0,0,0,0.4);
z-index: 2;
.bereal-small img width: 100%; height: 100%; object-fit: cover;
.bereal-time
position: absolute;
bottom: 12px;
left: 12px;
background: rgba(0,0,0,0.6);
backdrop-filter: blur(10px);
padding: 4px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 500;
z-index: 2;
display: flex;
align-items: center;
gap: 4px;
.bereal-reactions
position: absolute;
bottom: 12px;
right: 12px;
background: rgba(0,0,0,0.6);
backdrop-filter: blur(10px);
padding: 4px 10px;
border-radius: 20px;
font-size: 12px;
z-index: 2;
display: flex;
align-items: center;
gap: 4px;
/* Modal overlay */
.modal-overlay
position: fixed;
inset: 0;
background: rgba(0,0,0,0.92);
z-index: 100;
display: none;
align-items: center;
justify-content: center;
backdrop-filter: blur(20px);
animation: fadeIn 0.2s ease;
.modal-overlay.active display: flex;
.modal-content
position: relative;
max-width: 420px;
width: 90%;
animation: scaleIn 0.3s ease;
@keyframes fadeIn from opacity: 0; to opacity: 1;
@keyframes scaleIn from transform: scale(0.9); opacity: 0; to transform: scale(1); opacity: 1;
@keyframes slideUp from transform: translateY(20px); opacity: 0; to transform: translateY(0); opacity: 1;
@keyframes pulse 0%,100% opacity: 1; 50% opacity: 0.5;
.slide-up animation: slideUp 0.4s ease forwards;
.slide-up-d1 animation-delay: 0.05s; opacity: 0;
.slide-up-d2 animation-delay: 0.1s; opacity: 0;
.slide-up-d3 animation-delay: 0.15s; opacity: 0;
.slide-up-d4 animation-delay: 0.2s; opacity: 0;
/* Tab indicator */
.tab-btn
position: relative;
padding: 12px 0;
font-size: 14px;
font-weight: 500;
color: var(--muted);
transition: color 0.3s;
cursor: pointer;
background: none;
border: none;
flex: 1;
text-align: center;
.tab-btn.active color: var(--fg);
.tab-btn.active::after
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 2px;
background: var(--fg);
border-radius: 2px;
/* Toast */
.toast
position: fixed;
bottom: 100px;
left: 50%;
transform: translateX(-50%) translateY(20px);
background: var(--toast-bg);
color: var(--fg);
padding: 10px 20px;
border-radius: 24px;
font-size: 13px;
font-weight: 500;
z-index: 200;
opacity: 0;
transition: all 0.3s ease;
pointer-events: none;
white-space: nowrap;
border: 1px solid var(--border);
.toast.show
opacity: 1;
transform: translateX(-50%) translateY(0);
/* Mutual badge */
.mutual-badge
background: rgba(196,168,130,0.15);
color: var(--accent2);
padding: 2px 8px;
border-radius: 10px;
font-size: 11px;
font-weight: 600;
/* Friend action button */
.friend-action
background: var(--fg);
color: var(--bg);
border: none;
padding: 8px 20px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
cursor: pointer;
font-family: 'Outfit', sans-serif;
transition: all 0.2s ease;
.friend-action:hover transform: scale(1.03);
.friend-action:active transform: scale(0.97);
.friend-action.added
background: transparent;
color: var(--muted);
border: 1px solid var(--border);
/* Floating nav */
.bottom-nav
position: sticky;
bottom: 0;
background: rgba(20,20,20,0.85);
backdrop-filter: blur(20px);
border-top: 1px solid var(--border);
display: flex;
align-items: center;
justify-content: space-around;
padding: 10px 0 20px;
z-index: 50;
.nav-item
display: flex;
flex-direction: column;
align-items: center;
gap: 3px;
color: var(--muted);
font-size: 10px;
cursor: pointer;
transition: color 0.2s;
background: none;
border: none;
font-family: 'Outfit', sans-serif;
.nav-item.active color: var(--fg);
.nav-item i font-size: 20px;
/* Realmoji */
.realmoji
width: 32px;
height: 32px;
border-radius: 50%;
border: 2px solid rgba(255,255,255,0.3);
object-fit: cover;
cursor: pointer;
transition: transform 0.2s;
.realmoji:hover transform: scale(1.15);
/* Search bar */
.search-bar
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 10px 14px;
display: flex;
align-items: center;
gap: 10px;
transition: border-color 0.2s;
.search-bar:focus-within border-color: var(--accent2);
.search-bar input
background: none;
border: none;
outline: none;
color: var(--fg);
font-family: 'Outfit', sans-serif;
font-size: 14px;
width: 100%;
.search-bar input::placeholder color: var(--muted);
.user-card
display: flex;
align-items: center;
gap: 12px;
padding: 10px 16px;
cursor: pointer;
border-radius: 12px;
transition: background 0.2s;
.user-card:hover background: rgba(255,255,255,0.03);
.avatar
width: 44px;
height: 44px;
border-radius: 50%;
object-fit: cover;
flex-shrink: 0;
.avatar-sm
width: 32px;
height: 32px;
border-radius: 50%;
object-fit: cover;
/* Story viewer */
.story-viewer
position: fixed;
inset: 0;
z-index: 150;
background: #000;
display: none;
flex-direction: column;
.story-viewer.active display: flex;
.story-progress
display: flex;
gap: 3px;
padding: 8px 12px;
position: absolute;
top: 12px;
left: 12px;
right: 12px;
z-index: 5;
.story-progress-bar
flex: 1;
height: 2px;
background: rgba(255,255,255,0.3);
border-radius: 2px;
overflow: hidden;
.story-progress-fill
height: 100%;
background: #fff;
border-radius: 2px;
width: 0%;
transition: width 0.05s linear;
/* Loading shimmer */
.shimmer
background: linear-gradient(90deg, var(--card) 25%, #222 50%, var(--card) 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
@keyframes shimmer 0% background-position: 200% 0; 100% background-position: -200% 0;
@media (prefers-reduced-motion: reduce)
*, *::before, *::after
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
</style>
</head>
<body>
<div class="phone-frame" id="app">
<!-- Screens rendered by JS -->
</div>
<!-- Post detail modal -->
<div class="modal-overlay" id="postModal">
<div class="modal-content" id="postModalContent"></div>
</div>
<!-- Story viewer -->
<div class="story-viewer" id="storyViewer">
<div class="story-progress" id="storyProgress"></div>
<div style="position:absolute;top:24px;left:16px;right:16px;z-index:5;display:flex;align-items:center;gap:10px;">
<img id="storyAvatar" class="avatar-sm" src="" alt="">
<span id="storyName" style="font-weight:600;font-size:14px;"></span>
<span id="storyTime" style="color:rgba(255,255,255,0.5);font-size:12px;"></span>
<button onclick="closeStory()" style="margin-left:auto;background:none;border:none;color:white;font-size:24px;cursor:pointer;" aria-label="Close story">
<i class="fas fa-times"></i>
</button>
</div>
<div style="flex:1;display:flex;align-items:center;justify-content:center;position:relative;" id="storyImageContainer">
<img id="storyImage" style="width:100%;height:100%;object-fit:contain;" src="" alt="">
</div>
<div style="position:absolute;bottom:30px;left:16px;right:16px;z-index:5;">
<div style="background:rgba(255,255,255,0.1);border-radius:24px;padding:8px 14px;display:flex;align-items:center;gap:8px;">
<input type="text" placeholder="Send a message..." style="flex:1;background:none;border:none;outline:none;color:white;font-family:'Outfit';font-size:13px;" aria-label="Reply to story">
<i class="far fa-paper-plane" style="color:rgba(255,255,255,0.5);cursor:pointer;"></i>
</div>
</div>
</div>
<!-- Toast -->
<div class="toast" id="toast"></div>
<script>
// ─── Simulated Data ───
const profiles = [
id: 1,
username: 'lucas.martin',
displayName: 'Lucas Martin',
avatar: 'https://picsum.photos/seed/lucas01/200/200.jpg',
bio: 'Paris / Photography / Late night coder',
mutualFriends: 12,
isAdded: false,
isViewed: true,
postsCount: 47,
friendsCount: 234,
stories: [
image: 'https://picsum.photos/seed/lucas-s1/600/900.jpg', time: '2h ago' ,
image: 'https://picsum.photos/seed/lucas-s2/600/900.jpg', time: '1h ago' ,
],
posts: [
main: 'https://picsum.photos/seed/lucas-p1/600/800.jpg',
selfie: 'https://picsum.photos/seed/lucas-self1/200/200.jpg',
time: '2:34 PM',
date: 'Today',
realmojis: [
avatar: 'https://picsum.photos/seed/rm1/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm2/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm3/60/60.jpg', emoji: '' ,
],
comments: 4
,
main: 'https://picsum.photos/seed/lucas-p2/600/800.jpg',
selfie: 'https://picsum.photos/seed/lucas-self2/200/200.jpg',
time: '11:02 AM',
date: 'Yesterday',
realmojis: [
avatar: 'https://picsum.photos/seed/rm4/60/60.jpg', emoji: '' ,
],
comments: 1
,
main: 'https://picsum.photos/seed/lucas-p3/600/800.jpg',
selfie: 'https://picsum.photos/seed/lucas-self3/200/200.jpg',
time: '8:47 PM',
date: '2 days ago',
realmojis: [
avatar: 'https://picsum.photos/seed/rm5/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm6/60/60.jpg', emoji: '' ,
],
comments: 2
]
,
id: 2,
username: 'emma.chen',
displayName: 'Emma Chen',
avatar: 'https://picsum.photos/seed/emma02/200/200.jpg',
bio: 'NYC / Design / matcha addict',
mutualFriends: 8,
isAdded: true,
isViewed: false,
postsCount: 83,
friendsCount: 412,
stories: [
image: 'https://picsum.photos/seed/emma-s1/600/900.jpg', time: '45m ago' ,
],
posts: [
main: 'https://picsum.photos/seed/emma-p1/600/800.jpg',
selfie: 'https://picsum.photos/seed/emma-self1/200/200.jpg',
time: '3:12 PM',
date: 'Today',
realmojis: [
avatar: 'https://picsum.photos/seed/rm7/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm8/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm9/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm10/60/60.jpg', emoji: '' ,
],
comments: 7
,
main: 'https://picsum.photos/seed/emma-p2/600/800.jpg',
selfie: 'https://picsum.photos/seed/emma-self2/200/200.jpg',
time: '2:34 PM',
date: 'Yesterday',
realmojis: [
avatar: 'https://picsum.photos/seed/rm11/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm12/60/60.jpg', emoji: '' ,
],
comments: 3
]
,
id: 3,
username: 'marco.rivera',
displayName: 'Marco Rivera',
avatar: 'https://picsum.photos/seed/marco03/200/200.jpg',
bio: 'Barcelona / Surf / Good vibes only',
mutualFriends: 3,
isAdded: false,
isViewed: false,
postsCount: 21,
friendsCount: 89,
stories: [],
posts: [
main: 'https://picsum.photos/seed/marco-p1/600/800.jpg',
selfie: 'https://picsum.photos/seed/marco-self1/200/200.jpg',
time: '9:15 PM',
date: 'Today',
realmojis: [
avatar: 'https://picsum.photos/seed/rm13/60/60.jpg', emoji: '' ,
],
comments: 0
]
,
{
id: 4,
username: 'sofia.larsson',
displayName: 'Sofia Larsson',
avatar: 'https://picsum.photos/seed/sofia04/200/200.jpg',
bio: 'Stockholm / Architecture / Coffee enthusiast',
mutualFriends: 15,
isAdded: true,
isViewed: true,
postsCount: 112,
friendsCount: 567,
stories: [
image: 'https://picsum.photos/seed/sofia-s1/600/900.jpg', time: '3h ago' ,
image: 'https://picsum.photos/seed/sofia-s2/600/900.jpg', time: '2h ago' ,
image: 'https://picsum.photos/seed/sofia-s3/600/900.jpg', time: '1h ago' ,
],
posts: [
{
main: 'https://picsum.photos/seed/sofia-p1/600/800.jpg',
selfie: 'https://picsum.photos/seed/sofia-self1/200/200.jpg',
time: '4:45 PM',
date: 'Today',
realmojis: [
avatar: 'https://picsum.photos/seed/rm14/60/60.jpg', emoji: '' ,
avatar: 'https://picsum.photos/seed/rm15/60/60.jpg', emoji: '' ,
{ avatar: 'https://picsum.photos/seed/rm16/
Market Report: BeReal Profile Viewer Tools "I tried 'BeReal Viewer Pro' – after completing
Date: October 26, 2023 Subject: Analysis of Third-Party "BeReal Profile Viewer" Tools, Risks, and Technical Feasibility.
Let me repeat that for the people in the back: BeReal does not notify users of screenshots. This is a massive point of confusion because Snapchat built its empire on screenshot detection. BeReal is not Snapchat. If your friend screenshots your double-chin breakfast photo, you will never know.
Because there is no view counter or screenshot detector, the demand for a "profile viewer" is based on a feature that simply does not exist in the app’s code.
Q: Does BeReal notify you when you view a profile? A: No. You can look at anyone's profile picture, bio, and past BeReals (if they are your friend) without them ever receiving an alert. "The site asked for my phone number to 'verify
Q: Is there a BeReal Plus version that shows viewers? A: No. BeReal does not have a "Plus" or premium tier. Any app claiming to be "BeReal Gold" or "BeReal Pro" is a scam.
Q: Can I see who viewed my BeReal if I post outside the 2-minute window? A: No. Whether you post on time or late, the privacy settings remain identical. No viewer list exists.
Q: My friend says they have a profile viewer app that works. Are they lying? A: They are either lying, or they have been scammed into downloading malware and are seeing fake data generated by the app to trick them.
Q: Will BeReal ever add this feature? A: It is highly unlikely. The CEO has repeatedly emphasized that reducing social anxiety is the core mission of the app. Viewer counts create anxiety. Therefore, they will likely never be added.
Post your BeReal late. Wait until the 24-hour period is almost over. Then, look at who added RealMojis to your post. Generally speaking, the people who interact with your BeReal (emojis/comments) are your most engaged followers. If they are interacting, they are certainly viewing your profile. This is the closest thing to a "viewer" list that exists natively.
