Ghost provides seamless anonymous user sessions and one-click conversion to real accounts for Frappe

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.

:bullseye: Who is this for?

  • :shopping_cart: E-commerce: Let users build a cart anonymously and merge it into their account during checkout.

  • :mobile_phone: Mobile Apps: Perfect for “Browse-first, Auth-later” experiences (No cookies needed!).

  • :briefcase: SaaS Platforms: Let users try core features or setup data before requiring an email.

  • :newspaper: Content Portals: Allow users to bookmark or read a few articles before prompting for registration.

:rocket: Key Features

  • :white_check_mark: Instant Ghost Sessions: Anonymous users get a temporary identity (

    ghost_xxx@guest.local
    

    ) via API.

  • :white_check_mark: OAuth2 Bearer Tokens: Industry-standard security (ideal for SPAs and Mobile apps).

  • :white_check_mark: Seamless Conversion: One-click conversion from Ghost to a Real User via OTP (Email/SMS).

  • :white_check_mark: Automatic Data Merging: All historical data assigned to the Ghost user is automatically transferred to the real account upon conversion.

  • :white_check_mark: Sandbox Mode: A built-in “Toggle & Test” mode for developers to bypass OTP delivery during QA.

  • :white_check_mark: Auto-Cleanup: Ghost sessions automatically expire and cleanup based on your configurable settings.

:hammer_and_wrench: How it works (Quick flow)

  1. User lands on site → Browser requests

    create_ghost_session.

  2. User gets a Bearer Token → App store data (Cart, ToDos, etc.) under this ghost identity.

  3. User is ready to sign up → App calls

    convert_to_real_user with an OTP.

  4. Ghost becomes Real: The user is renamed/merged, and the session continues without interruption.

:link: 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!

2 Likes

Hi @Muneeb_muhammed

Great if you can add it to GitHub - gavindsouza/awesome-frappe: A curated list of awesome things related to the Frappe Framework

I have added, Thank you for suggesting