Hi everyone,
I’m excited to share a new custom app for the Frappe ecosystem: Ghost.
Most apps lose up to 70% of potential users the moment they hit a mandatory signup screen. Ghost solves this by providing a “Ghost Identity” to anonymous visitors instantly, allowing them to interact with your app (add to cart, save favorites, browse private data) before they ever create an account.
Who is this for?
-
E-commerce: Let users build a cart anonymously and merge it into their account during checkout. -
Mobile Apps: Perfect for “Browse-first, Auth-later” experiences (No cookies needed!). -
SaaS Platforms: Let users try core features or setup data before requiring an email. -
Content Portals: Allow users to bookmark or read a few articles before prompting for registration.
Key Features
-
Instant Ghost Sessions: Anonymous users get a temporary identity (ghost_xxx@guest.local) via API.
-
OAuth2 Bearer Tokens: Industry-standard security (ideal for SPAs and Mobile apps). -
Seamless Conversion: One-click conversion from Ghost to a Real User via OTP (Email/SMS). -
Automatic Data Merging: All historical data assigned to the Ghost user is automatically transferred to the real account upon conversion. -
Sandbox Mode: A built-in “Toggle & Test” mode for developers to bypass OTP delivery during QA. -
Auto-Cleanup: Ghost sessions automatically expire and cleanup based on your configurable settings.
How it works (Quick flow)
-
User lands on site → Browser requests
create_ghost_session.
-
User gets a Bearer Token → App store data (Cart, ToDos, etc.) under this ghost identity.
-
User is ready to sign up → App calls
convert_to_real_user with an OTP.
-
Ghost becomes Real: The user is renamed/merged, and the session continues without interruption.
Get Started
The app is open-source and ready for testing: GitHub Repository: muneeb141/ghost
I’d love to hear your feedback, use cases, or any feature requests you might have!
