Saltar al contenido

Plantilla de Foto y video

Glimmer AI Photo Effects and Portrait Studio App

An Expo app for AI photo effects and headshots: pick a look, add one photo, get a set to compare and share. Gemini edits run through a Supabase Edge Function and are paid for in credits.

  • 19 pantallas
  • iOS y Android
  • Datos de ejemplo
  • Actualizada el 4 nov 2026
  • Versión verificada

Copia gratis · Código completo · Sin tarjeta

Pantallas

6 pantallas de la app en funcionamiento.

Qué incluye

  1. 14 effects and 4 headshot styles with real before/after sample results of six AI-generated people
  2. Drag-to-compare before/after on the feed hero, effect pages and every result
  3. Gemini image edits through a Supabase Edge Function, one image per call, so progress is real
  4. Headshot sets of 8 made in the background from 6 to 10 selfies, which are deleted when the set is done
  5. Credits ledger in Postgres: welcome and Pro monthly grants, packs, and a spend and refund per image
  6. Likeness rules: consent once, and a check that refuses minors, public figures and explicit photos

Acerca de esta plantilla

Overview

Glimmer is a dark, photo-led AI photo studio in the style of Remini or Lensa. People pick an effect (oil portrait, film noir, cel shade, comic pop, Super 8 and more), add one photo of themselves, choose how many variations and what shape, and get a set they can compare with the original, label as AI-edited and share. Headshots turns 6 to 10 selfies into a set of 8 studio portraits.

It is an Expo SDK 57 / React Native app on the FluxNative kernel, with a Supabase backend: the AI runs in one Edge Function that calls Gemini with your key, and credits are kept in your own Postgres tables.

Key features

  • Effects feed with a self-sweeping before/after hero, trending cards, kinds as chips and every effect with its uses and price.

  • Two-step create: effect and photo (library, camera or the sample photo), an AI photo check in plain words, then variations, shape and a one-time likeness agreement.

  • An honest wait screen: place in line, images landing one by one, named steps, Stop with a confirmation; refusals and failures each have a designed end with the credits given back.

  • Results with drag-to-compare, favourites, a full-screen viewer, Run it again at its price, and Share with an "AI-edited" label switch (on by default).

  • My studio: sets being made now with real progress, every set by date, filters by effect or favourites, unfinished runs with credits back.

  • You: balance with a 7-day chart, Pro, photo rules and data, Delete my photos and data, reminders for headshot sets, purchases and legal pages.

Screens

18 screens: Welcome, a three-step intro (ending on the likeness rules), Effects, effect detail, Create, Options, Headshots, the wait screen, Results, a full-screen viewer, My studio, You, Credits, Pro (paywall), Photo rules and data, Terms, Privacy and About.

AI and backend

  • Tasks in supabase/functions/ai/tasks.ts: photo-check (free), apply-effect (2 to 4 credits an image), headshot-selfies and headshots (10 credits a set, made in the background), headshots-resume, credits and claim-credits.

  • Gemini image models edit the person's own photo; prompts for each effect live in supabase/functions/ai/effects.ts with the same ids and prices as the app's catalog.

  • The migration adds creations and credit_ledger with row-level security, and security-definer functions to grant, spend (with a per-user lock), refund and add packs; only the function can move credits.

  • No accounts: the app signs each install in anonymously. Uploaded selfies are deleted from storage when a set is done; Delete my photos and data removes every set and file.

  • Sample mode: with a blank .env every screen works on bundled sample content. The six sample people and all their results are AI-generated (fictional adults); CREDITS.md lists the model and prompt of every image.

Monetisation

Credits pay for each image (new people get 6). Credit packs (30, 80, 200) are consumables in a RevenueCat offering named credits; the server checks each purchase with RevenueCat before adding its credits. Glimmer Pro (weekly or yearly, entitlement pro) adds 120 credits a month and allows 4 variations per run instead of 2. Until you connect RevenueCat to sell, the paywall and Credits show sample prices and say subscriptions open in the App Store version.

Setup

Connect Supabase and apply the two migrations, add your Gemini key and deploy the functions, then connect RevenueCat with the Pro products and the credit packs. Each step below has a prompt your coding agent can run.

aiphoto effectsai portraitsheadshotsgeminisupabaserevenuecatcreditsreact nativeexpo

Qué obtienes

  • Código completo: Expo y React Native en TypeScript, como una app en tu espacio de trabajo.
  • Vista previa en vivo: prueba cada cambio en el navegador o en tu móvil.
  • Versión verificada: compila y cada pantalla abre sin errores.
  • Asistente de IA: cambia lo que quieras por chat; cada cambio usa créditos.
  • Compilaciones y subida a tiendas: compilaciones de iOS y Android, enviadas a App Store y Google Play desde Publish.
  • Copiar no gasta créditos: la copia en sí no cuesta nada.

Creada con la versión actual de FluxNative.

Qué necesitas

  • Una cuenta de FluxNative: el plan Free admite hasta 2 apps.
  • Sin backend para empezar: usa datos de ejemplo hasta que conectes el tuyo.
  • Creator o superior: para compilaciones nativas y subida a tiendas.
  • Cuentas de tienda: Apple Developer Program (99 US$ al año) y Google Play (25 US$ una vez), para publicar.

Qué incluye el código

pantallas
19
archivos en tu copia
423
líneas escritas para esta app
6860
componentes de UI listos
142

Textos de la app en inglés y vietnamita

Tecnologías

Expo SDK
57.0.22
React Native
0.86.3
React
19.2.8
TypeScript
6.0.3
Expo Router
57.0.21
Supabase JS
2.112.3
RevenueCat
10.9.1

Del package.json de esta versión.

Sistema de diseño

Títulos
Plus Jakarta Sans
Texto
Fuente del sistema
  • Solo modo oscuro
  • Liquid Glass
  • Botones de cápsula
  • Tarjetas de imagen

Configuración después del fork

Tu copia se abre con el asistente de IA que la creó. Sigue los pasos en orden: conecta en Server lo que pida un paso y luego envía cada prompt.

  1. Connect Supabase

    Server › Backend › Supabase. Apply both migrations, turn on anonymous sign-ins in the Supabase dashboard (Authentication › Sign In / Providers), and write the public URL and anon key to .env.

    Prompt para la IA

    Connect this app to my Supabase project from Server › Backend › Supabase and write EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to .env. Apply supabase/migrations/20261019000000_ai_kit.sql, then supabase/migrations/20261019120000_glimmer.sql (creations, the credit ledger and its functions, effect_uses, Delete my data). Remind me to turn on Authentication › Sign In / Providers › Allow anonymous sign-ins in the Supabase dashboard, since the app signs each install in anonymously, and to keep the anonymous sign-in rate limit per IP low. Then confirm the Effects tab no longer shows the sample line and My studio starts empty.

  2. Turn on the AI

    Server › API keys & secrets: add GEMINI_API_KEY (a billed Google AI Studio project; image models have no free tier), then deploy the ai function and push its secrets.

    Prompt para la IA

    Add my Gemini key as GEMINI_API_KEY under Server › API keys & secrets. Deploy the ai Supabase Edge Function and push its secrets. Glimmer charges its own credits, so leave AI_FREE_UNITS_PER_DAY and AI_PRO_UNITS_PER_DAY unset. Then invoke the function as a test user with { "task": "credits" } and tell me the balance it returns (6 welcome credits for a new user), and with { "task": "photo-check" } on one of the sample photos in assets/samples/people to check the vision model answers.

  3. Sell Pro and credit packs

    Server › Monetization: RevenueCat products for Pro (weekly, yearly) and the three credit packs, the public SDK keys, the webhook secret and REVENUECAT_SECRET_KEY.

    Prompt para la IA

    Connect RevenueCat under Server › Monetization. Create the entitlement pro and a current offering with glimmer_pro_weekly and glimmer_pro_annual, and an offering named credits with the consumables glimmer_credits_30, glimmer_credits_80 and glimmer_credits_200 (the number is the credits each adds). Write EXPO_PUBLIC_REVENUECAT_IOS_KEY and EXPO_PUBLIC_REVENUECAT_ANDROID_KEY to .env and update PLAN_PREVIEW and PACK_PREVIEW in src/services/iap/index.ts to the same prices. Save a long random REVENUECAT_WEBHOOK_SECRET and a RevenueCat v1 secret API key as REVENUECAT_SECRET_KEY under Server › API keys & secrets, deploy the revenuecat-webhook function with JWT verification off and redeploy ai, and give me the webhook URL and the Authorization header value to paste into RevenueCat › Integrations › Webhooks.

  4. Set your prices and effects

    Optional. Effect prices, welcome and Pro monthly credits live in the server's ai function (functions/ai/effects.ts) and src/services/effects/catalog.ts; change both together.

    Prompt para la IA

    Show me the effects, their credit prices, the welcome credits (6) and Pro's monthly credits (120) from the server's ai function (functions/ai/effects.ts) and src/services/effects/catalog.ts. Apply the prices I give you in both files with the same ids, keep the server's effect prompts in step with any effect I rename or add, redeploy the ai function, and update the credit figures shown on the Pro and Credits screens.

  5. Set your icon, store IDs and legal pages

    Name, icon, colours and legal page URLs: app.json name and bundle id, assets/icon.svg, the seed in src/theme/brand.ts, and the privacy, terms and support URLs in .env.

    Prompt para la IA

    Rename the app to the name I give you in app.json (name, slug, scheme, bundle id and package) and in the copy that says Glimmer. Redraw assets/icon.svg and assets/adaptive-icon.svg for my brand and render icon.png, adaptive-icon.png, favicon.png and splash-icon.png from them. Change brandSeed in src/theme/brand.ts to my colour. Write my EXPO_PUBLIC_PRIVACY_POLICY_URL, EXPO_PUBLIC_TERMS_URL and EXPO_PUBLIC_SUPPORT_URL to .env, and replace the sample text in src/features/legal with my own terms and privacy policy.

Cómo usar esta plantilla

  1. Usa la plantilla para tener una copia editable, con su código fuente, en tu espacio de trabajo (Plantillas).
  2. Pide al asistente de IA los cambios que quieras, con tus propias palabras (Trabajar con el asistente).
  3. Prueba cada cambio en la vista previa en vivo o en tu teléfono (Vista previa).
  4. Con Creator o superior, compílala para iOS y Android y envíala a las tiendas (Resumen de la publicación).

Licencia y soporte

Licencia

La app creada para ti es tuya; el código de la plantilla sigue siendo de InspireUI y tiene licencia para usarse en tus apps (Términos › Nuestra propiedad intelectual).

Ayuda

  • Guías sobre plantillas, el asistente y la publicación.
  • Contactar con soporte desde Ayuda; respondemos normalmente en 1–2 días laborables.
  • En tu copia, pregunta al asistente de IA sobre cualquier pantalla o archivo.

Hecho por FluxNative

Política de soporte

Preguntas

¿Es gratis?

Copiar una plantilla gratis no cuesta nada, ni créditos; una Premium es un pago único por sitio web. Los cambios por chat y las compilaciones usan créditos.

¿Qué es mío?

Eres dueño de la app creada para ti. El código de la plantilla sigue siendo de InspireUI y tiene licencia para usarlo en tus apps (Terms › Our intellectual property).

¿Necesito saber programar?

No. Pide cambios al asistente con tus palabras; el código completo está ahí cuando lo quieras.

¿Incluye backend?

No. Una app completa indica el backend que necesita y conectas el tuyo en Server; un diseño usa datos de ejemplo.

¿Puedo cambiar el diseño?

Sí. La pestaña Design cambia el color de marca, los colores, las fuentes y las esquinas sin gastar créditos; el asistente cambia el resto.

¿Qué plan necesito para publicar?

Creator o superior compila y sube a las tiendas, con tus propias cuentas de Apple y Google. La app de una plantilla Premium compila en cualquier plan cuando su sitio web está conectado.

¿Puedo descargar el código?

Sí, con Download source o Push to GitHub, cuando tu espacio de trabajo haya comprado un plan, créditos o una plantilla de pago. La app de una plantilla Premium también necesita su sitio web conectado.

¿Y si se hizo con una versión anterior de FluxNative?

Tu copia funciona tal cual. Pide al asistente que la actualice a funciones nuevas, como idiomas y monedas de la app; es el último paso de configuración.

¿Lista para convertirla en tu app?

Empieza desde Glimmer AI Photo Effects and Portrait Studio App y cambia lo que quieras por chat. Tu copia incluye el código fuente completo.

Copia gratis. Sin tarjeta de crédito.

Taking a little longer than usual…

Loading FluxNative