Conversation
daesdev
commented
Apr 5, 2026
- Add wrangler.jsonc with CF Workers config and custom domain vibe-coding.daes.dev
- Add server.ts entry point for Cloudflare Workers runtime
- Update GitHub Actions workflow to use wrangler-action instead of Deno Deploy
- Add deno task deploy for wrangler deploy
- Update README with Cloudflare Workers info and @daesdev label
- Format all files with deno fmt
- Add wrangler.jsonc with CF Workers config and custom domain vibe-coding.daes.dev - Add server.ts entry point for Cloudflare Workers runtime - Update GitHub Actions workflow to use wrangler-action instead of Deno Deploy - Add deno task deploy for wrangler deploy - Update README with Cloudflare Workers info and @daesdev label - Format all files with deno fmt
There was a problem hiding this comment.
Pull request overview
Migrates the app’s deployment target from Deno Deploy to Cloudflare Workers by introducing Wrangler configuration and a Workers-compatible entrypoint, and updates CI/docs to match the new deployment flow.
Changes:
- Add
wrangler.jsoncand a newserver.tsWorkers entrypoint. - Update GitHub Actions to verify/build, then deploy via
cloudflare/wrangler-action. - Documentation/link updates and repository-wide formatting adjustments.
Reviewed changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| wrangler.jsonc | Adds Cloudflare Workers/Wrangler configuration, including assets binding and custom domain routing. |
| server.ts | Introduces the Workers fetch entrypoint using Fresh ServerContext. |
| .github/workflows/deploy.yml | Replaces Deno Deploy with a verify/build job and a Cloudflare deploy job using Wrangler. |
| deno.json | Adds a deploy task for Wrangler-based deployment. |
| README.md | Updates deployment/docs to reference Cloudflare Workers and new author handle. |
| static/styles.css | Formatting changes to CSS/font-face declaration. |
| static/favicon.svg | Re-formats SVG markup (no functional changes intended). |
| postcss.config.js | Formatting/quoting updates in PostCSS config. |
| components/SectionWrapperContent.tsx | Refactors formatting/structure of the wrapper component. |
| components/WrapperPage.tsx | Refactors formatting/structure of the wrapper component. |
| components/Header.tsx | Updates GitHub links to new account. |
| components/Footer.tsx | Adds trailing commas in dangerouslySetInnerHTML objects. |
| routes/index.tsx | Formatting change in JSX props spacing. |
| routes/[lang]/index.tsx | Formatting changes to mapped section rendering. |
| routes/_404.tsx | Updates repository link to the new GitHub org/user. |
| islands/DarkMode.tsx | Formatting changes. |
| islands/ButtonPrint.tsx | Formatting changes and small structure tidy-up. |
| islands/AnchorLang.tsx | Formatting changes to conditional class selection. |
| locales/es.json | Re-formats JSON and updates author link content. |
| locales/en.json | Re-formats JSON and updates author link content. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
components/SectionWrapperContent.tsx
Outdated
| </section> | ||
| ); | ||
| export default function SectionWrapperContent( | ||
| { title, attrClass, children }: SectionWrapperContentProps, |
There was a problem hiding this comment.
attrClass is optional, but it’s interpolated directly into the template literal. When attrClass is undefined (e.g. current callers that omit it), this renders a literal "undefined" CSS class. Consider defaulting attrClass = "" (or conditionally appending it) when building classes.
| { title, attrClass, children }: SectionWrapperContentProps, | |
| { title, attrClass = "", children }: SectionWrapperContentProps, |
components/Header.tsx
Outdated
| <header class="min-w-min px-4 py-2 rounded-lg max-w-min mx-auto flex gap-4 items-center bg-slate-300/40 left-1/2 -translate-x-1/2 fixed bottom-4 md:sticky md:top-4 z-50 backdrop-blur-md dark:bg-slate-700/40 print:hidden"> | ||
| <a | ||
| href="https://github.com/darioesp/vide-coding" | ||
| href="https://github.com/daesdev/vide-coding" |
There was a problem hiding this comment.
The GitHub repository link still points to .../vide-coding (with a d). Elsewhere in the PR the repo is referenced as vibe-coding. This looks like a broken URL; update the href to the correct repository path.
| href="https://github.com/daesdev/vide-coding" | |
| href="https://github.com/daesdev/vibe-coding" |
locales/es.json
Outdated
| "<strong>Cursor -</strong> IDE más popular para vibe coding con una comprensión completa del código", | ||
| "<strong>Windsurf -</strong> Alternativa de rápido crecimiento que indexa todo tu código", | ||
| "<strong>Claude 3.5 Sonnet/3 Opus -</strong> Modelos líderes para tareas de codificación diarias", | ||
| "<strong>Claude 01/03 -</strong> Modelos de razonamiento paa depuración de problemas complejos", |
There was a problem hiding this comment.
The string "paa depuración" looks like a typo in Spanish; it should likely be "para depuración".
| "<strong>Claude 01/03 -</strong> Modelos de razonamiento paa depuración de problemas complejos", | |
| "<strong>Claude 01/03 -</strong> Modelos de razonamiento para depuración de problemas complejos", |
| {translations.index.sections.map((section) => ( | ||
| <> | ||
| <h3 class="font-bold text-base mt-5"> | ||
| {section.title} | ||
| </h3> |
There was a problem hiding this comment.
The sections.map(...) callback returns an unkeyed fragment (<>...</>). In Preact/React lists this produces a key warning and can lead to incorrect reconciliation if the list changes. Wrap the section block in an element/Fragment that has a stable key (e.g., based on section.title or an explicit id).
deno.json
Outdated
| "preview": "deno run -A main.ts", | ||
| "update": "deno run -A -r https://fresh.deno.dev/update ." | ||
| "update": "deno run -A -r https://fresh.deno.dev/update .", | ||
| "deploy": "wrangler deploy" |
There was a problem hiding this comment.
deno task deploy currently runs wrangler deploy, which requires a globally installed wrangler binary. To make deploy reproducible for contributors (and match the pinned Wrangler version in CI), consider invoking Wrangler via Deno’s npm integration (e.g., deno run -A npm:wrangler@<version> ...) or otherwise documenting the installation requirement.
| "deploy": "wrangler deploy" | |
| "deploy": "deno run -A npm:wrangler deploy" |
static/styles.css
Outdated
| font-display: swap; | ||
| src: url('/fonts/roboto-mono-latin-500-normal.woff') format('woff2'); | ||
| } No newline at end of file | ||
| src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff2"); |
There was a problem hiding this comment.
The font file has a .woff extension but the declared format is "woff2". Some browsers use this hint for font selection and may skip loading if it doesn’t match. Either serve a .woff2 file (and keep woff2) or change the format hint to "woff".
| src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff2"); | |
| src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff"); |
|
@copilot apply changes based on the comments in this thread and fix type check and lint |
Agent-Logs-Url: https://github.com/daesdev/vibe-coding/sessions/f1c8b4a4-a540-47d8-af2f-add57c82adba Co-authored-by: daesdev <31475869+daesdev@users.noreply.github.com>
Applied all review suggestions in commit 88bb5ac:
|