No description
  • HTML 45.3%
  • Ruby 42.3%
  • Dockerfile 3.4%
  • TypeScript 3.3%
  • JavaScript 2.4%
  • Other 3.3%
Find a file
2026-05-04 22:06:08 -04:00
.zed Project rework 2026-05-04 21:51:11 -04:00
backend Project rework 2026-05-04 21:51:11 -04:00
frontend Project rework 2026-05-04 21:51:11 -04:00
.gitlab-ci.yml Updated playwright image version in GitLab CI 2026-05-04 22:06:08 -04:00
README.md Project rework 2026-05-04 21:51:11 -04:00

EAS Main Web

Project Status Astro Ruby on Rails Bun PostgreSQL Nginx License

🧭 Overview

eas-main-web is the source repository for the public website refresh for EAS Professionals, Inc.

The project uses Astro for the public marketing website and Ruby on Rails for the backend/admin application. Astro owns the public-facing website experience. Rails owns database-backed workflows such as careers, applications, newsletter signups, uploads, and future editorial tools.

🧱 Stack

Layer Tool Purpose
Frontend Astro Public marketing website
Backend Ruby on Rails Admin dashboard and website data workflows
Database PostgreSQL Backend application data
Package manager Bun Frontend dependency management and scripts
Reverse proxy Nginx Production routing between frontend and backend services

📁 Project Structure

eas-main-web/
  frontend/   Astro public website
  backend/    Rails admin and data application

The frontend app contains the public website.

The backend app contains the Rails admin dashboard, database models, form handling, uploads, and content-management workflows.

🚀 Frontend Setup

From the repository root:

cd frontend
bun install
bun run dev

Build the frontend:

bun run build

Preview the production build:

bun run preview

🛠 Backend Setup

Create the Rails backend from the repository root:

rails new backend --database=postgresql --skip-git

After the backend exists:

cd backend
bundle install
bin/rails db:prepare
bin/rails server

The Rails app should not be created as API-only because this project needs staff-facing admin screens.

💼 Careers Workflow

Careers are managed through Rails.

Staff should be able to create, edit, publish, and deactivate job postings without changing frontend code.

The public careers list and job detail pages can be displayed by Astro, but the job records belong to Rails.

If the website accepts applications, Rails handles the application form, applicant records, resume uploads, cover letter uploads, and admin review screens.

✉️ Newsletter Workflow

The newsletter signup UI can appear on the Astro website.

Submissions are handled by Rails so subscriber data can be stored, reviewed, exported, protected, and managed through the admin dashboard.

📝 Blog and Editorial Workflow

Future blog or editorial content should be managed through Rails.

Rails can provide the editor interface for posts, drafts, slugs, excerpts, authors, featured images, publish dates, and published status.

Astro should consume published content from Rails through an endpoint or generated feed. Astro should not read directly from the Rails database.

🌐 Deployment Direction

The production deployment keeps the frontend and backend separated by responsibility.

Nginx serves the Astro build for public website routes and proxies backend/admin routes to Rails.

/                  Astro public website
/services          Astro public website
/careers           Astro public website consuming Rails job data
/admin             Rails admin dashboard
/applications      Rails application submission endpoint
/newsletter        Rails newsletter submission endpoint

Project Rules

Non-technical staff should not need Git, Markdown, code edits, or manual frontend deployments for routine careers, newsletter, or editorial updates.

Rails owns private, admin, upload, and data workflows.

Astro owns public presentation.

WordPress is not used in this project.

Paid CMS platforms are not part of this project direction.

👥 Maintainers

EAS website development team.