<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i" -->

---
title: Setting Up a New Solidus Store | daily.dev
description: This is a step-by-step walkthrough for launching a new Solidus e-commerce store on Rails 8.1 with esbuild instead of Import Maps. It covers generating the app...
canonical: https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Setting Up a New Solidus Store | daily.dev
og:description: This is a step-by-step walkthrough for launching a new Solidus e-commerce store on Rails 8.1 with esbuild instead of Import Maps. It covers generating the app...
og:url: https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i
og:image: https://api.daily.dev/og/posts/MnWIX6C4i.png
og:image:alt: Setting Up a New Solidus Store
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up a New Solidus Store

**[RUBYLAND](https://daily.dev/sources/rubyla)** · 7 min read · 0 upvotes · 0 comments

## Summary

This is a step-by-step walkthrough for launching a new Solidus e-commerce store on Rails 8.1 with esbuild instead of Import Maps. It covers generating the app with 'rails _8.1.4_ new', running PostgreSQL 18.1 locally via Docker on port 4300, and installing Solidus with Stripe as the payment platform. It fixes esbuild-specific issues like duplicate asset errors from the storefront manifest and a SassC 'rgb' compressor error. It also covers deploying to Heroku with a Procfile for migrations, and configuring S3 with an IAM policy for Active Storage in production.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://supergood.software/setting-up-a-new-solidus-store>

## Questions this post answers

### How do I fix duplicate asset errors in a Solidus store using esbuild instead of Import Maps?

Remove the line '//= link_tree ../../javascript .js' from app/assets/config/solidus_storefront_manifest.js. Solidus assumes Import Maps are installed by default, but Rails 8 apps generated with esbuild don't include them, so Sprockets ends up trying to link application.js twice, causing duplicate asset errors and bundling conflicts.

_daily.dev surfaces fixes like this for developers wiring Solidus into non-default Rails asset pipelines._

### How do I run PostgreSQL locally for a Rails app using Docker instead of a native install?

Define a postgres:18.1-alpine3.22 service in docker-compose.yml, exposing it on a custom host port such as 4300 mapped to container port 5432, with POSTGRES_PASSWORD set and a named volume for data persistence. In config/database.yml, set host to localhost and read the port from an environment variable via dotenv, since omitting host makes Rails try a Unix socket connection instead.

_Developers containerizing their Rails database setup can find configs like this one on daily.dev._

### Why does my Rails asset build fail with 'SassC::SyntaxError: Function rgb is missing argument $green'?

This Sprockets build error can be resolved by disabling the CSS compressor, setting config.assets.css_compressor = nil in config/application.rb. This error has been reported during Heroku deployments of Solidus storefronts and is fixed by turning off CSS compression at build time.

_daily.dev helps developers deploying Rails e-commerce apps track down obscure asset pipeline errors._

## Similar posts on daily.dev

- [The Shopify Goldmine: How to Build Your First App in Rails](https://daily.dev/posts/the-shopify-goldmine-how-to-build-your-first-app-in-rails-bv2aoxyoa) · Ruby Flow · 0 upvotes · 0 comments
- [Upgrading from Rails 7.2 to Rails 8 - The Latest and Greatest](https://daily.dev/posts/upgrading-from-rails-7-2-to-rails-8---the-latest-and-greatest-llm9qhuca) · Saeloun · 0 upvotes · 0 comments
- [Upgrade Rails From 8.0 to 8.1 - FastRuby.io](https://daily.dev/posts/upgrade-rails-from-8-0-to-8-1---fastruby-io-oiayukzim) · RUBYLAND · 0 upvotes · 0 comments
- [Returning To Rails in 2026](https://daily.dev/posts/returning-to-rails-in-2026-ohsyin4ne) · Lobsters · 1 upvotes · 0 comments
- [Exploring Rails Action Cable with Solid Cable](https://daily.dev/posts/exploring-rails-action-cable-with-solid-cable-fgtpdoax5) · Honeybadger · 0 upvotes · 0 comments

---

Tags: [#docker](https://daily.dev/tags/docker), [#rails](https://daily.dev/tags/rails), [#ecommerce](https://daily.dev/tags/ecommerce), [#heroku](https://daily.dev/tags/heroku)

[View this post on daily.dev](https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Setting Up a New Solidus Store","url":"https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i"},"datePublished":"2026-10-28T21:25:30.539Z","dateModified":"2026-10-28T22:23:46.203Z","description":"This is a step-by-step walkthrough for launching a new Solidus e-commerce store on Rails 8.1 with esbuild instead of Import Maps. It covers generating the app...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5fc988e1758baea68465b1aab686a26a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5fc988e1758baea68465b1aab686a26a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"RUBYLAND","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"RUBYLAND","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla","url":"https://daily.dev/sources/rubyla"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"docker,rails,ecommerce,heroku","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":3,"name":"Setting Up a New Solidus Store"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/setting-up-a-new-solidus-store-mnwix6c4i#faq","mainEntity":[{"@type":"Question","name":"How do I fix duplicate asset errors in a Solidus store using esbuild instead of Import Maps?","acceptedAnswer":{"@type":"Answer","text":"Remove the line '//= link_tree ../../javascript .js' from app/assets/config/solidus_storefront_manifest.js. Solidus assumes Import Maps are installed by default, but Rails 8 apps generated with esbuild don't include them, so Sprockets ends up trying to link application.js twice, causing duplicate asset errors and bundling conflicts. daily.dev surfaces fixes like this for developers wiring Solidus into non-default Rails asset pipelines."}},{"@type":"Question","name":"How do I run PostgreSQL locally for a Rails app using Docker instead of a native install?","acceptedAnswer":{"@type":"Answer","text":"Define a postgres:18.1-alpine3.22 service in docker-compose.yml, exposing it on a custom host port such as 4300 mapped to container port 5432, with POSTGRES_PASSWORD set and a named volume for data persistence. In config/database.yml, set host to localhost and read the port from an environment variable via dotenv, since omitting host makes Rails try a Unix socket connection instead. Developers containerizing their Rails database setup can find configs like this one on daily.dev."}},{"@type":"Question","name":"Why does my Rails asset build fail with 'SassC::SyntaxError: Function rgb is missing argument $green'?","acceptedAnswer":{"@type":"Answer","text":"This Sprockets build error can be resolved by disabling the CSS compressor, setting config.assets.css_compressor = nil in config/application.rb. This error has been reported during Heroku deployments of Solidus storefronts and is fixed by turning off CSS compression at build time. daily.dev helps developers deploying Rails e-commerce apps track down obscure asset pipeline errors."}}]}
```

