FloCafe
FloCafe is the free, local-first restaurant POS in the FloPOS ecosystem. Run orders, tables, kitchen display, and local data without a software subscription.
Revenue-focused micro SaaS marketplace and creator surfaces for AI automations.
CommerceTypeScript · PLpgSQLGitHub @corbienoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Mini SaaS is a multi-surface Next.js 16 marketplace for showcasing and selling micro SaaS automations:
• Marketing site (/) with hero, category grid, value props, and CTA panel.
• Marketplace browse + detail (/apps, /apps/[slug]) backed by Supabase. The flagship workspace remains at /apps/corbin-email-guru.
• Creator surfaces (/dashboard, /onboarding) for listings, payouts, installs, and Stripe Connect.
• Auth (/login) with email + password and magic links via Supabase Auth.
• API for apps, creator metrics, Connect onboarding, and Stripe webhooks.Read the full README ↗Mini SaaS is a multi-surface Next.js 16 marketplace for showcasing and selling micro SaaS automations:
/) with hero, category grid, value props, and CTA panel./apps, /apps/[slug]) backed by Supabase. The flagship workspace remains at /apps/corbin-email-guru./dashboard, /onboarding) for listings, payouts, installs, and Stripe Connect./login) with email + password and magic links via Supabase Auth.Built with Next.js 16, TypeScript, Tailwind, shadcn/ui, framer-motion, Supabase, and Stripe Connect.
npm install
cp .env.example .env.local
npm run dev
Visit http://localhost:3000 for the marketing surface, or jump to:
/apps – marketplace browse grid/apps/corbin-email-guru – flagship productivity app/dashboard – creator console (signed-in)/onboarding – Stripe Connect onboarding (signed-in)/login – sign in / sign upCreate .env.local from .env.example. Never commit secrets.
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# Supabase → Project Settings → API
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_KEY=
# Stripe → Developers → API keys, Connect, Webhooks
STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
Notes:
SUPABASE_SERVICE_ROLE_KEY is accepted as an alias of SUPABASE_SERVICE_KEY.NEXT_PUBLIC_SITE_URL is used for auth redirects and Stripe Account Link return/refresh URLs.http://localhost:3000/auth/callback (and your production URL) to Authentication → URL Configuration → Redirect URLs.In the Supabase SQL editor, run these files in order:
supabase/schema.sql — tables, indexes, RLS, signup trigger, creator_metrics() RPCsupabase/seed.sql — sample creators, apps, installs, and payoutsBoth scripts are idempotent (IF NOT EXISTS / ON CONFLICT).
/apps chips now include Grok, Claude, and OpenAI in front of the workflow categories. Provider chips match the provider name in apps.tags; category chips match apps.category exactly (the old Sales chip is now Sales Ops, which is what the seed stores).
After pulling this change, re-run the seed so the new listings appear:
supabase db query -f supabase/seed.sql
Or paste supabase/seed.sql into the Supabase SQL editor. Existing rows upsert in place.
CLI equivalent if you use the Supabase CLI and are linked to a project:
supabase db query -f supabase/schema.sql
supabase db query -f supabase/seed.sql
Seed creators are storefront-only (no auth.users row). Signing up in the app creates a separate creator profile via the handle_new_user trigger.
npm run dev/dashboard while signed out — you should land on /login?next=/dashboard/dashboard and /onboarding should load; Log out in the header should return you to /login/onboarding, save a studio name + country, then Continue to payouts/onboarding?stripe=return), charges/payouts flags should update after Stripe redirects and/or the webhook runsForward webhooks with Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhook
Copy the CLI whsec_... value into STRIPE_WEBHOOK_SECRET, then trigger an event:
stripe trigger account.updated
POST /api/stripe/webhook verifies the signature, stores the event on webhook_events (primary key = Stripe event id), and updates creators.stripe_account_id / onboarding flags for Connect events (account.updated, capability.updated, account.application.deauthorized).
| Method | Path | Auth | Purpose |
|---|---|---|---|
GET | /api/apps?q=&category=&featured= | public | List published apps |
POST | /api/apps | creator | Create a listing |
GET | /api/creator/metrics | creator | Dashboard RPC + related rows |
GET | /api/creator/onboarding | creator | Profile + Stripe sync |
POST | /api/creator/onboarding | creator | Save profile; create Express Account Link |
POST | /api/stripe/webhook | Stripe signature | Record events; update Connect status |
See docs/data-model.md for tables, RLS, and relationships.
| Command | Description |
|---|---|
npm run dev | Start Next.js (Turbopack) |
npm run build | Production build |
npm run start | Run the built app |
npm run lint | ESLint (flat config) |
src/app/
page.tsx # Landing page
(marketplace)/apps/page.tsx # Marketplace browse
(marketplace)/apps/[slug]/page.tsx
(marketplace)/apps/corbin-email-guru/page.tsx
(creator)/dashboard/page.tsx
(creator)/onboarding/page.tsx
(auth)/login/page.tsx
auth/callback/route.ts
api/apps/route.ts
api/creator/onboarding/route.ts
api/creator/metrics/route.ts
api/stripe/webhook/route.ts
src/proxy.ts # Session refresh + protected creator routes
supabase/schema.sql
supabase/seed.sql
Admin approval queue, featured-placement admin UI, app-manifest deploy hooks, production Vercel setup, and live paid checkout for buyers. Connect onboarding + webhook plumbing is in place so checkout can be added later.