RailsStarter

cybros_core_starter_mark — Rails Starter Template

By markmcdonald51

A bare Rails application starter template integrating Devise user system, Webpacker, and CoreUI frontend, with practical modifications such as credential encryption and mailer configuration.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

1 previews
Author preview
Author-provided preview

Preview provided in the project README.

One original preview is available. Open the full image to inspect the design.

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Devise-based user system, including login page and admin user management page

02

Uses Webpacker 5 and removes Sprockets, uniformly importing static assets via application.js

03

Integrates CoreUI with Bootstrap and FontAwesome for frontend styling

04

Provides custom modifications for credentials.yml encryption process and centralized ActionMailer configuration

05

Includes concerns for form helper method rewriting, model defaults, and enum internationalization

Template Details

Cybros Core is a bare Rails application starter template extracted from the author's personal project, used to quickly set up the foundation for new projects. It builds a user system based on Devise and includes pages such as login and admin dashboard. The frontend uses Webpacker 5 and removes Sprockets, employs CoreUI with Bootstrap and FontAwesome, while retaining Rails server-side rendering; complex pages can locally introduce React or Vue. The template also provides several engineering modifications: custom bin/rails to support the encryption process for credentials.yml, centralizing ActionMailer configuration into config/mailer.yml, rewriting form helper methods to adapt to Bootstrap validation styles, and adding concerns for model defaults and enum internationalization. The README explicitly lists to-do items, including UI/UX improvements, email layouts, ActiveStorage avatar uploads, Docker deployment, etc., indicating that some features are not yet complete.

RailsStarter

Is it right for your project?

Use Cases

  • Need to quickly set up a Rails project skeleton with user system and admin dashboard
  • Rails applications that prefer server-side rendering with local introduction of React or Vue
  • Need to reference implementations for Rails Credentials encryption process or centralized mailer configuration
  • Want to understand asset organization after replacing Sprockets with Webpacker

Suitable For

  • Developers familiar with Rails who need a reusable starter template
  • Teams that prefer server-side rendering and classic Rails view layer
  • Personal projects requiring a Devise user system and basic admin dashboard implementation

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Run bundle, yarn in sequence, and copy the example files for database.yml, credentials.yml, mailer.yml

  2. 2

    Run rails credentials:encrypt to generate credentials.yml.enc and master.key

  3. 3

    Run rails db:migrate then rails s to start the application

  4. 4

    To receive confirmation emails in development, install and run mailcatcher

  5. 5

    Write the email into settings.local.yml under admin.emails to see the Administration entry in the user menu

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license from the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
  • The author states that this template originated from a personal side project and was initially shared only with friends, but explicitly permits free use.
  • The author expresses hope that the template should be production-ready, but the wording is 'should', indicating a goal rather than a guarantee; actual completeness must be assessed independently.
  • The author explicitly does not intend to add too many features, especially business-specific ones, so the template's feature scope is limited.
  • Parts of the README are undocumented, and relevant feature descriptions are missing.
  • Receiving confirmation emails in development requires installing and running the external tool mailcatcher.
  • Configuration files must be manually copied and the email written into admin.emails to see the admin entry.
  • Before running, execute gem update --system to use the latest Rubygem.
  • Docker deployment support is still in a Help wanted to-do state and not yet implemented.
  • ActiveStorage avatar upload functionality is still a to-do item and not yet completed.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

I'm used to maintaining a barebone app that helps me build new project quickly, and this is extracted from my side project initially for sharing my ideas to friends, but if this is valuable to you, use it freely.

Original README

I hope this could be a template for new apps, it should be production-ready, so I'll keep polishing the codebase, follow best practice, keep dependencies up to date.

Original README

I don't wanna add too much features especially business-specific, but I'd like to perfection User system (based on Devise) because most apps need this, and keep improving UI/UX relates works.

Original README

### Undocumented yet TODO:

Original README

In development, I use `mailcatcher` to receive mails, run `gem install mailcatcher` to install it.

Original README

- `cp config/settings.yml config/settings.local.yml` - Put your email into `admin.emails` - In user menu (right-top of pages), you should see `Administration`

Original README

Make sure run `gem update --system` to use latest Rubygem

Original README

- Docker for deployment, including stages to compiling assets & copy `yml`s, easy to migrate to k8s

Original README

- Try support uploading user avatar using ActiveStorage

Original README
https://github.com/markmcdonald51/cybros_core_starter_mark/blob/main/MIT-LICENSEhttps://github.com/markmcdonald51/cybros_core_starter_mark/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
Less documented · 45 / 100
Technologies
Rails
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2023-04-09
Screenshot last checked
2026-10-13

No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.

The catalog identifies Rails as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-13

Inspect the recorded source material

SHA-256: 2bafebfac8b085deadb2aac7807bf268ad0446036ecd32c1f657bc4d27bef256

2026-10-13T05:04:08.440Z

Source file / repository
Cybros Core
====

[![CircleCI](https://circleci.com/gh/jasl/cybros_core.svg?style=svg)](https://circleci.com/gh/jasl/cybros_core)

This is a barebone Rails 6.0 app to show some basic configurations.

I'm used to maintaining a barebone app that helps me build new project quickly,
and this is extracted from my side project initially for sharing my ideas to friends,
but if this is valuable to you, use it freely.

## Goal

I hope this could be a template for new apps, it should be production-ready,
so I'll keep polishing the codebase, follow best practice, keep dependencies up to date.

I don't wanna add too much features especially business-specific,
but I'd like to perfection User system (based on Devise) because most apps need this,
and keep improving UI/UX relates works.

BTW: I'm really hoping someone could extract GitLab's user system.

I list some helps wanted, see below.

## Features

### Classic front-end

Personally, I'm not skilled at front-end and I still prefer classic Rails server-side rendering,
and partially introduce React or Vue for complex pages.

A good example is Gitlab, I also cheat some useful helpers to this app.

#### Webpacker 5 without Sprockets

Webpacker can do all the jobs that Sprockets does,
and has full support of front-end community,
So I remove Sprockets and tune Webpacker allows Assets Pipeline experience.

I do these:

- Remove gems related to Sprockets
- Search and remove `assets` related configs
- `resolved_paths: ['app/assets']` in `config/webpacker.yml`
- `app/javascript/packs/application.js` require all static assets (images, webfonts, etc.)

#### CoreUI with Bootstrap, FontAwesome

See `app/assets/stylesheets/application.scss`

### Application configuration

#### A hack about Rails Credentials

Rails Credentials is a useful feature to store security-sensitive configs.

But we can't bundle `master.key`, and `credentials.yml.enc` isn't readable,
so it's difficult to redistribute the app,
I gave a [PR to Rails](https://github.com/rails/rails/pull/34777) but no respond,
I consistantly think it's useful so I integrate it as a hack, see `bin/rails`.

So you can copy `config/credentials.yml.example` as `config/credentials.yml`,
edit it, then run `rails credentials:encrypt` that will generate `config/credentials.yml.enc` and `config/master.key` for you.

#### A hack about ActionMailer configuration

Unlike `database.yml`, ActionMailer's config separates in many files,
I do a hack that you can config ActionMailer in one place.

See `config/mailer.yml`

Codes in `config/application.rb`

### Implemented a full-feature layouts & views

I don't have art skill but ... at least it works!

#### Overrides Form Helpers to enhance them to support Bootstrap form validation style

The technique is in <https://guides.rubyonrails.org/engines.html#implementing-decorator-pattern-using-class-class-eval>

See `app/overrides/action_view/helpers/form_builder_override.rb`

In addition, see `config/application.rb` for how to require overrides.

#### Don't render ActionView's default error field wrapper

That will break many CSS frameworks.

See `config/initializers/action_view.rb`

#### Default value for model fields

See `app/models/concerns/acts_as_default_value.rb`

Default value of column can only be a static value,
Active Record's `attribute` DSL can set default for field but doesn't have entity context,
Using hooks (such as `after_initilize`) to set default values has edge cases,
you can use `default_value_for` to set default value.

Here's a complex example:

```ruby
default_value_for :role_id,
                    -> (member) {
                      if member.has_attribute?(:tenant_id) || member.tenant
                        member&.tenant&.member_role&.id
                      end
                    }, allow_nil: false
```

#### I18n for `enum`

See `app/models/concerns/enum_attribute_localizable.rb`

Rails doesn't have best practice for `enum` I18n,
I integrate my personal practice.

For example, I have a model `Post` with `status` column for `enum`

```ruby
class Post < ApplicationRecord
  enum status: %i[draft published archived]
end
```

The locale `post.en.yml` looks like

```yaml
en:
  activerecord:
    models:
      post: Post
    attributes:
      post:
        status: Status
        statuses:
          draft: Draft
          published: Published
          archived: Archived
```

To render human readable post's status, you can do like this:

```ruby
Post.human_enum_value(:status, @post)
```

### Undocumented yet

TODO:

## Run the app

- Clone it
- `bundle`
- `yarn`
- `cp config/database.yml.example config/database.yml`
- `cp config/credentials.yml.example config/credentials.yml` & `rails credentials:encrypt`
- `cp config/mailer.yml.example config/mailer.yml`
- `rails db:migrate`
- `rails s`

### Receive Devise confirmation mail

In development, I use `mailcatcher` to receive mails,
run `gem install mailcatcher` to install it.

Open a new terminal, run `mailcatcher`, then follow the instructions

### Set user as admin

- `cp config/settings.yml config/settings.local.yml`
- Put your email into `admin.emails`
- In user menu (right-top of pages), you should see `Administration`

## Troubleshooting

Make sure run `gem update --system` to use latest Rubygem

## Help wanted

- UI/UX design & SCSS & HTML improvement
- Layout for mails
- Coding style & structural improvement
- Try support uploading user avatar using ActiveStorage
- Find bugs
- Docker for deployment, including stages to compiling assets & copy `yml`s, easy to migrate to k8s

## Screenshots

![Sign in page](_screenshots/sign_in_page.png)
![Admin user page](_screenshots/admin_user_page.png)

## License

[MIT License](https://opensource.org/licenses/MIT).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.