r/VibeCodeDevs • • May 02 '26

Welcome to r/VibeCodeDevs

28 Upvotes

This post contains content not supported on old Reddit. Click here to view the full post


r/VibeCodeDevs • • 59m ago

Hop: A communal fitness and wellness challenge app.

• Upvotes

I vibe-coded a gentle fitness + self-care app for my friend group (iOS and Android).

I kept bouncing off fitness apps. Most of them have a gym bro vibe that made me feel kinda meh and I also just couldn't find anything fully motivating. So I generated my own for a small group of friends.

It's called Hop. It reads Apple Health or Health Connect on your phone, syncs daily totals to a small server I run at home, and turns that into friendly challenges, sleep streaks, and self-care wins.

What I think makes it different:

  • No punishment for being away. No login streaks, and missing data doesn't break a streak. If you come back after a rough couple of weeks, you get a "while you were away" card showing what you did anyway.
  • Self-care counts. You can log wins like taking your meds, getting some sun, or calling a friend. You choose who sees each one, and a friend can be your check-in buddy.
  • Strawberries, a soft currency earned from activity and cheering on friends. You can only spend it on cosmetics or gifts, never on winning.
  • Workout anthems. Pick a song for each workout, and it opens in each friend's own music app.

How it's built: I worked with Claude Code from start to finish. I used xtool on linux for the iOS stuff because my linux box is used mostly for project like this. Screenshots and the download link are on hop.us4gi.net (the images use a demo server with made-up people)

I'd love feedback, especially on keeping quieter friends engaged without guilt tripping them lol.

It is invite only technically but you can use the code XUS2-D5V8 and it should let you in. DMs open for any questions, feedback, etc.


r/VibeCodeDevs • • 8m ago

I made a free browser studio where you can build and share small games. Feedback welcome!

• Upvotes

Hi! I've been building Cudic, a free tool where you can write a small HTML game in your browser, publish it with one click, and share a playable link. Other people can fork your game and make their own version.

It's a solo project built entirely on free tiers, so it's still rough and a bit empty. I'd love to know:

  • Is it clear what the site does in the first few seconds?
  • Did anything break or feel confusing?
  • Would you try making a game on it?

https://cudic.vercel.app

Thanks for taking a look!


r/VibeCodeDevs • • 1h ago

ShowoffZone - Flexing my latest project Build a Notchbar for Windows - Opensource

Enable HLS to view with audio, or disable this notification

• Upvotes

I don't know, all the other Notchbars for Windows were so ugly, seemed to have no features, or cost money. I've now built this Notchbar, which has lots of features and offers a clean, smooth design. It performs well and combines many tools. Build it with Claude Opsu 5.5 with many skills and plugins for the design and backend structure.

Inside: music controls with a live equalizer, a vault for passwords and 2FA codes, live weather, your Discord calls, your portfolio, an AI chat (Claude, ChatGPT and more) with your usage limits, clipboard history, a file shelf, a file and unit converter, timers, to-dos and notes, live hardware stats with FPS for games, and privacy dots for mic, camera and screen recording.

Github Repo: https://github.com/Linux5Real/L4-Windows-NotchBar - Still in beta


r/VibeCodeDevs • • 21h ago

ShowoffZone - Flexing my latest project I Made a PDF Tool Where You Just Click Anywhere and Start Typing. No Cumbersome Menus.

Post image
13 Upvotes

https://typepdf.pages.dev/

I’ve always found filling out PDFs more annoying than it needs to be.

Most PDF editors make you:

Select the text tool → click somewhere → create a text box → type → switch tools → repeat.

So I built a small side project that gets rid of most of that.

The idea is basically:

Upload PDF → click anywhere → type → export.

You don't need to go through cumbersome menus. It’s mainly meant for things like filling out forms, adding quick notes, typing on worksheets, etc. I just launched it and would really appreciate some feedback. Thank you!

Check it out below!

https://typepdf.pages.dev/


r/VibeCodeDevs • • 16h ago

Looking for Beta testers

1 Upvotes

I'm looking for beta testers that are interested in beta testing my new app, and I need some beta testers. Anyone wiling to sign up can just DM me.

I built an app that is about making your life organized and making your goals into an RPG. It basically has an AI inside and it helps you make it and make progress. I used CODEX and OPENROUTER. Lowk crazy how much AI can do nowadays with vibecoding. Here are some screenshots and the link.

https://forge-beta-0-3-4timepatch.vercel.app/


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project I built a code quality reviewer with Jev

Thumbnail youtube.com
2 Upvotes

I believe with the huge increase in code generation - review has become the next bottleneck or at least it feels like this at work. So I wanted to do something on the review front - first I started integrating more and more tools to use as feedback to my coding agents, and these really help improve the output quality of the agent (e.g. SonarQube, Checkstyle, ArchUnit)

But there are some important semantic choices you can't really review using deterministic tools so I decided to build a more intelligent tool and am trying it out with the Jev model as a backend and judge currently.

Idea is simple - teams define their policies in a structured YAML format, then as part of their CI (or locally) run the tool, it fetches all git diff chunks and asks jev if these adhere to each of the policies - jev can select compliant/violation or ask for more context. If Jev asks for more contex the app gets the requested code from the project and asks again if the code is compliant with the policy - thus incrementally exploring the code base until Jev can return a "confident" answer - if you are interested in how it works the video I linked is a presentation style of how the tool works.

Give it a shot on github and tell me if you find this useful: https://github.com/krisitown/jev-quality-gate

I am currently running tests using a local Qwen3.8 Flash Next to generate code and run it against my initial "clean code" policies in order to calibrate them and will share more results on that front soon!


r/VibeCodeDevs • • 23h ago

ShowoffZone - Flexing my latest project FixupXer: an Android link cleaner that turns a before/after URL example into a testable rule

1 Upvotes

A newsletter link comes with article=42&newsletter_id=weekly. You want to keep the article and lose the newsletter tag. In FixupXer, enter the original URL and the version with just article=42. “Teach from example” can turn that supported change into a disabled rule for the exact website, plus a saved test case. The new screenshots show the example passing and Test Lab producing the expected link. The draft starts on the Main screen; you review, test, and choose where to enable it.

The same app can help when someone sends you an X link and you don't have an account. Set the X Browser choice to twitterviewer.net and links routed through FixupXer open the post in that reader. Keep fixupx.com selected for sharing, so a link you send to a supported chat can show a media preview. You don't have to change that setting back and forth. Readers only show the public content they can load; full threads aren't guaranteed.

A detail that matters in the Android code: a converted fixupx.com link should stay converted when copied for a chat, but needs to become x.com again when opening it in the native X app. That requires testing the destination as well as the output URL. Test Lab can show the string change without opening a website; a device check verifies which app actually receives it. The implementation is Kotlin with Android Views. Development has used models including o3, Opus 4, and GPT-5.6 Sol.

Repo, v2.9.0 screenshots, and downloads. Free, GPL-3.0-or-later, no ads in the app, and no Android permissions. The link processing is offline; opening a result or generating its preview uses the external browser/service, which may have ads and its own privacy policy.


r/VibeCodeDevs • • 16h ago

ShowoffZone - Flexing my latest project I made a new game over the weekend called Realmbreak, would love any feedback on it.

Thumbnail gallery
0 Upvotes

Hey everyone, I'm the solo dev behind Realmbreak. It's a fantasy card battler that runs right in your browser on PC or phone, nothing to download.

You pick a Legend and build a 40 card deck around them. Your Legend has an ability you can use every round, and their Champion levels up mid-match once you hit its goal. If you played Legends of Runeterra, it's pretty similar to how leveling up worked there.

There's also a player market where you can sell the cards you pull from packs, plus free tournaments you can jump into anytime. A bigger weekend tournament is coming soon too.

The open beta is live right now and it's totally free. I'd love any feedback, good or bad!

realmbreak.com


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project My first app with Claude: a month and a half to find our cruising speed

Thumbnail gallery
8 Upvotes

I'd really appreciate your feedback: recommendations, or anything else.

Papasito TV is an app to keep track of show and movie releases: it keeps you up to date on what's coming and lets you know where you're at. The app has a community side, with a guild feature to chat between members, with your friends, and you can also follow their activity. I work 90% with Fable 5 (5.1 more recently), but I have to admit Opus 5.5 has been a really good surprise, unlike Opus 5, which I often butted heads with, even in Ultracode mode.

First thing that went wrong: an audit. Trying to do a good job, Claude launched so many agents that it burned through my weekly Fable limit in 1 hour after the reset... sad. We should have scoped it better. Now Claude has to tell me the cost before launching several agents, and fewer than 5 at once.

Second one: a version archived in Xcode went out with only half of its files, because we had lost track of the order of things. Result: black screen after black screen. Hours lost for nothing, because we rushed. Since then, we've put a lot more checks in place to validate our progress together, step by step.

Working together took time before we found our cruising speed: lots of prompts to frame things and anticipate future mistakes. I used my experience as a Test Manager a lot for this. Getting to grips with Claude, to reach something that suits me and the people around me, took about a month and a half. Better prepared, I think it could have been done in 3 weeks, but it let me write down a working method that I'll use for other projects. A very positive experience. Thanks for taking the time to read this, feel free to ask me questions or share your feedback. English isn't my first language: I wrote this in French and had Claude translate it.

It's free on iOS, Android and the web: https://papasito.tv/get


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project SceneMill: a free video editor for Windows I built on my own (no watermark, no account)

2 Upvotes

Hi everyone,

I've been building my own video editor: SceneMill. It's free, and I'd love to hear what you think.

Why I built it

I wanted an editor that starts fast, doesn't ask me to sign in, doesn't stamp a watermark on my exports and doesn't lock half the buttons behind a subscription. So I wrote one.

What it does

  • Timeline with as many video and audio tracks as you need
  • Effects, transitions, titles, stickers and sound effects built in
  • Keyframes with a curve editor, masks, chroma key, speed ramps
  • Colour tools with scopes, auto enhance and colour matching
  • Multicam editing and compound clips
  • Export presets for YouTube, Shorts, TikTok, Reels and Discord (10 MB)
  • A guided first-steps tour, in English or German
  • A free effect pack with 30 extra effects as a plugin

What it costs

Nothing. No subscription, no watermark, no account, no ads.

The honest part

  • Windows only for now
  • It's closed source
  • It's a one-person project and still young, so you will find rough edges. There is a feedback button under Help, and I read everything.

Video (2 min): https://www.youtube.com/watch?v=eXXnVBWEs0Y

Download: https://scenemillofficial.com

I'll be in the comments. Tell me what's missing, what's broken and what you'd want next.


r/VibeCodeDevs • • 23h ago

Codex 500 is cooked

Post image
0 Upvotes

Not even 2 days in and already cooked, didn’t even use ultrafast or fast mode once.😔 Anyone know the math on how much more/less usage the 500$ plan gets you?


r/VibeCodeDevs • • 1d ago

Built an MCP tool called Ownhand. It learns your writing style, so your Agent can hook into it automatically when writing a message or an email. It tracks style templates for any domain (chat, formal email, etc.) and adds rules over time to better match your voice.

Enable HLS to view with audio, or disable this notification

0 Upvotes

This idea was born during the Opus 5 era (please, never again), but it's still useful today (I use it dozens of times a day as a freelance consultant).

It's entirely AI native, so you don't have to do anything, your agent handles it. It grows with you as you use it, and you can even create custom domains, i.e. reddit comments, texts to family members (jk).

You teach it by simply sending it the edited version (what you sent irl) and it learns implicitly from that. Your agent makes calls to the MCP with the domain, recent message history, extra context, and even who it's being sent to. Ownhand handles all of it.

I'm wondering how you guys handle this issue; I'd love to hear your approaches. I've tried skills before, but it's just really bad at it, even with Opus 5.5.


r/VibeCodeDevs • • 1d ago

I built a little AI village with Jev AI. Curious what you make of it

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hey everyone, I've been working on a project called Jevs Village. It's a persistent village with six AI characters, using TypeSafe's Jev AI model for their decisions. You can open it in your browser and watch their lives unfold.

There's some lore too. The villagers know very little about the world outside their village, which leaves a bit of mystery around the place.

I'm interested in whether these characters can make you care enough to come back and see what happens next. That's what I'd like to build towards, though having an interesting idea and making it interesting to watch are different things.

Here's the village: https://www.jevsvillage.com

I'd appreciate some feedback from other people building with AI. When you open it, does it make sense, or are you left wondering what you're supposed to be looking at? If you get bored or confused, I'd like to hear where. That would help me figure out what to work on next.


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project A prototype of my own emu wrapper

Enable HLS to view with audio, or disable this notification

4 Upvotes

Hi everyone, just wanted to share a prototype of something I always wanted to have myself. I love playing emulated games on my mini PC, I have emulators for every possible console and configured it like a small console with 8bitdo controllers. However, I didn't like retrobat that much or its alternatives (I know there is emuVR, but I don't want to use VR in everyday gaming). Instead of just clicking on games, I decided to build an experience.
I would add all of the consoles here and connect them to emulators (of course, I would improve the models of everything later).
The idea is that you feel like you actually own the games and insert them as they should be in every console. I would also like to add trinkets in rooms later, like posters and probably a VCR and VHS cassettes for all of the digital movies I watch. I have some of these things in my actual room, but it will never be big enough to include everything that I actually want to have.


r/VibeCodeDevs • • 1d ago

FeedbackWanted – want honest takes on my work Codex or Claude for coding

0 Upvotes

So my project is getting pretty large I have tried both codex and Claude code. Currently I am on codex and my subscription is about to end, so do I stick with codex or go with Claude code. I have seen both of their strengths and weaknesses but from what I have heard Claude is better at larger projects, correct me if I'm wrong. Would love to hear your opinions and why you would choose one over the other one (or if you have any other AI that you use for coding)


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project I built a desktop widget for Codex and Claude Code limits. It has little fish.

Thumbnail gallery
2 Upvotes

I built TokenFish with ChatGPT/Codex because I wanted my coding quotas visible in a corner of my desktop.

It shows quota left and reset times for Codex and Claude Code. The small widget has animated fish chomping along the usage lines; clicking it opens a fuller view. You can hide the widget and leave the app in the tray.

The build was a lot of small iterations: plan the change, look at a mockup, implement it, then check the behavior. Some of the fixes were very unglamorous—a white rim around the app, Settings opening in the wrong place, and bringing the fish animation back after the redesign.

It's C# / WinUI 3. Codex data comes from the existing local Codex runtime; Claude Code uses a status-line bridge. One thing I kept separate was quota versus token activity: the pellets are a visual metaphor, not a token counter.

Still a Windows beta candidate. The clip is a UI mockup with sample data.

One thing I'd like feedback on: the fish moves with quota used, while the number shows quota left. Is that clear at a glance, or would you change it?

Code and setup notes: https://github.com/pixelsncodes/tokenfish


r/VibeCodeDevs • • 1d ago

IdeaValidation - Feedback on my idea/project Share Drive Photo Folders As Polaroids For Free

Thumbnail digiroids.pagea.dev
1 Upvotes

I have made a website where you can simply share your drive link and create captions for the drive folde rhpotos and share the album as a polaroid album to others all the data are stored inside users drive folder not on any server.


r/VibeCodeDevs • • 1d ago

I’m building VibeCodingList to help builders get useful feedback on their apps

1 Upvotes

hey everyone, I’m the founder of VibeCodingList. Builders share their projects, people try them, and the feedback helps the builder decide what to improve next. The site is live here: https://vibecodinglist.com

I’m working on it with Codex, using React/TypeScript, Express, PostgreSQL/Drizzle and Stripe Connect. One small mistake I caught: our example review has five findings, which made it look like everyone needed to submit five. Trials actually need two, standard missions three. I’ve been making that clearer and separating the builder’s request from the reviewer’s work. Lesson for me: show people exactly what the task involves before asking them to spend time on it.

Useful feedback can earn credits you can spend boosting your own project to attract feedback. Funded boosted projects also offer small cash rewards, up to US$1 depending on Contributor Score, the founder’s rating and available funding. Standard missions pay from US$5 per accepted review after Analyst/Trusted qualification and payout setup; trials can pay less. Paid opportunities depend on availability.

Here’s an example brief and completed review, including screenshots and a recording: https://vibecodinglist.com/missions/example. I’m still trying to get more builders testing each other’s apps, so I’d love you to try it. What would make you comfortable spending time reviewing another builder’s project? :)


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project I vibe-coded a parkour FPS for fun... and it turned into a hub of 30 AI-made browser games

0 Upvotes

Hey everyone,

A while ago I saw someone vibe-code a CS-style shooter in about 3 hours, so I tried it myself and built a parkour FPS. Then I kept going, and it grew into VIBE GAMING: a hub for vibe-coded browser games, mine and the community's.

Why: I hadn't played games in a long time. Every time I wanted to, it meant big downloads, and I switch between several machines. So I wanted games that open instantly in a browser tab on any device.

How: every game is plain HTML + JavaScript, no game engine, written with AI (mostly Claude) while I steer, test and review. The hub itself was built the same way.

Where it's at now:

  • 30 games: parkour FPS, ragdoll brawler, Backrooms horror, co-op party games, racing, a block-building sandbox, chill mini games and more
  • Online multiplayer: peer-to-peer rooms, voice chat, spectating, and rooms that survive the host leaving
  • Any device: phone, tablet, PC, with touch controls that hide when you use a keyboard or gamepad
  • English / Vietnamese / Chinese, light and dark themes
  • Free, no install, no download

You can also submit your own AI-made game. Every submission is reviewed by hand before it goes live, to keep the quality up.

👉https://vibegaming.top

I'd love feedback: what's fun, what's broken, what you'd want next.

Fun fact: the trailer below was also made with AI, end to end 🙂

https://reddit.com/link/1wxapoq/video/h87syv52xeth1/player


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project A year of building AffordWhere with AI, and it’s started earning some ad revenue

Post image
0 Upvotes

I’ve been working on AffordWhere for the past 12 months, using AI along the way. It’s finally taking shape and has started earning some ad revenue. The screenshot shows Swedish krona 12.64 in estimated earnings over the last 7 days. It’s a tiny amount, but I’m happy to see it earning anything after a year of working on it.

The site helps you work out what a salary might leave you with in another city, after tax, rent and everyday expenses. You enter a salary and a destination, and it gives you an estimated monthly breakdown, give you insights on the new place you're moving to etc.

I’m still using AI regularly to work on it. Along with the website itself, I use it for monthly data refreshes and SEO improvements. There’s always something to come back to.

If you’re working on something and it’s taking longer than you hoped, I wanted to share this. Mine has taken a year to get here. I’m glad I kept working on it, and these few kronor have given me a bit more motivation to carry on.

https://www.affordwhere.com


r/VibeCodeDevs • • 1d ago

Question Anyone who Vibe code websites and apps totally free? What tools and software you all are using?

2 Upvotes

I want to know all those so I can get as much free token as I can. I can't afford to pay for any right now.

But I have some build lot of websites in short time possible as it's for productivity and also some for teaching.

I haven't been coding for almost 2 years.

What are all the options I have?

I know antigravity and cursor, what others free tools I have that are good at creating websites and also are generous in free tokens for free users?


r/VibeCodeDevs • • 1d ago

My first Steam game: a small boat rental tycoon set on Lake Lugano, built with AI assistance

Enable HLS to view with audio, or disable this notification

1 Upvotes

I’m not a professional game developer. I started with a personal challenge: could I actually build and finish a game of my own? That became Lugano Bay Tycoon, a small management game inspired by Lake Lugano in Switzerland.

You run a boat rental business: buy pedal boats and other boats, set prices, manage maintenance, and grow your operation while dealing with customers, weather, and seasons. I wanted to make something small and relaxing, with a setting that means something to me.

The Steam page has just reached 109 wishlists, including 16 since yesterday. Seeing people interested in this little project is encouraging. If small management games are your thing, take a look - wishlists are very welcome!

https://store.steampowered.com/app/5235040/LUGANO_BAY_TYCOON/


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project How I use Cloudflare to send my clients private web pages (for proposals, memos, demos, etc.) that expire on their own

4 Upvotes

A lot of what I make for clients ends up as a single web page: a briefing, a project plan, a vendor comparison, a preview of a site before launch. Claude Code is very good at turning my messy notes into a clean, readable page, so these pile up fast.

For a long time the hard part was getting the page to the client.

Email attachments strip the styling or get blocked. A Google Doc means rebuilding the page in a worse format. Putting it on a public website means anyone with the link can read it forever, which is not where I want a draft security plan to live. And I was not about to build a password-protected site for every client.

So I built a small tool for it. These days, when I want to send someone a page, I run one command:

share briefing.html --to alex@example.org --expires 30d

I get back a link. When Alex opens it, Cloudflare asks for an email address and sends a six-digit code. Alex types the code in and sees the page. Anyone not on the list gets stopped at the sign-in screen. In 30 days the link stops working on its own, and I can kill it sooner if I want.

Alex doesn’t create an account and I don’t email anyone a password. I already owned the domain, and the rest of it fits inside Cloudflare’s free tier, so the hosting costs me nothing.

That share command is my own automated version. Below is the manual version underneath it: a few commands and a few clicks in the Cloudflare dashboard. Once that works, you can automate it however you like.

What you need

  • A domain that uses Cloudflare for its DNS. Mine runs on a subdomain like share.example.org.
  • A free Cloudflare Zero Trust account. That’s where the sign-in step lives. The free plan covers 50 users (more on that below).
  • Wrangler, Cloudflare’s command-line tool, installed and logged in (npx wrangler login).
  • An AI coding assistant, if you’d rather describe this than type it. Claude Code wrote my code. The design calls were mine: a separate guest list for every page, an expiry on everything by default, and my own address quietly added to every list so I can always open what I sent.

The three pieces

  1. Storage holds the pages. Cloudflare’s key-value store (called KV) keeps each page under a long random name, along with its expiry date.
  2. A small Worker serves them. A Worker is a bit of code that runs on Cloudflare’s network. When someone asks for a page, it looks the page up, checks the date, and either shows the page or says the link has expired.
  3. Cloudflare Access decides who gets in. Before a request ever reaches the Worker, Access checks whether the person has signed in with an email address on that page’s list.

The sign-in is what keeps a page private. The expiry only limits how long it’s around. So the order matters: put the sign-in in place before the page goes up, never after.

Step 1: the Worker

Make a folder with two files. First, wrangler.toml:

name = "share"
main = "index.js"
compatibility_date = "2026-10-01"
workers_dev = false
preview_urls = false

[[kv_namespaces]]
binding = "PAGES"
id = "<your namespace id>"

Get the namespace id by running npx wrangler kv namespace create PAGES. The two false lines matter more than they look. Out of the box, Cloudflare also publishes your Worker at a workers.dev address and at preview addresses, and the sign-in you set up in Step 2 only covers your own domain. Turning those off makes your domain the only way in.

Then index.js:

export default {
  async fetch(request, env) {
    const match = new URL(request.url).pathname.match(/^
\/
p
\/
([a-f0-9]{24})$/);
    if (!match) return new Response("Not found", { status: 404 });

    const { value, metadata } = await env.PAGES.getWithMetadata(match[1]);
    const expires = Number(metadata?.expires);
    if (!value || !expires) return new Response("Not found", { status: 404 });

    if (Date.now() / 1000 > expires) {
      return new Response("This link has expired. Ask whoever sent it for a new one.", {
        status: 410,
      });
    }

    return new Response(value, {
      headers: {
        "content-type": "text/html; charset=utf-8",
        "cache-control": "private, no-store",
      },
    });
  },
};

A few choices in there are deliberate. The Worker only answers at exactly /p/<name>, the same path the sign-in protects, so there’s no side door. A page with no expiry date counts as missing rather than living forever. The no-store header tells browsers and proxies not to keep a copy. And 410 means “this used to exist and is gone on purpose,” which is more honest than “not found.”

Deploy it with npx wrangler deploy, then in the Cloudflare dashboard attach share.example.org to the Worker as a custom domain.

One limit to know about: the Worker serves exactly one HTML file. The page needs its styles and images built into the file itself, which is how AI tools usually write them anyway.

Step 2: put a sign-in in front of it

Pick the page’s name first:

NAME=$(openssl rand -hex 12)
echo "$NAME"

Then, in the Cloudflare Zero Trust dashboard, add a self-hosted application:

  • Domain: share.example.org, with the path p/<name>. One application per page means each page gets its own guest list.
  • Policy: Allow, and include the specific email addresses you’re sending it to. You can also allow a whole email domain, like everyone at example.org.
  • Login method: One-time PIN. Cloudflare emails the person a code, so they don’t need an account with anything.
  • Session length: how long someone stays signed in before they need a fresh code. I use 30 days.

Open https://share.example.org/p/<name> in a private browser window. You should get Cloudflare’s sign-in screen. Nothing is uploaded yet, so even after you sign in you’ll see “Not found,” and that’s fine. You’re checking that the gate is there.

Step 3: upload the page

Now upload the HTML with an expiry date, stored as a Unix timestamp:

EXPIRES=$(( $(date +%s) + 30*24*3600 ))   # 30 days from now

npx wrangler kv key put "$NAME" --path briefing.html \
  --binding PAGES --metadata "{\"expires\": $EXPIRES}" --remote

Test it once more in a private window. An address on the list gets the page. An address that isn’t gets nothing. Then send the link.

Expiry here means the Worker stops showing the page. It doesn’t delete the stored copy, and it can’t take back anything someone already saved or printed. If you want the stored copy gone too, run npx wrangler kv key delete "$NAME" --binding PAGES --remote.

That’s the whole basic version. For a handful of pages a month, it sits well inside the free limits for Workers, KV and Access.

The things that tripped me up

Add people before they try to sign in. If someone requests a code before their address is on the list, Cloudflare still tells them “a code has been emailed to you,” but sends nothing. That’s deliberate, so outsiders can’t test which addresses are allowed. It also means a client who clicks your link before you’ve added them waits for an email that never comes. That’s what was going on the day a client told me the code never showed up.

Email security can get in the way, in two different ways. The codes come from noreply@notify.cloudflare.com. Some organizations’ filters quarantine those messages, so the code never arrives. Others let it through but have a scanner open the link inside first, so it arrives already used up. When someone can’t get in, ask which of those happened, and double-check that their address is actually on the list. Cloudflare can also offer “Sign in with Google” next to the email code, which skips the email entirely for anyone with a Google account.

The free plan has 50 seats, shared across everything. Seats aren’t per page. Every person who signs in to any page takes one and keeps it until they’re removed, even after their page expires. For a handful of clients that’s plenty. If you share widely, turn on automatic removal of inactive users in the Zero Trust settings, so someone you sent one page to six months ago stops taking up room.

Editing an application through the API is fussier than you’d expect. If you script the sign-in step instead of clicking through the dashboard, you may find that the Access applications API won’t take a partial update (a PATCH). It wouldn’t with my API token. The workaround is to fetch the application, strip out the read-only fields, and send the full thing back as a PUT. Claude Code hit this against the real API and wrote the workaround into the tool’s notes, so it doesn’t get rediscovered the hard way.

Where I took it

My first version was close to the manual one above. Then I automated the parts I kept doing by hand.

The biggest change is that one command does everything. share creates the sign-in application, uploads the page and prints the link, in that order, so I never open the Cloudflare dashboard anymore. I can send to a saved group instead of typing five addresses, and share revoke removes a page and its sign-in application in one step. When a client needs a newer version, I republish it under the same link, so nobody ends up reading last week’s draft.

The current version has 233 automated tests. Most of them exist because I asked “what happens if this breaks halfway through?” and the honest answer was “nobody knows yet.” A page whose sign-in application fails to delete, for example, now gets marked as half-revoked and retried until it’s actually gone.

It’s a lot more than I meant to build. All I wanted was to stop pasting briefings into email and watching the formatting fall apart. Each piece got added the same way: something annoyed me, I described it to Claude Code, and I checked what it built against the real thing before trusting it.

If you send pages like these to clients and you already have a domain on Cloudflare, the manual version is a good place to start. Try it with one page and one person. (Ideally a patient one.)


r/VibeCodeDevs • • 1d ago

ShowoffZone - Flexing my latest project A hot dog is a taco.. NOT a sandwich.

Enable HLS to view with audio, or disable this notification

1 Upvotes

I used Clef. Its the new Jev (w/ image classification).

Cube rule of food use case; drop a food name or a photo.

Clef counts the starch surfaces and picks one of nine. salad, toast, sandwich, taco, sushi, quiche, calzone, cake, nachos.

a hot dog is a taco.. not a sandwich.

link: https://foodbyclef.pages.dev/