rails new your_app_name --database=postgresql --skip-jbuilder --css=tailwindcd your_app_name
cat > .env <<'EOF'
# EDITOR="nano" bin/rails credentials:edit --environment development
# EDITOR="nano" bin/rails credentials:edit --environment production
# heroku config:set RAILS_MASTER_KEY=`cat config/credentials/production.key`
# HATCHBOX config:set RAILS_MASTER_KEY=`cat config/credentials/production.key`
# OPENAI RAILS_MASTER_KEY=`cat config/credentials/development.key`
# OPENAI SECRET_KEY_BASE=`cat tmp/local_secret.txt`
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
EOF
mkdir frontend
touch frontend/.keep
touch package.json
cat > package.json <<'EOF'
{
"name": "your-app",
"type": "module",
"private": true,
"scripts": {
"dev": "bun build frontend/ButtonCounter --outdir=vendor/javascript/apps --target=browser --format=esm --minify --watch",
"build": "bun build frontend/ButtonCounter --outdir=vendor/javascript/apps --target=browser --format=esm --minify --production"
},
"devDependencies": {
"@types/bun": "latest"
},
"peerDependencies": {
"typescript": "^5"
}
}
EOF
echo 'node_modules' >> .gitignore
echo '/node_modules' >> .gitignore
bun add react react-dom
echo 'bun install && bun run dev' >> Procfile.devmkdir frontend/ButtonCounter
touch frontend/ButtonCounter/index.js
cat > frontend/ButtonCounter/index.js <<'EOF'
import React from "react";
import { createRoot } from "react-dom/client";
function ButtonCounter() {
const [count, setCount] = useState(0);
return (
<div>
<button onClick={() => setCount(count + 1)}>I'm a button</button>
<p>Count: {count}</p>
</div>
);
}
// Create a root element and mount the component to the DOM
const rootElement = document.createElement("div");
document.body.appendChild(rootElement);
const root = createRoot(rootElement);
root.render(<ButtonCounter />);
EOF- RUN
gh repo create your_app_name --private --homepage yourwebsite.com --source=. - RUN
git remote add origin [email protected]:blairanderson/your_app_name.git
bin/rails db:create db:migrate
bin/rails g authentication
bundle add "public_suffix"
bundle add "mission_control-jobs"bundle add "postmark-rails"
ADD config.hosts << "app.lvh.me" to development.rb
RUN rails g controller home show
RUN bundle lock --add-platform x86_64-linux