ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Turn 3 bullet points into a beautiful, EYLF-aligned learning story in under 30 seconds. Built for educators across Australia and New Zealand.
A division of Aria Care. Built by Leo Bons in Christchurch, New Zealand 🇳🇿
Educators spend 30+ minutes writing each learning story. StoryLoop does it in 30 seconds. Voice-record or type a few observations, and the AI writes a warm, EYLF-aligned story with learning outcomes and extension suggestions. Educators review, edit, and publish. Hours saved every week.
| Plan | AUD | NZD | Limit |
|---|---|---|---|
| Free | $0 | $0 | 3 stories/month |
| Educator | $19/mo | $21/mo | Unlimited stories |
| Educator Pro | $29/mo | $33/mo | Unlimited, plus child profiles and family translation |
| Centre Starter | $99/mo | $109/mo | 10 educator seats, unlimited children |
| Centre Growth | $199/mo | $219/mo | 25 educator seats, unlimited children |
Individual plans start with a 7-day free trial, centre plans with a 30-day free trial. Live prices: https://storyloop.space/pricing
supabase/schema.sql → RunNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY (keep secret!)https://storyloop.spaceOPENAI_API_KEY| Nickname | Currency | Amount | Billing |
|---|---|---|---|
| Educator AUD | AUD | $19.00 | Monthly |
| Educator NZD | NZD | $21.00 | Monthly |
| Centre AUD | AUD | $49.00 | Monthly |
| Centre NZD | NZD | $55.00 | Monthly |
price_) into env varshttps://storyloop.space/api/stripe/webhookcheckout.session.completed, customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_failedSTRIPE_WEBHOOK_SECRETSTRIPE_FIRST_MONTH_COUPON_IDSTRIPE_FIRST_MONTH_COUPON_LABELRESEND_API_KEY.EMAIL_FROM to StoryLoop by Aria Care <[email protected]>.EMAIL_REPLY_TO to the founder/support inbox.EMAIL_UNSUBSCRIBE_SECRET to a random 32+ character secret.Copy .env.example to .env.local and fill in every value:
cp .env.example .env.local
Generate a JWT secret:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Paste it as ADMIN_JWT_SECRET.
Required production env vars now include:
RESEND_API_KEYEMAIL_FROMEMAIL_REPLY_TOEMAIL_UNSUBSCRIBE_SECRETSTRIPE_FIRST_MONTH_COUPON_ID if activation offers should auto-applySTRIPE_FIRST_MONTH_COUPON_LABEL for email/UI copyCRON_SECRET for monthly reset and lifecycle email automationnpm install
npm run dev
# → http://localhost:3000
git init
git add .
git commit -m "StoryLoop v1.0"
git remote add origin https://github.com/YOUR-USERNAME/storyloop.git
git push -u origin main
Then at vercel.com:
.env.localUpdate your Stripe webhook URL to match your Vercel URL after first deploy.
ADMIN_EMAIL to the authorised administrator account.ADMIN_PASSWORD_HASH.ADMIN_JWT_SECRET of at least 32 characters.https://storyloop.space/admin-login.StoryLoop is built to rank on Google. Key pages target:
Submit sitemap to Google Search Console after deploy.
Post once in 2-3 early childhood educator groups:
"Built a free tool that writes learning stories from your observations — made it because my friend who works in childcare was spending 2 hours every night on these. Free to try, would love honest feedback from people who do this job."
That's it. No spam, no repeated posts. If it's good, it spreads.
Target: 200 paid users × $19 = $3,800/month with zero human sales.
storyloop/
├── app/
│ ├── (auth)/login, signup
│ ├── (app)/dashboard, generate, history, billing
│ ├── (admin)/admin, admin-login
│ ├── api/
│ │ ├── generate (main AI route)
│ │ ├── me (current profile)
│ │ ├── stripe/checkout, webhook, portal
│ │ └── admin/login, logout, users
│ ├── auth/callback
│ ├── about, privacy, terms
│ └── page.tsx (landing)
├── components/landing/ (9 sections)
├── components/app/ (DashboardNav)
├── lib/
│ ├── ai/ (generate.ts, prompts.ts)
│ ├── supabase/ (client, server, admin)
│ └── admin-auth.ts (JWT session verification)
├── supabase/schema.sql
├── middleware.ts
└── public/logo.svg, favicon.svg
Scheduled jobs — add these Vercel crons (already in vercel.json):
{
"crons": [
{ "path": "/api/cron/reset-usage", "schedule": "0 0 1 * *" },
{ "path": "/api/cron/email-automation", "schedule": "0 */6 * * *" }
]
}
Or manually run this in Supabase SQL editor on the 1st of each month:
SELECT public.reset_monthly_usage();
Built with care, for the people who care for the next generation. 🌱
— Leo Bons, Founder · [email protected]