Fancy dial

Rabiat Dikko

Mobile

A custom phone dialer for Android that makes every call personal. Set a photo or video as the call screen for each contact, design how your calls appear to others, and replace your phone's default dialer entirely.

Fancy dial

About this project

Make every call look like you.

Phone dialers all look the same: a name, a number and two buttons. FancyDial replaces your phone's built-in dialer with one you can personalise. Set an image or video to play when a call comes in, give each contact their own call theme, and design an identity card that controls how your calls appear to other people.

A complete phone app

FancyDial isn't an add-on. It becomes your phone's default dialer and handles calls from start to finish:

  • a dial pad, contacts and contact search
  • full call history (incoming, outgoing and missed)
  • custom incoming, outgoing and in-call screens for answering, declining and ending calls

Personalise your calls

  • Call screen media: use any image or video as the background when a call comes in, with a live preview and sound toggle.
  • Per-contact themes: give each contact their own call screen, and switch it on or off per contact.
  • Your identity card: customise your outgoing call card, which controls how your calls appear on other people's screens.
  • Default theme and reset: set one theme for all calls, or reset everything back to standard.

FancyDial Premium

A monthly or yearly subscription (yearly saves 33%) unlocks:

  • per-contact call themes
  • exclusive theme packs
  • a verified ID badge on your outgoing calls
  • instant sync of your caller identity

Under the hood

  • App framework: React Native with Expo and Expo Router, written in TypeScript.
  • Native Android module: a custom module written in Kotlin, using Android's InCallService, sets FancyDial as the system's default dialer and places, receives and controls calls natively. It also reads the device's call log.
  • Accounts and data: Clerk for sign-in, and Convex as the backend, with user sync through Svix-verified webhooks.
  • Subscriptions: RevenueCat handles in-app purchases.
  • Media: Expo AV and Expo Video play the video call screens.
MobileAndroidNative ModulesPersonalization