Skip to content

Move the APK download link up in the "production" area of the box#384

Merged
AnthonyRonning merged 2 commits intomasterfrom
downloadpage
Jan 10, 2026
Merged

Move the APK download link up in the "production" area of the box#384
AnthonyRonning merged 2 commits intomasterfrom
downloadpage

Conversation

@marksftw
Copy link
Contributor

@marksftw marksftw commented Jan 10, 2026

The APK link is for the production version but it looked like it was part of the beta program. This moves the APK link next to the Google Play prod badge and adjust elements in the box so they are mostly aligned horizontally on a desktop browser.

Summary by CodeRabbit

  • Style Updates
    • Redesigned downloads page layout: platform badges and actions now sit in dedicated 80px containers with adjusted borders and margins for cleaner spacing.
    • Improved visual grouping: badge and direct APK link now appear together for Android; iOS and Android each include clear beta enrollment paths.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 10, 2026

📝 Walkthrough

Walkthrough

Reflowed the downloads UI: App Store and Google Play badges are placed inside dedicated 80px containers; dividers/margins adjusted; Android APK direct-download link moved under the Play badge and beta actions reorganized. (45 words)

Changes

Cohort / File(s) Summary
iOS & Android download layout
frontend/src/routes/downloads.tsx
Wrapped App Store and Google Play badges in dedicated 80px containers, moved the divider below the iOS badge container, relocated the Android APK direct-download link into a nested container beneath the Play badge, and adjusted the Android/iOS beta action placements and surrounding margins/borders.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 A little hop, a tidy tweak,
Badges snug in boxes sleek,
APK tucked under Play's bright light,
Beta buttons cozy, borders right,
Downloads ready — take a bite! 🥕✨

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: moving the APK download link into the production area. It aligns with the PR objectives and the code changes shown in the summary.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/src/routes/downloads.tsx (1)

244-286: Successfully achieves PR objective; consider slightly larger text for APK link.

The restructuring effectively moves the APK download link into the production area alongside the Google Play badge, resolving the visual confusion with the beta program. The layout is consistent with the iOS section and properly separates production from beta downloads.

However, the APK direct download link uses text-xs (12px), which is quite small for an important alternative download method. Users looking for the direct APK option may have difficulty noticing or clicking this link, especially on mobile devices or for users with visual impairments.

♻️ Consider increasing text size for better visibility
                   <a
                     href={downloadUrls.androidApk}
-                    className="text-xs text-[hsl(var(--marketing-text-muted))] hover:text-foreground hover:underline"
+                    className="text-sm text-[hsl(var(--marketing-text-muted))] hover:text-foreground hover:underline"
                     target="_blank"
                     rel="noopener noreferrer"
                   >
                     or download APK directly
                   </a>

Using text-sm (14px) instead of text-xs (12px) would improve readability while still maintaining a subtle appearance relative to the main badge.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fb67a7d and f873412.

📒 Files selected for processing (1)
  • frontend/src/routes/downloads.tsx
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Use path aliases (@/* maps to ./src/*) for imports in TypeScript/React files
Use 2-space indentation, double quotes, and enforce 100-character line limit in TypeScript/React code
Maintain strict TypeScript and avoid using any type
Use PascalCase for component names and camelCase for variables and function names
Use functional components with React hooks instead of class components
Use React context for global state management and TanStack Query for server state management
Run just format, just lint, and just build after making TypeScript/React changes to ensure code quality and compilation

Files:

  • frontend/src/routes/downloads.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: build-android
  • GitHub Check: build-ios
  • GitHub Check: build-macos (universal-apple-darwin)
  • GitHub Check: build-linux
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (1)
frontend/src/routes/downloads.tsx (1)

198-233: LGTM! Clean layout restructuring for iOS section.

The changes effectively separate the production App Store badge from the TestFlight beta section using a dedicated 80px container and clear border separator. The layout is well-structured and maintains proper visual hierarchy.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 10, 2026

Greptile Overview

Greptile Summary

This PR successfully addresses a UX issue where the Android APK download link appeared to be part of the beta program, when it's actually for the production version. The changes restructure the mobile app download sections to improve visual organization and alignment.

Key Changes

Layout Restructuring:

  • Both iOS and Android sections now use fixed-height containers (h-[80px]) for the production download areas to ensure horizontal alignment on desktop browsers
  • The spacing strategy changed from gap-4 between elements to explicit mt-4 on divider elements for more precise control

Android Section Improvements:

  • Moved the APK download link from the beta section to the production area, directly below the Google Play badge
  • The APK link now clearly appears as an alternative production download option ("or download APK directly")
  • Both the Google Play badge and APK link are vertically centered within the fixed-height container using gap-2

Consistency Considerations:

  • The fixed-height approach ensures that iOS and Android production areas align horizontally on larger screens, even though Android has two elements (badge + APK link) while iOS has one (just the badge)
  • One minor style inconsistency exists: the Android description paragraph is missing the flex-grow class that's present on all other platform descriptions (iOS, macOS, Linux)

Visual Impact

The changes successfully clarify that the APK is a production download option, not a beta feature, which was the primary goal of this PR. The fixed-height containers provide consistent visual alignment across platforms on desktop views.

Confidence Score: 4/5

  • This PR is safe to merge with minimal risk - it only modifies layout and styling without affecting functionality.
  • The PR successfully achieves its stated goal of improving UX by moving the APK link to the production section. The changes are purely presentational (HTML structure and CSS classes) with no logic changes, API modifications, or data handling. The only issue found is a minor style inconsistency (missing flex-grow) that could affect visual alignment but won't break functionality. The fixed-height containers are a reasonable approach for desktop alignment, though they introduce a small maintenance consideration if content changes in the future.
  • No files require special attention - this is a straightforward layout change with one minor style inconsistency noted.

Important Files Changed

File Analysis

Filename Score Overview
frontend/src/routes/downloads.tsx 4/5 Restructured mobile app download sections to move Android APK link to production area and add fixed-height containers for alignment. Minor style inconsistency found with flex-grow property.

Sequence Diagram

sequenceDiagram
    participant User
    participant Browser
    participant DownloadsPage
    participant GitHub

    User->>Browser: Navigate to /downloads
    Browser->>DownloadsPage: Load page component
    DownloadsPage->>DownloadsPage: Render TopNav & Header
    
    alt Desktop Section
        DownloadsPage->>User: Display macOS & Linux cards
        Note over User,DownloadsPage: macOS/Linux cards with flex-grow
    end
    
    alt Mobile Section (iOS)
        DownloadsPage->>User: Display iOS card
        Note over User,DownloadsPage: h-[80px] container with App Store badge
        DownloadsPage->>User: Display TestFlight beta section
    end
    
    alt Mobile Section (Android - This PR)
        DownloadsPage->>User: Display Android card
        Note over User,DownloadsPage: h-[80px] container with:<br/>- Google Play badge<br/>- APK download link (moved here)
        User->>DownloadsPage: Click "download APK directly"
        DownloadsPage->>GitHub: Request latest APK
        GitHub->>User: Download APK file
        
        DownloadsPage->>User: Display beta section below
        Note over User,DownloadsPage: Beta enrollment button<br/>(APK link removed from here)
    end
    
    alt Web Section
        DownloadsPage->>User: Display web app option
    end
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 10, 2026

Additional Comments (1)

frontend/src/routes/downloads.tsx
The gap-2 property has no effect since this container now only has one child element (after moving the APK link to the production section). For consistency with the iOS beta section which uses flex justify-center for a single child, consider simplifying this container.

                    <div className="flex justify-center">

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: frontend/src/routes/downloads.tsx
Line: 272:272

Comment:
The `gap-2` property has no effect since this container now only has one child element (after moving the APK link to the production section). For consistency with the iOS beta section which uses `flex justify-center` for a single child, consider simplifying this container.

```suggestion
                    <div className="flex justify-center">
```

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 10, 2026

Deploying maple with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0958bb8
Status: ✅  Deploy successful!
Preview URL: https://0f0d3346.maple-ca8.pages.dev
Branch Preview URL: https://downloadpage.maple-ca8.pages.dev

View logs

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/src/routes/downloads.tsx (1)

241-241: Consider adding flex-grow for layout consistency.

The iOS description (line 195) uses flex-grow to maintain consistent card layouts, but this Android description doesn't. While the visual impact is minimal given similar text lengths, adding flex-grow would ensure consistent vertical spacing if descriptions change in the future.

♻️ Suggested consistency fix
-                <p className="text-[hsl(var(--marketing-text-muted))] mb-6">
+                <p className="text-[hsl(var(--marketing-text-muted))] mb-6 flex-grow">
                   Download our native Android app for phones and tablets.
                 </p>
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f873412 and 0958bb8.

📒 Files selected for processing (1)
  • frontend/src/routes/downloads.tsx
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Use path aliases (@/* maps to ./src/*) for imports in TypeScript/React files
Use 2-space indentation, double quotes, and enforce 100-character line limit in TypeScript/React code
Maintain strict TypeScript and avoid using any type
Use PascalCase for component names and camelCase for variables and function names
Use functional components with React hooks instead of class components
Use React context for global state management and TanStack Query for server state management
Run just format, just lint, and just build after making TypeScript/React changes to ensure code quality and compilation

Files:

  • frontend/src/routes/downloads.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: build-android
  • GitHub Check: build-ios
  • GitHub Check: build-macos (universal-apple-darwin)
  • GitHub Check: build-linux
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (2)
frontend/src/routes/downloads.tsx (2)

198-212: LGTM! iOS production area properly structured.

The App Store badge is now in a dedicated 80px container, creating clear visual separation from the beta section below.


244-266: Excellent work! APK link successfully moved to production area.

The Android production area now clearly shows both the Google Play badge and the direct APK download option together in the 80px container, achieving the PR's main objective. The APK link no longer appears as part of the beta program, and the layout is well-structured with proper spacing and accessibility attributes.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@marksftw
Copy link
Contributor Author

image

ready for review

@AnthonyRonning AnthonyRonning merged commit 93a2249 into master Jan 10, 2026
12 checks passed
@AnthonyRonning AnthonyRonning deleted the downloadpage branch January 10, 2026 04:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants