Skip to content

cyan-2048/solid-telekram

Repository files navigation

Telegram4KaiOS

HELP!!! I need a better name for this client. (TeleKram is taken)

Telegram client for KaiOS.

Made with

  • mtcute (amazing mtproto library)
  • solid.js
  • 👀🙌

The app is heavily inspired by Telegram Web K and the dead WhatsApp client for KaiOS.

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9 Screenshot 10 Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14

Features

  • Chats
    • Typing Indicator
      • Self (others can see you type)
      • Private chats
      • Others
    • Pinned Chats
    • Archived Chats
    • Unread/Muted/Sent/Received
    • Chat Folders
    • Chat Info
    • User Info
    • Private Chats
    • Private Groups
    • Supergroup
      • migrated chats
      • Forum Topics
    • Broadcast Channels
    • Bots
    • Gigagroups
  • Messages
    • Push Notifications
    • Telegram System Actions (not complete)
    • Downloading Files
    • Uploading Files
      • Uploading Photos
      • Uploading Videos
    • Message Attachments
      • Stickers
        • Sticker Picker
        • webp
        • webm
        • lottie
      • Emojis
        • Emoji Picker
        • Apple Emojis
        • Emoji history
      • Gifs
        • Gif Picker
        • Gif previews
      • Photos
      • Voice Messages
      • Music
      • Videos
      • Location
        • Location Previews
        • Live Location (o.map help me lmao)
    • Replying
    • Editing
    • Deleting
    • Forwarding
    • Markdown
  • Login
    • QR Code
    • SMS Code
    • Telegram Send Code
    • 2FA
    • Email
  • Settings
  • Contacts
  • Telegram Stories

Additional Info

  • First launch of the app might take a while, the next app launches will not take so long.
  • Currently Forum Groups will act in a unstable "View as Messages" view as in the Telegram Web K client.
  • You must click Enable Push Notifications multiple times until you see a confirmation.
  • pre-optimized lottie stickers are pre-converted apng images so client side rendering is not an issue, those stickers can be found in kaigram-assets, non optimized stickers will run at a very horrible fps
  • using this app on a 256MB RAM KaiOS device is kinda unstable.

Experimental Low Memory mode

  • this mode is now disabled
  • the chat list will render only 10 chats and scrolling down will render more
  • if the app still crashes, please contact the dev.

Developing

Install NodeJS (v18 or latest LTS) and bun.

Please create a .env.local file and add the values in .env replacing the APP_ID and APP_HASH with your own.

You must use bun!

Dev Mode:

Note

There is an unresolved issue with 2fa when using the dev mode, I have no idea what's wrong with it, works fine on KaiOS 2.5.

bun run dev

Build:

bun run build

After building, you can now sideload the dist folder using WebIDE.

add the :v3 suffix for KaiOS 3.0 (example: bun run dev:v3)

Technical Info

  • For KaiOS 2.5, the app utilizes real asm.js and on KaiOS 3.0 it uses WebAssembly like normal.
  • mtcute is modified to use jsbi, this means BigInt can be used in KaiOS 2.5 and native BigInts are used for KaiOS 3.0.
  • mtcute is also modified in order for asm.js to be used.
  • there are 3 Web Workers
    • mtcute web worker proxy
    • heavy tasks worker for blocking operations (webp to png, md5, etc.)
    • rlottie
  • SystemJS is used to simulate esm modules on KaiOS 2.5, it is also used to import asm.js files in order for it to preserve asm.js syntax.

Dependencies

GIVE ME MONEY

All donations go to feeding my cats. (really need to spay my cats lmao)

ko-fi

Discord Server

for updates and to join the app testers.

Discord server

testers will be able to install the app directly from the KaiStore.