Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Draw Lenormand cards and keep a personal reading history — no account needed.
Translation pending
LifestyleTypeScript · CSSGitHub @peggy1213-createOnlineOwner 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 ↗This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Visitors get free AI readings (served by Cloudflare Workers AI, metered in D1), with two tiers:
FREE_USER_DAILY_CAP (2) per day, gated by Cloudflare
Turnstile, tracked by an anonymous cookie with an IP backstop.FREE_AUTH_DAILY_CAP (5) per day, keyed by user id,
Turnstile skipped (the account is the gate).Sign-in (Google via Supabase) is dev-only: it appears only when
NEXT_PUBLIC_ENABLE_AUTH=true at build time. Production leaves it unset, so
www.in-betweens.cc shows the anonymous tier only. dev.in-betweens.cc
(built from master) sets it to true.
Production (production branch → www) | Dev (master branch → dev) | |
|---|---|---|
| Sign-in | off | on (NEXT_PUBLIC_ENABLE_AUTH=true) |
| D1 database | lenormand-free | lenormand-free-dev |
| Turnstile | real widget | same widget (add the dev hostname) |
NEXT_PUBLIC_TURNSTILE_SITE_KEY is public and committed in .env.production.
The secret key and hash salt are Worker secrets, per environment.
Create the D1 database and paste its id into wrangler.jsonc
(d1_databases[0].database_id):
npx wrangler d1 create lenormand-free-dev # or lenormand-free for prod
Apply the schema (local for next dev, remote for the deployed Worker):
npx wrangler d1 migrations apply <db-name> --local
npx wrangler d1 migrations apply <db-name> --remote
Set the Worker secrets:
npx wrangler secret put TURNSTILE_SECRET_KEY
npx wrangler secret put ANON_HASH_SALT
For local dev, put the same two in a .dev.vars file (gitignored).
Add the environment's hostname to the Turnstile widget's allowed hostnames in the Cloudflare dashboard.
The free tier stores only opaque counters — an anonymous visitor UUID
(HttpOnly cookie), a salted hash of the IP, per-user counts (signed in), and
daily totals. Prompts, replies, and raw IPs are never persisted. Note: free
readings run during next dev hit the real Workers AI service and use real
quota.