UGC Reactions from Real Creators
Real creator library videos at $11 and images at $8. Custom production from $25/video with a $250 minimum. Commercial licensing included.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Create RAFTY V1. Keep it extremely simple. Build a production-quality responsive SaaS UI for branded social post creation. Core flow: upload ONE image, enter a few details (Offer/Title, Destination, Business/Product, optional Price, optional Date/Month, optional Additional text), optionally select included services, optionally generate an AI caption, then Generate Post, preview, edit text, save, and download. One picture per post only.
Design: premium minimalist SaaS, white/light surfaces, violet/purple accents, tasteful gradients, blurred/glass overlays, rounded cards, subtle shadows, strong typography. Main Create page: left compact form, right large live 4:5 preview on desktop; stacked elegantly on mobile. Minimal navigation: Create, Posts, Templates, Brand, Settings. Mobile uses compact bottom navigation. No unnecessary text.
Critical product rule: templates control ALL visual layout. AI only creates/re-writes text. Do not let AI redesign layouts. Templates use dynamic placeholders such as title, destination, business, price, date, services, additional_text, image, logo. Build a small deterministic template system with a few polished example templates. Generated posts should often use modern gradients, blur, image overlays, and editorial compositions.
Business brand: simple logo, brand colors, font settings. Multi-tenant structure with Supabase-ready architecture and tenant isolation. Keep database simple. Do not implement social publishing, scheduling, billing, analytics, competitor research, team collaboration, video, multi-image posts, advanced admin, or other features not listed. Make primary interactions functional and use realistic demo content. This is the first implementation, so prioritize the Create workflow and polished responsive UX over breadth.
This project was built with Lovable.
Live app: https://poster-forge-craft.lovable.app
Continue developing this project in the Lovable editor.
main on GitHub and your changes sync back into Lovable, ready for your next prompt.This fork is wired to your own Supabase project, not the original Lovable one.
Create a new, empty project at supabase.com/dashboard.
Do not reuse a project that already hosts another app: the schema below creates
public.profiles, replaces public.handle_new_user(), and repoints the
on_auth_user_created trigger on auth.users, which would break an existing app.
If you connected the Supabase GitHub integration (Dashboard > Project Settings >
Integrations > GitHub), migrations in supabase/migrations/ are applied automatically
when the configured production branch is pushed. Nothing to do by hand - just make sure
that branch is the one carrying this code.
Otherwise, open SQL Editor > New query, paste supabase/setup.sql,
and run it once. That file is every migration concatenated in chronological order and
wrapped in a transaction. Or use the CLI:
npx supabase link --project-ref evspytufythlndhxudez
npx supabase db push
cp .env.example .env
Fill in the values from Project Settings > Data API (URL) and API Keys:
| Variable | Where to find it | Secret? |
|---|---|---|
SUPABASE_PROJECT_ID / VITE_SUPABASE_PROJECT_ID | Your project ref | No |
SUPABASE_URL / VITE_SUPABASE_URL | Data API > Project URL | No |
SUPABASE_PUBLISHABLE_KEY / VITE_SUPABASE_PUBLISHABLE_KEY | API Keys > publishable (or legacy anon) | No |
SUPABASE_SERVICE_ROLE_KEY | API Keys > service_role | Yes |
The VITE_-prefixed copies are what the browser bundle reads; keep them identical to
their unprefixed counterparts. SUPABASE_SERVICE_ROLE_KEY is server-only and bypasses
row-level security - never prefix it with VITE_ and never commit it. .env is gitignored.
bun install # or: npm install
bun run dev
Two things have to be true or the deployment serves nothing.
Vercel deploys the production branch configured on the project, main by default.
This repo's work originally lived only on a feature branch, so a Vercel project
pointed at main had nothing to build. main now carries the full project.
.env is gitignored, so Vercel never receives it. Without these the Supabase client
throws on first use and server-side rendering fails, which renders as a blank or
error page rather than an obvious message.
In Vercel > Project > Settings > Environment Variables, add:
| Variable | Value | Notes |
|---|---|---|
SUPABASE_URL | https://<ref>.supabase.co | |
SUPABASE_PUBLISHABLE_KEY | your publishable key | |
VITE_SUPABASE_URL | same as SUPABASE_URL | baked into the browser bundle at build time |
VITE_SUPABASE_PUBLISHABLE_KEY | same as SUPABASE_PUBLISHABLE_KEY | baked in at build time |
SUPABASE_PROJECT_ID / VITE_SUPABASE_PROJECT_ID | your project ref | |
SUPABASE_SERVICE_ROLE_KEY | your service_role key | secret - server only |
The VITE_-prefixed values are substituted during the build, so changing them
requires a redeploy, not just a restart.
Optional, only for features that need them:
| Variable | Enables |
|---|---|
META_APP_ID, META_APP_SECRET | Facebook / Instagram publishing |
CRON_SECRET | the /api/public/cron/automation worker |
LOVABLE_API_KEY, RESEND_API_KEY | contact-form email delivery |
This is the beginning of the README. Read the rest at the original. Read the full README ↗