Rails scaffold + static posts (Phase 1) #2

Open
opened 2026-06-10 11:38:43 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Standalone -- foundation for the app. See docs/roadmap/ Phase 1.

Repo

ldraney/html-poster

User Story

As Lucas
I want a working Rails app that serves HTML pages
So that I can post content publicly via both static files and controller views

Context

html-poster needs a Rails skeleton generated from the rails-base template. Uses docker compose run web rails new to generate inside the container (no local Ruby needed). PagesController provides layout-wrapped views; public/ provides zero-Rails static serving. Reference: ~/rails-base/docs/starting-a-new-project.md.

File Targets

Files the agent should modify or create:

  • docker-compose.yml -- copy from rails-base
  • config/database.yml -- ENV-based credentials
  • app/controllers/pages_controller.rb -- home, about actions
  • app/views/pages/home.html.erb -- home page view
  • config/routes.rb -- root route + page routes

Files the agent should NOT touch:

  • docs/ -- documentation is already written

Feature Flag

none

Acceptance Criteria

  • rails new generated successfully inside container
  • PagesController with at least home action
  • Static files served from public/
  • docker compose up works at localhost:9999
  • Database configured with ENV vars

Test Expectations

  • Manual: docker compose up, verify localhost:9999 serves the home page
  • Manual: drop a file in public/, verify it's served directly
  • Run command: docker compose exec web rails test

Constraints

  • Use rails-base/docker-compose.yml pattern (ruby-rails-build image from Harbor)
  • Skip flags: --skip-ci --skip-kamal --skip-docker --skip-thruster --skip-action-text
  • Port 9999 for local dev

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • html-poster -- project this affects
  • rails-base -- template source
### Type Feature ### Lineage Standalone -- foundation for the app. See `docs/roadmap/` Phase 1. ### Repo `ldraney/html-poster` ### User Story As Lucas I want a working Rails app that serves HTML pages So that I can post content publicly via both static files and controller views ### Context html-poster needs a Rails skeleton generated from the rails-base template. Uses `docker compose run web rails new` to generate inside the container (no local Ruby needed). PagesController provides layout-wrapped views; `public/` provides zero-Rails static serving. Reference: `~/rails-base/docs/starting-a-new-project.md`. ### File Targets Files the agent should modify or create: - `docker-compose.yml` -- copy from rails-base - `config/database.yml` -- ENV-based credentials - `app/controllers/pages_controller.rb` -- home, about actions - `app/views/pages/home.html.erb` -- home page view - `config/routes.rb` -- root route + page routes Files the agent should NOT touch: - `docs/` -- documentation is already written ### Feature Flag none ### Acceptance Criteria - [ ] `rails new` generated successfully inside container - [ ] PagesController with at least home action - [ ] Static files served from `public/` - [ ] `docker compose up` works at localhost:9999 - [ ] Database configured with ENV vars ### Test Expectations - [ ] Manual: `docker compose up`, verify localhost:9999 serves the home page - [ ] Manual: drop a file in `public/`, verify it's served directly - Run command: `docker compose exec web rails test` ### Constraints - Use `rails-base/docker-compose.yml` pattern (ruby-rails-build image from Harbor) - Skip flags: `--skip-ci --skip-kamal --skip-docker --skip-thruster --skip-action-text` - Port 9999 for local dev ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `html-poster` -- project this affects - `rails-base` -- template source
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/html-poster#2
No description provided.