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.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Shopify app de resenas de producto en Remix + Prisma + PostgreSQL. Billing con reconciliacion automatica, App Proxy verificado por HMAC, theme extension y webhooks GDPR.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Shopify app that shows product reviews on a merchant's storefront, with one non-negotiable guarantee: reviews already collected are never hidden or deleted, on any plan, ever.
Downgrading, or a failed payment, only reduces how many reviews are displayed. The merchant's data and moderation panel stay complete on Free and Pro alike, and CSV export is available on every plan. Data portability is the differentiator, not a paid perk.
Framework · Remix, Shopify's recommended stack, with Polaris and App Bridge
Database · PostgreSQL via Prisma
Billing · Shopify Billing API for the Free/Pro subscription
Storefront widget · Theme App Extension in plain Liquid and vanilla JS, no build step
Photos · Supabase Storage, same project as the database
Email · Resend, for post-purchase review requests
Hosting · Render
No AI anywhere in the core product. That is a deliberate product decision, not a gap.
Plan definitions and price live in app/config/plans.server.ts. Single source of truth, and the price is an environment variable rather than a hardcoded constant.
The shop's plan is cached on the Shop model. The storefront widget cannot afford an Admin API call per page view.
Plan reconciliation in app/services/billing.server.ts self-heals from Shopify's Billing API on every admin page load, so a missed webhook never leaves a merchant on the wrong plan.
The never-hide guarantee is enforced once, in app/services/reviews.server.ts, for every caller. It is not a rule scattered across route handlers.
Storefront data is reached through Shopify's App Proxy. Every request's HMAC signature is verified server-side in app/utils/app-proxy.server.ts before anything touches the database.
Post-purchase emails are scheduled by the orders/paid webhook and sent by a separate cron route. Sending is decoupled from the webhook so a slow or failing email provider never blocks order processing.
GDPR compliance webhooks handle the three mandatory topics for public Shopify apps. This is legally mandated deletion, a different thing from the plan-based guarantee above.
Scheduled jobs run on GitHub Actions cron rather than a dedicated worker process, which keeps the whole thing inside a hobby-tier budget.
Create a Postgres database. For local development a container keeps test data fully separate from production. Then copy .env.example to .env, fill in DATABASE_URL, and run:
npm install
npm run config:link
npx prisma migrate deploy
npm run dev
config:link connects this code to an app in your Partners account and fills in the Shopify keys. npm run dev gives you a tunnel URL and an install link for your development store.
Every environment variable is documented inline in .env.example.
---
## Status
Deployed and running. Built and live: OAuth install, Postgres schema, Free/Pro billing with self-healing sync, moderation panel, CSV export on both plans, storefront widget with submission form, photo uploads and widget customization gated to Pro, post-purchase review request emails, low-storage ops alerting, and the mandatory GDPR webhooks.
Shopify granted protected customer data access, so the orders/paid and orders/cancelled topics are active.
Still ahead: final Pro pricing, App Store listing copy and screenshots, and submission for review.
---
## License
MIT
Built by **Manuel Sebastián Cetre** · [GitHub](https://github.com/cetremore26) · [email protected]