- HTML 45.3%
- Ruby 42.3%
- Dockerfile 3.4%
- TypeScript 3.3%
- JavaScript 2.4%
- Other 3.3%
| .zed | ||
| backend | ||
| frontend | ||
| .gitlab-ci.yml | ||
| README.md | ||
EAS Main Web
🧭 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.