Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yatish27/shore
Modern Ruby on Rails template to start every new project. Skip the boilerplate and focus on what's unique to your project.
https://github.com/yatish27/shore
hotwire-turbo phlex ruby ruby-on-rails solid-queue stimulusjs tailwindcss template vite-rails
Last synced: about 2 months ago
JSON representation
Modern Ruby on Rails template to start every new project. Skip the boilerplate and focus on what's unique to your project.
- Host: GitHub
- URL: https://github.com/yatish27/shore
- Owner: yatish27
- License: mit
- Created: 2024-04-19T04:11:58.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-08-03T18:23:48.000Z (5 months ago)
- Last Synced: 2024-08-07T08:09:37.466Z (5 months ago)
- Topics: hotwire-turbo, phlex, ruby, ruby-on-rails, solid-queue, stimulusjs, tailwindcss, template, vite-rails
- Language: Ruby
- Homepage:
- Size: 1.7 MB
- Stars: 37
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Shore
## Introduction ๐
Shore is a Ruby on Rails template with modern stack to start your new project.
## Features โก๏ธ
- **Ruby**: Ruby 3.3.2
- **Rails**: [Rails 7.1](https://rubyonrails.org)
- **PostgreSQL**: [PostgresSQL 16.3](https://www.postgresql.org)
- **Tailwind CSS**: Uses [Tailwind CSS](https://tailwindcss.com) for styling.
- **Vite Ruby**: Uses [Vite Ruby](https://vite-ruby.netlify.app) for asset management. It is based on [Vite.js](https://vitejs.dev). It replaces webpacker, jsbundling-rails, cssbundling-rails, importmaps and sprockets/propshaft.
- **Bun**: Uses [Bun](https://bun.sh/) as package manager. It replaces Node and Yarn.
- **Phlex**: Uses [Phlex](https://www.phlex.fun) for component-based views. It is an alternative to [ViewComponent](https://viewcomponent.org).
- **Solid Queue**: Uses [Solid Queue](https://github.com/rails/solid_queue) for background processing.
- **Minitest/FactoryBot**: Uses Rails' default testing library, minitest along with [Factorybot](https://github.com/thoughtbot/factory_bot).
- **Rubocop**: Auto-formats Ruby code with [rubocop](https://rubocop.org).
- **Prettier**: Auto-formats JavaScript and CSS code with [prettier](https://prettier.io).
- **Github Actions**: Uses Github Actions for continuous integration and deployment.
- **Deployment**: Supports deployment on [Heroku](https://www.heroku.com/platform) and [Render](https://render.com)## Getting Started ๐
### System Requirements
You will need the following to run the application.- [**Ruby 3.3.2**](./docs/installing_prerequisites.md#ruby)
- [**PostgreSQL 16.3**](./docs/installing_prerequisites.md#postgresql)
- [**Bun**](./docs/installing_prerequisites.md#bun)Refer [here](./docs/installing_prerequisites.md) to install these dependencies
### Initial setup
- Shore is a preconfigured base Ruby on Rails application. You can clone this repository and add it to your repo.
```bash
git clone [email protected]:yatish27/shore.git your_new_project_name
cd your_new_project_name
```- The application's default name is Shore. You can rename it to your desired new name. The name should be in camelcase.
```bash
./bin/rename_project YourNewProjectName
```- Copy the `env.sample` to `.env`
- The default username and password for database is set to `postgres` and `password`. You can override them in `.env` file.
- Run `bin/setup` to set up the application. It prepares the database and installs the required ruby gems and javascript packages. The script is idempotent, so you can run it multiple times.
```bash
./bin/setup
```### Running the application
Start your application
```bash
./bin/dev
```This runs overmind or foreman using the Procfile.dev. It starts the rails server, solid queue background job process and vite server.
Visit `http://localhost:3000` to see the home page ๐.
### Running locally with docker
Shore supports docker and docker compose for local development.
Install Docker and Docker desktop,Once you have cloned the repository and have Docker installed, follow the following steps
- Run `docker compose build` to build. It will build the necessary images.
- Run `docker-compose run --rm web bin/setup` to create and set up the database.
- Run `docker compose up` to start the application.
Since the local code from your host machine is mounted in the docker container, any change made locally will be directly reflected. You don't need to rebuild the container.## Deployment ๐ฆ
- Heroku
- Render## Testing ๐งช
Running all tests
```
./bin/rails test:all
```Running a single test
```
./bin/rails test test/jobs/hello_world_job_test.rb
```## License ๐
Shore is released under the [MIT License](./LICENSE.txt).## Contributing ๐ค
PRs are welcome