Conversation
Co-authored-by: Eric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>
Phoenix 1.7+ defaults to esbuild via the Elixir wrapper. The project already uses Tailwind via its Elixir wrapper, so webpack was the only remaining reason for a Node.js dependency. This migration: - Adds esbuild Elixir wrapper with NODE_PATH for Phoenix package resolution - Vendors highlight.js core + elixir language (only npm dep, fully self-contained) - Removes webpack, Babel, yarn, package.json, and node_modules entirely - Updates Dockerfile to remove nodejs/yarnpkg apt packages - Simplifies assets.deploy to just esbuild + tailwind + phx.digest Both esbuild and Tailwind are now standalone binaries managed by Hex. Zero Node.js tooling required. Build output drops from 397KB to 165KB.
Fix latest_version/2 to use with_docs_releases instead of releases when falling back to unstable versions. Add docs_tarball_url to sidebar_assigns so the docs download link works on all package tabs.
The lg:px-0 class removed horizontal padding at viewport widths between the lg breakpoint (1024px) and the max-w-7xl container width (1280px), causing content to touch the screen edges.
- Make sidebar stack below content on mobile (flex-col lg:flex-row) - Add horizontal scroll for tab overflow on narrow screens - Prevent version badge and tab text from wrapping - Stack header buttons below description on mobile - Reduce mobile spacing between buttons and tabs - Add px-4 padding to package layout containers - Extract downloads chart into shared component (Components.Chart) - Use smooth cubic Bezier curves for chart line with clamped control points - Fix chart gradient by using SVG attributes instead of style properties - Add top padding to chart viewBox to prevent stroke clipping
Replace emoji icons (😍, 🔥, 👀) in package column headers with professional heroicons (arrow-trending-up, sparkles, arrow-path). Also remove lg:px-0 from homepage containers.
Wrap the Organization repository checkbox in a mb-4 div to match the spacing of other permission groups.
- Change content wrapper from <div> to <main> in app layout to provide the required main landmark - Change feature card headings from <h3> to <h2> to maintain proper heading order (h1 → h2) without skipping levels
Adapt integration tests to the new dashboard layout where billing has its own route (/dashboard/orgs/:name/billing), modals use Phoenix.LiveView.JS instead of Bootstrap, and flash messages use the new .flash-message component. Fix billingCheckout to send JSON instead of form-urlencoded so token objects are properly serialized. Set hexpm_billing globals (api_url, csrf_token, success callback) before checkout HTML renders so the SCA SetupIntent flow works through the billing proxy.
HEEx treats script tag content as raw text, so Elixir string
interpolation (#{host}) doesn't work. Use EEx tag (<%= host %>) instead.
Tailwind needs to scan lib/ for class names used in templates. Previously lib/ was copied after mix assets.deploy, so the production CSS was missing all utility classes.
Replace inline style attributes with Tailwind hidden class in the mobile letter browser. Inline style attributes cannot use CSP nonces, only <style> tags can.
Co-authored-by: Eric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>
Use Tailwind width classes for the password strength bar instead of setting style.width via JS, and use the hidden class for the remove password form.
# Conflicts: # assets/css/template/_dashboard.scss # lib/hexpm/billing/local.ex # lib/hexpm_web/controllers/dashboard/organization_controller.ex # lib/hexpm_web/templates/dashboard/organization/_billing.html.eex # lib/hexpm_web/templates/dashboard/organization/index.html.eex # lib/hexpm_web/views/dashboard/organization_view.ex # mix.lock
Ch4s3
added a commit
to Ch4s3/hexpm
that referenced
this pull request
Apr 28, 2026
Resolves conflicts with the website redesign (PR hexpm#1450): - Use upstream's hooks-based app.js (drops jQuery/Bootstrap) - Keep upstream's autofocus_search for page controller - Use upstream's mix.lock (version bumps only) - Remove old _home.scss, yarn.lock, index.html.eex (replaced by redesign) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.