Prism turns wallpaper browsing into a feed with editing and AI generation
Prism is an open-source Flutter wallpapers and home screen setups app for Android and iOS, with community uploads, curated collections, and AI wallpaper generation.
At a glance
- What is it?
- Prism is an open source Flutter wallpaper app for Android and iOS that pulls community uploads, Wallhaven and Pexels into one personalised feed, adds colour search, a clock preview, an editor with filters and live wallpapers, AI generation from text prompts, and a coins and Pro tier model. It suits a phone owner who wants more than a gallery of images, and the iOS side has clear limits compared with the Android one.
- Who is it for?
- Adopt Prism if you want a wallpaper app that learns from what you like, lets you edit a wallpaper before setting it, and works on both Android and iOS from one codebase, and if you are comfortable with a free tier funded by rewarded ads. Do not adopt it if you need live wallpapers, timed rotation or upload headroom on iOS, because the README states those capabilities vary by platform and Android carries the feature set.
- Can I use it commercially?
- Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Three sources feed one personalised feed
Prism is an open source wallpaper app for Android and iOS, built with Flutter and Dart by Hash Studios, and the discovery layer is the part that makes it more than a gallery. Community wallpapers, Wallhaven and Pexels all arrive in one feed, and that feed is personalised, with a Wall of the Day at the top and a Trending tab carrying this week's and all-time favourites. Boosted wallpapers also appear in the home carousel right after the Wall of the Day, which tells you there is a paid promotion mechanism layered on the feed rather than a purely chronological list. Onboarding is built around the same idea, with screens for signing in, picking wallpaper styles you like, following suggested creators, and tuning the feed, so the personalisation is configured at first run rather than inferred silently. A More like this action on any wallpaper extends the discovery model beyond keyword matching, and categories, collections and creator follows give the feed a social structure rather than a pure tag structure.
Colour search and the clock preview are the details people notice
Search runs on keyword, colour or tag, with filters and recent searches, and the colour path is the interesting one because it is backed by extracted colour data rather than by a colour name index. The wallpaper detail screen shows the colours pulled from the image, so you can pick a shade and find every wallpaper that carries it. The preview feature is the second thing that distinguishes the app. You can preview a wallpaper with a clock overlay, which means you see what your lock screen will actually look like with the time on it, rather than judging the image alone. Setting is then a couple of taps with Fill or Fit, a crop step, or a default target on supported platforms, and the set screen shows a Match accent control and an Undo option, so a mistake is one tap to reverse. You can also see the wallpapers you have set before and set them again, which is the shortcut for a wallpaper you liked once and never changed.
Editing is filters, and the platform split is the real limitation
Prism adds an editor with stacked filters, blur, hue, saturation and brightness controls, plus the ability to make a wallpaper move, pick a living gradient, or use a video as a live wallpaper on Android. There is also timed rotation of favourites or downloads, but only while charging or in set hours, and that requires Prism Pro on Android. The README is direct that platform capabilities vary. Android supports home-screen and lock-screen wallpaper actions, while iOS supports saving images for manual application. Read that pair of sentences carefully, because it is the boundary of the product. On iOS the app is a way to find, edit and save an image that you then set yourself, and on Android it can do it for you. The iOS side also has a workaround worth knowing about, since you can change the wallpaper on its own on iPhone with a Shortcuts automation and the Get Prism Wallpaper action, with the details in docs/features/ios-shortcuts.md. So the iOS gap is partly closed by an integration rather than by native capability, and that is a different thing from a first-class home screen action.
AI generation and the coin economy sit in the same app
The create side lets you generate AI wallpapers from text prompts, create variations, and share the results, and you can also upload your own art for review and track its approval status. That upload flow is where the monetisation model becomes visible. You earn Prism Coins through rewarded ads and daily rewards and spend them on supported actions, and premium access and coin costs depend on the action, with the app showing the applicable gate before you proceed. Prism Pro makes all downloads and premium filters free, gives Pro members a daily coin bonus and extra coins on each streak claim, removes the weekly upload limit and lets you upload up to 10 wallpapers at once, and unlocks every live wallpaper style and auto-rotate on Android. The coin economy is the mechanism that lets a free tier exist at all, and the rewarded ad loop is what pays for the bandwidth. The costs are visible before the action, which is better than a surprise, but it does mean the app is not a plain open source utility and you are inside a monetisation design whether you intended to be or not.
The repository is a Firebase and Cloudflare shop with a strict secrets workflow
The top level of the repository describes the architecture better than the README does. There is a firebase.json, a .firebaserc, firestore.rules, firestore.indexes.json and a functions/ directory, so Firestore and Cloud Functions hold the backend. Alongside that there is a .env.example listing the keys the app expects, and the file says in its first line that it is a reference-only template because runtime secrets are managed in Doppler. The keys themselves show the shape of the service: GitHub credentials with separate repositories for walls and setups, Cloudflare R2 buckets with an account id, private and preview bucket names, a preview base URL and access keys, RevenueCat API keys split into an Android and an iOS key for the Pro subscription, a Pexels key, Sentry DSN and environment variables, a Mixpanel token with an enabled flag, an FCM server key for push, and a block of USER1_IMAGE1 style placeholders. So images live in R2 with Cloudflare serving them, Firestore holds the metadata and rules, Functions run the server logic, RevenueCat handles subscriptions, and Sentry and Mixpanel handle diagnostics and analytics.
The reference template lists the keys in this shape:
GH_TOKEN=
GH_USERNAME=
GH_REPO_WALLS=
GH_REPO_SETUPS=
R2_ACCOUNT_ID=
R2_PRIVATE_BUCKET=
PEXELS_API_KEY=
MIXPANEL_TOKEN=
FCM_SERVER_KEY=The Makefile is the enforcement layer
The build is driven by a Makefile whose target list is unusually long and telling, because most of it is guard targets rather than build steps. The visible phases are setup, setup-dev, run, build, build-aab, size-android, build-ios, build-ipa, test, ci and functions-deploy, but the bulk of the list is checks: analytics-gen, analytics-guard, analytics-check, firestore-guard, rules-test, no-dynamic-guard, no-shape-parse-guard, env-guard, system-ui-guard, secrets-guard, version-sync, version-guard, file-gen, pigeon-gen, repo-assets-check, find-unused, find-unused-html, find-unused-ci and cloudflare-worker-check. Several of those names are self-explanatory about what the project cares about: no dynamic references, no shape parsing, no secrets committed, rules tested, versions in sync. Doppler is wired in through DOPPLER_PROJECT and DOPPLER_CONFIG with a dev default, and the dart defines for the app are generated from the Doppler values by a shell script rather than hand-maintained. Dart format is pinned to a 120 column line length over lib and test, and the toolchain includes Firebase, R2, RevenueCat, Sentry and Mixpanel, which is a lot of external surface for a wallpaper app and explains the length of the guard list.
What a contributor is actually expected to do
The repository carries the usual contributor surface, CONTRIBUTING.md, a CODE_OF_CONDUCT.md, a CHANGELOG.md and an AGENTS.md and CLAUDE.md pair, plus.agents/,.claude/ and.githooks/ directories and a.impeccable.md file at the top level, which reads like a checklist of quality expectations. There is a docs/ directory with a features section, one short page per feature, and the iOS Shortcuts page. The release cadence is fast and visible, with v3.7.0+345 published on 2026-10-18, v3.6.0+344 the day before and v3.5.0+342 on 2026-10-16, so the build number moves several times a week and the changelog is the only way to track what changed. The last push was on 2026-10-22. The app is published as com.hash.prism on Google Play, with the badge showing 100K+ downloads, and the project site is prismwalls.com with a Telegram channel and an X account for updates. The licence is BSD-3-Clause, and the privacy policy lives in PRIVACY.md in the repository rather than only on the website.
Editorial conclusion
Adopt Prism if you want a wallpaper app that learns from what you like, lets you edit a wallpaper before setting it, and works on both Android and iOS from one codebase, and if you are comfortable with a free tier funded by rewarded ads. Do not adopt it if you need live wallpapers, timed rotation or upload headroom on iOS, because the README states those capabilities vary by platform and Android carries the feature set. Verify first which platform features you actually need against the platform capability note, that the Pexels API key is present in your Doppler config, and that the release you install matches the version whose changelog you have read.
Frequently asked questions
Where do wallpapers in Prism come from?
Prism brings wallpapers from the community, Wallhaven and Pexels into one personalised feed. Community members can upload their own art for review and track the approval status, and creators can be followed.
What can Prism do on iOS that it cannot do on Android, and the other way round?
Platform capabilities vary. Android supports home-screen and lock-screen wallpaper actions, plus live wallpapers, auto-rotate and higher upload limits on Pro, while iOS supports saving images for manual application. On iPhone you can also automate wallpaper changes with a Shortcuts automation and the Get Prism Wallpaper action.
How does the free tier of Prism work?
You earn Prism Coins through rewarded ads and daily rewards and spend them on supported actions, with the app showing the applicable gate before you proceed. Prism Pro makes all downloads and premium filters free, adds a daily coin bonus and extra coins on each streak claim, removes the weekly upload limit for ten uploads at once, and unlocks every live wallpaper style and auto-rotate on Android.
How do I set up a development environment for Prism?
The Makefile drives setup and setup-dev, with secrets supplied through Doppler rather than a checked in file, since.env.example is a reference-only template. The project pins its Flutter version through.fvmrc, and the app's dart defines are generated from Doppler values by a helper script in tool/. The CI path is covered by the make target ci, and functions-deploy deploys the Cloud Functions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/hash-studios-prism)Was this useful?