ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Turn a rough note or voice memo into an editable learning story draft, with Te Whāriki or EYLF links, child voice and next steps. You edit and sign off.
Translation pending
EducationTypeScript · PLpgSQLGitHub @ArohaBookingsOnlineOwner 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
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 ↗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]