Modern, privacy-first QR customizer.
No analytics. No network. Just your codes.
Preview builds may feel rough or unpolished and may contain bugs. They are intended for early testing and feedback. For stable use, wait for a release tagged
v*without a pre-release label.
- 8 payload types — URL, text, Wi-Fi, email, phone, SMS, contact, location
- Pixel styles — square, dots, rounded, extra-rounded, diamond
- Eye styles — square, rounded, circle
- Error correction — L, M, Q, H
- Corner radius — sharp → pill (5 levels)
- Logo overlay — pick from gallery, resize, reposition by drag
- Logo background — rounded, circle, or none
- Logo border & shadow — toggle independently
- Randomize — shuffle all colors and styles instantly
- Live preview — updates as you edit
- Camera scan — QR codes + barcodes (EAN-13, EAN-8, Code 128, Code 39, PDF417, Aztec, Data Matrix)
- Gallery scan — pick an image, detect code automatically
- Torch toggle — low-light scanning
- Scan to customize — scan any existing QR code, load it into the generator, change colors, style, logo, and export a new version
- Light / Dark / System — follows device preference
- Dynamic — UI syncs to your QR's background color
- Pure Black — AMOLED enhancement for OLED screens
- Smooth transitions — cross-fade between themes
- Auto-save — every QR you create is stored locally
- Swipe-to-delete — remove individual entries
- Clear all — with confirmation dialog
- Search — filter by content or type
- Save to gallery — PNG, high quality
- Share — send via any installed app
- Copy content — clipboard
- Export data — text file
| Layer | Technology |
|---|---|
| Framework | Expo SDK 56, React Native 0.85 |
| Navigation | Expo Router |
| Animations | React Native Reanimated 4 |
| Camera | expo-camera |
| Storage | AsyncStorage (offline-first) |
| Language | TypeScript |
| Typeface | IBM Plex Mono |
| Variant | Application ID | Purpose |
|---|---|---|
| Stable | com.nylxar.curium.stable |
Production releases |
| Preview | com.nylxar.curium.preview |
Pre-release testing |
| Nightly | com.nylxar.curium.nightly |
Automated daily builds |
- Node.js 22+
- pnpm
- Android Studio or a connected device
git clone https://github.com/nylxar/curium.git
cd curium
pnpm installpnpm start
# or
pnpm androidReleases are built automatically via GitHub Actions. To trigger a build:
- Stable: Push to
masteror create av*tag - Preview: Push to
preview - Manual: Go to Actions → Android APK Splits → Run workflow
Or download the latest APK directly from Releases.
The GitHub Actions workflow builds release APKs with ABI splits (armeabi-v7a, arm64-v8a, x86_64, universal).
| Trigger | Flavor | Release |
|---|---|---|
Push to master (code changes only) |
stable | Yes |
Push tag v* |
stable | Yes |
Push to preview (code changes only) |
preview | Yes |
| Daily cron (3 AM UTC) | nightly | No |
| Manual dispatch | selectable | No |
app/ Expo Router screens
components/qr/ QR creation, styling, export, navigation
components/ui/ Shared UI primitives (sheets, toasts, overlays)
constants/ Theme tokens and QR presets
context/ Theme provider
services/ Local history and settings persistence
types/ QR payload and style types
plugins/ Expo config plugins
scripts/ Build info generator
assets/ Fonts, icons, splash assets
| Permission | Why |
|---|---|
CAMERA |
QR code scanning |
READ_MEDIA_IMAGES |
Gallery scan & logo picker |
No microphone. No location. No network access.
GNU General Public License v3.0
Built with care. No telemetry. No accounts. Just codes.