Prism

Project Url: Hash-Studios/Prism
Introduction: Prism is a beautiful open-source wallpapers app for Android. It is built with Dart on top of Google's Flutter Framework.
More: Author   ReportBugs   
Tags:
Prism on iPhone: a wallpaper, the home feed with the Wall of the Day, and colour search

Prism is an open-source wallpaper app for Android and iOS, built with Flutter and Dart by Hash Studios.

Release Flutter Dart Platforms License
Google Play downloads Stars Last commit Telegram X

Website · Google Play · Releases · Changelog · Contributing

Prism brings wallpapers from the community, Wallhaven, and Pexels into one feed that learns what you like. Preview a wallpaper with a clock, set it in a few taps, or make it move. Upload your own art, follow creators, make new wallpapers with AI, and earn Prism Coins as you go.

Contents

  1. Features
  2. Screenshots
  3. Download
  4. Repository layout
  5. Development setup (FVM)
  6. Secrets with Doppler
  7. Common development commands
  8. Contributing
  9. Support
  10. Contributors
  11. License
  12. Privacy

Features

Discover

  • Browse community wallpapers, Wallhaven, and Pexels, with a personalized home feed and a Wall of the Day.
  • Search by keyword, color, or tag, with filters and recent searches. Open "More like this" to find similar wallpapers.
  • Browse categories and collections, and follow creators.
  • See this week's and all-time trending wallpapers in the Trending tab on the home feed. Boosted wallpapers also show in the home carousel, right after the Wall of the Day.

Preview, set, and edit

  • Preview wallpapers with a clock overlay. Set them with Fill or Fit, crop them, or pick a default target on supported platforms.
  • Make any wallpaper move, pick a living gradient, or use a video as a live wallpaper (Android).
  • See the wallpapers you set before and set them again.
  • Edit wallpapers with stacked filters, blur, hue, saturation, and brightness controls.
  • Rotate favourites or downloads on a timer, only while charging or in set hours, with Prism Pro on Android.
  • Change the wallpaper on its own on iPhone with a Shortcuts automation and the "Get Prism Wallpaper" action. See iOS Shortcuts.

Create

  • Upload wallpapers for review and track their approval status.
  • Generate AI wallpapers from text prompts, create variations, and share the results.

Library and app

  • Save favourites to your account, then sort, filter, search, and select many at once. Share or delete many downloads at once.
  • Read notifications in an inbox with unread marks, and set preferences in one sheet.
  • Customize the app's theme and accent, and manage cached images and downloads.

Prism Coins and Prism Pro

  • Earn Prism Coins through rewarded ads and daily rewards, and spend them on supported actions.
  • Prism Pro makes all downloads and premium filters free.
  • Pro members get a daily coin bonus and extra coins on each streak claim.
  • Pro members have no weekly upload limit and can upload up to 10 wallpapers at once.
  • Pro unlocks every live wallpaper style and auto-rotate on Android.

Platform capabilities vary. Android supports home-screen and lock-screen wallpaper actions. iOS supports saving images for manual application. Premium access and coin costs depend on the action. The app shows the applicable gate before proceeding.

See docs/features for a short page on each feature.

Screenshots

Get started

Welcome screen with sign in Pick the wallpaper styles you like Follow suggested creators Tune your feed
Welcome Pick your vibe Find your people Tune your feed

Discover

Home feed with the Wall of the Day and trending wallpapers Search with recent searches and colours Search results for a colour Collections
Home and trending Search Colour results Collections

Preview, set, and edit

Wallpaper Wallpaper details and colours Lock screen clock preview Wallpaper set, with Match accent and Undo
Wallpaper Details and colours Clock preview Set wallpaper
Filter editor Live wallpapers Auto-rotate settings Change the wallpaper automatically with iOS Shortcuts
Filter editor Live wallpaper Auto-rotate iOS Shortcuts

Create and collect

AI wallpaper Upload a wallpaper Library: favourites Library: downloads
AI wallpaper Upload Favourites Downloads

Profile and rewards

Your profile Edit profile Rewards Daily streak reward
Profile Edit profile Rewards Daily streak
Invite friends Pro wallpaper: save with coins or get Prism Pro Notifications Themes and accent colour
Invite friends Pro wallpaper Notifications Themes and accent

Light theme (Frost White)

Home in the Frost White theme Wallpaper details in the Frost White theme Creator profile in the Frost White theme Themes in the Frost White theme
Home Wallpaper Creator profile Themes

Download

Get it on Google Play

Get Prism for Android on Google Play. Release notes and build files for each version are on GitHub Releases. The changelog lists every change.

Repository layout

Path Purpose
lib/ and test/ Flutter app and unit/widget tests
android/ and ios/ Native platform projects
pigeons/ Source definitions for platform APIs
functions/ Firebase Cloud Functions, written in TypeScript
firestore.rules and firestore.indexes.json Firestore access rules and indexes
web/ Next.js website
infra/cloudflare/ Worker for deep links, social previews, and AI requests
packages/cloud_functions/ Local FlutterFire plugin fork
tool/ and Makefile Development commands, generation, and repository checks

The app uses BLoC, freezed, get_it/injectable, and auto_route. See architecture guidance for feature structure. Dependency versions live in pubspec.yaml, functions/package.json, and web/package.json.

Development setup (FVM)

Install FVM, Make, and a POSIX shell. Android development needs the Android SDK. iOS development needs macOS, Xcode, and CocoaPods.

Clone the repository

Use a shallow, single-branch clone when you do not need old commit history:

git clone --depth 1 --single-branch https://github.com/Hash-Studios/Prism.git

Use a single-branch blobless clone when you need commit ancestry but can fetch file contents on demand:

git clone --filter=blob:none --single-branch https://github.com/Hash-Studios/Prism.git

A full clone fetches every branch, including qa/screenshots, and historical binaries. Sparse checkout limits files in your working tree, but does not avoid fetching history. Fetch another branch when you need it:

git fetch origin branch-name:refs/remotes/origin/branch-name

Keep tracked files at or below 1 MiB. Store APK, AAB, and IPA release files on GitHub Releases. Run make repo-assets-check to check tracked files before opening a pull request; make ci runs the same check.

From the repository root, run:

make setup
fvm flutter doctor -v

make setup installs and selects the Flutter SDK pinned in .fvmrc, then resolves app dependencies. On macOS, it also prepares iOS pods. Use fvm flutter and fvm dart for subsequent SDK commands. Prism's Flutter app needs a mobile device, emulator, or simulator. The separate Next.js website runs in a browser.

Local checks without service access

A fresh checkout has no lib/firebase_options.dart. Create the ignored stub for local analysis and tests:

tool/write_firebase_options_stub.sh
make format-check
fvm flutter analyze --no-pub --no-fatal-infos
make test

The stub script preserves an existing real Firebase options file. Do not commit Firebase configuration files. For a UI-only debug run without Doppler or Firebase access, use:

fvm flutter run --dart-define=SKIP_FIREBASE_INIT=true

Firebase-backed feeds, sign-in, notifications, and rewards need real development service configuration. A run that skips Firebase does not verify those features.

Secrets with Doppler

Runtime secrets come from Doppler, using project prism and local configuration dev. .env.example lists key names for reference. Make targets do not load it as a runtime secrets file.

Obtain development service access and Firebase configuration from a maintainer. The app needs matching local files:

  • lib/firebase_options.dart
  • android/app/google-services.json
  • ios/Runner/GoogleService-Info.plist

Replace any Firebase stubs before a service-backed run. Install the Doppler CLI, then run:

make doppler-login
make setup-dev
make run

make run injects Dart defines from Doppler. If the Android Google Services file is absent, it skips Firebase initialization, including on iOS. See the Doppler workflow for access checks, secret updates, and troubleshooting. The contribution guide covers configuration for your own development Firebase project. Server-side wallpaper storage uses separate private and preview Cloudflare R2 buckets when enabled. The owned asset delivery guide documents configuration and the GitHub-to-R2 inventory. It is an operator guide, not permission to configure secrets, deploy, migrate, or remove public GitHub files.

Common development commands

Run these commands from the repository root:

Command Purpose
make get Resolve Flutter dependencies with FVM
make run Run the app with development secrets from Doppler
make format / make format-check Format Dart source / check formatting
make test Run Flutter unit and widget tests
fvm flutter analyze --no-pub --no-fatal-infos Run static analysis without treating infos as failures
make file-gen Regenerate freezed, JSON, route, and dependency injection code
make pigeon-gen Regenerate native platform APIs
make analytics-gen / make analytics-check Generate typed analytics events / check the generated output
make ci ANALYZE_FLAGS=--no-fatal-infos Run the complete local app and worker gate

The local app gate also needs Node.js 22.6 or newer for worker tests. Functions, website, and Firestore rules checks run separately. See Contributing for their commands and UI verification requirements. web/README.md covers website development, and infra/cloudflare/README.md covers the worker.

GitHub CI runs on pull requests that are ready for review and selects jobs by changed paths. Draft PRs skip the checks. The required ci check aggregates app, functions, website, and rules results. See the CI workflow.

Contributing

Read CONTRIBUTING.md before submitting a change. Open a focused PR against master with the linked issue and verification results. Report bugs through the issue templates.

Support

Contact Hash Studios at hash.studios.inc@gmail.com, join the Telegram community, or follow Prism Wallpapers. If you like Prism, rate it on Google Play and star this repository. You can support development through Buy Me a Coffee:

Buy Me a Coffee

Contributors

See the contributors who maintain Prism.

Prism contributors

License

Prism uses the BSD 3-Clause License.

Google Play and the Google Play logo are trademarks of Google LLC.

Privacy

Read PRIVACY.md for data collection and third-party services.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest