Md. Asif Uddin

    Projects09 of 16

    SANDHI app

    The research lab's Android app, a second client of the website rather than a second system

    The Android app of SANDHI Research Lab: the research map, projects, papers, people and news for anyone, and two-factor sign-in for members. It has no backend of its own. It reads the website's API under the same permission rules as the site's pages, so the app and the site never disagree. Released on 18 October 2026 as a signed 57 MB APK.

    Get the appSource code

    What it is

    The Android app of SANDHI Research Lab, released on 18 October 2026. It puts the lab’s public research on a phone and gives members the parts of their workspace they check most. It is a client of the lab’s website, not a second system: the same accounts, the same data and the same permissions.

    For anyone

    • Home: the lab at a glance, with news and project updates, newest first.
    • The research map: the lab’s themes and the areas beneath them.
    • Projects with their published progress, papers with search, and people and their profiles.
    • News, events, research notes and site-wide search.

    For members

    Members sign in with their lab account: a password, then a two-factor code or a backup code. “Your account” then shows:

    • announcements, pinned first, with an unread count;
    • their projects and the projects’ documents;
    • their profile.

    Joining the lab, registering for events and changing account settings open the website.

    One system, two clients

    The app has no backend of its own. It reads the website’s /api/v1, which applies the same visibility and permission rules as the web pages. A member sees exactly what they would see on the site, and a rule changed on the site changes the app with it.

    Sign-in on a phone

    • Bearer sessions with two-factor authentication.
    • The two-factor challenge is held only in memory, and the session token only in the device keychain.
    • Signing out ends the session on the server, not just on the phone.
    • An expired session signs the app out cleanly instead of failing screen by screen.

    Shipping outside the app stores

    • A signed APK, with its SHA-256 published on the download page so that a download can be checked.
    • The site can require a minimum app version. An older install then shows a link to the new release instead of failing.

    Small, and asks for little

    Building only for phone processors (ARM) halved the APK from 101 MB to 57 MB. The app asks Android for network access and nothing else.

    Type that survives iOS

    Light and dark themes follow the phone and match the website’s palettes and typefaces, Spectral and Hanken Grotesk. Line heights come from the serif’s own metrics, because iOS cuts the tops off letters on lines that are too short. The iOS version is built and tested on iPhone, and comes to the App Store after funding.

    Built with

    Expo SDK 57, React Native 0.86, React 19, TypeScript, Expo Router with typed routes and native tabs, the React Compiler, expo-secure-store and EAS Build.

    Get it from sandhiresearch.org/app, or take the APK straight from the 1.0.0 release. It needs Android 7.0 or later.