L.R. Braden's Blog

November 11, 2025

Shadow's Bastion: Cover Reveal!

Here it is, the cover for the newsest addition to the Magicsmith family: Shadow's Bastion! Since this is the first Magicsmith book published under my new imprint, Magical Realms Press, I wanted to make this cover feel consistent with the rest of the series. How do you think it turned out? Book description:

Deals and desperation are a dangerous combination...

Alex will do anything to protect the man she loves from an eternity as the vampire council’s political puppet, but a favor from the fae Lord of Enchantment comes at a steep price. A decision must be made, and she’s running out of time.

The peace summit that will determine the fate of all paranatural beings on Earth is just around the corner, and vampires coming out of the closet isn’t the only complication. Purists are ramping up production of Fantasia—a drug distilled from the bodies of abducted fae to grant magical abilities to mundane humans—and whispers indicate an attack on the summit.

In order to save the summit and protect the people she loves, Alex must travel deep behind enemy lines with the last person she wants to trust as her only backup.

Advance Reader Copies will be going out in December for those interested in providing an early review. To get in on the action, you can join my ARC readers group at https://welcome.lrbraden.com/ARC* * *

The best way to stay in the know about new releases, sneak peeks, sales, and more is to subscribe to my author mailing list. I send out a monthly newsletter, plus occasional time-sensitive special announcements. Sign up here:@import url("https://assets.mlcdn.com/fonts.css?ve... /* LOADER */ .ml-form-embedSubmitLoad { display: inline-block; width: 20px; height: 20px; } .g-recaptcha { transform: scale(1); -webkit-transform: scale(1); transform-origin: 0 0; -webkit-transform-origin: 0 0; height: ; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; } .ml-form-embedSubmitLoad:after { content: " "; display: block; width: 11px; height: 11px; margin: 1px; border-radius: 50%; border: 4px solid #fff; border-color: #ffffff #ffffff #ffffff transparent; animation: ml-form-embedSubmitLoad 1.2s linear infinite; } @keyframes ml-form-embedSubmitLoad { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #mlb2-7229900.ml-form-embedContainer { box-sizing: border-box; display: table; margin: 0 auto; position: static; width: 100% !important; } #mlb2-7229900.ml-form-embedContainer h4, #mlb2-7229900.ml-form-embedContainer p, #mlb2-7229900.ml-form-embedContainer span, #mlb2-7229900.ml-form-embedContainer button { text-transform: none !important; letter-spacing: normal !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper { background-color: #f6f6f6; background-image: url(https://storage.mlcdn.com/account_ima... background-position: center center; background-repeat: no-repeat; background-size: cover; border-width: 0px; border-color: transparent; border-radius: 4px; border-style: solid; box-sizing: border-box; display: inline-block !important; margin: 0; padding: 0; position: relative; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper.embedPopup, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper.embedDefault { width: 400px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper.embedForm { max-width: 400px; width: 100%; } #mlb2-7229900.ml-form-embedContainer .ml-form-align-left { text-align: left; } #mlb2-7229900.ml-form-embedContainer .ml-form-align-center { text-align: center; } #mlb2-7229900.ml-form-embedContainer .ml-form-align-default { display: table-cell !important; vertical-align: middle !important; text-align: center !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-align-right { text-align: right; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedHeader img { border-top-left-radius: 4px; border-top-right-radius: 4px; height: auto; margin: 0 auto !important; max-width: 100%; width: undefinedpx; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody { padding: 20px 20px 0 20px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody.ml-form-embedBodyHorizontal { padding-bottom: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent { text-align: left; margin: 0 0 20px 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent h4, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent h4 { color: #000000; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 30px; font-weight: 400; margin: 0 0 10px 0; text-align: center; word-break: break-word; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p { color: #000000; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px; margin: 0 0 10px 0; text-align: left; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ul, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ul, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol { color: #000000; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol ol, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol ol { list-style-type: lower-alpha; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol ol ol, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol ol ol { list-style-type: lower-roman; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p a, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p a { color: #000000; text-decoration: underline; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-block-form .ml-field-group { text-align: left!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-block-form .ml-field-group label { margin-bottom: 5px; color: #333333; font-size: 14px; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-weight: bold; font-style: normal; text-decoration: none;; display: inline-block; line-height: 20px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p:last-child, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p:last-child { margin: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody form { margin: 0; width: 100%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-formContent, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow { margin: 0 0 20px 0; width: 100%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow { float: left; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-formContent.horozintalForm { margin: 0; padding: 0 0 20px 0; width: 100%; height: auto; float: left; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow { margin: 0 0 10px 0; width: 100%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow.ml-last-item { margin: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow.ml-formfieldHorizintal { margin: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input { background-color: #ffffff !important; color: #333333 !important; border-color: #cccccc; border-radius: 4px !important; border-style: solid !important; border-width: 1px !important; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px !important; height: auto; line-height: 21px !important; margin-bottom: 0; margin-top: 0; margin-left: 0; margin-right: 0; padding: 10px 10px !important; width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input::-webkit-input-placeholder, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input::-webkit-input-placeholder { color: #333333; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input::-moz-placeholder, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input::-moz-placeholder { color: #333333; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input:-ms-input-placeholder, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input:-ms-input-placeholder { color: #333333; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input:-moz-placeholder, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input:-moz-placeholder { color: #333333; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow textarea, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow textarea { background-color: #ffffff !important; color: #333333 !important; border-color: #cccccc; border-radius: 4px !important; border-style: solid !important; border-width: 1px !important; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px !important; height: auto; line-height: 21px !important; margin-bottom: 0; margin-top: 0; padding: 10px 10px !important; width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before { border-color: #cccccc!important; background-color: #ffffff!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input.custom-control-input[type="checkbox"]{ box-sizing: border-box; padding: 0; position: absolute; z-index: -1; opacity: 0; margin-top: 5px; margin-left: -1.5rem; overflow: visible; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before { border-radius: 4px!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type=checkbox]:checked~.label-description::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox input[type=checkbox]:checked~.label-description::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input:checked~.custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input:checked~.custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox input[type=checkbox]:checked~.label-description::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-input:checked~.custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input:checked~.custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input:checked~.custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox input[type=checkbox]:checked~.label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox input[type=checkbox]:checked~.label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type=checkbox]:checked~.label-description::before { border-color: #000000!important; background-color: #000000!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::after { top: 2px; box-sizing: border-box; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after { top: 0px!important; box-sizing: border-box!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after { top: 0px!important; box-sizing: border-box!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::after { top: 0px!important; box-sizing: border-box!important; position: absolute; left: -1.5rem; display: block; width: 1rem; height: 1rem; content: ""; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before { top: 0px!important; box-sizing: border-box!important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-control-label::before { position: absolute; top: 4px; left: -1.5rem; display: block; width: 16px; height: 16px; pointer-events: none; content: ""; background-color: #ffffff; border: #adb5bd solid 1px; border-radius: 50%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-control-label::after { position: absolute; top: 2px!important; left: -1.5rem; display: block; width: 1rem; height: 1rem; content: ""; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before { position: absolute; top: 4px; left: -1.5rem; display: block; width: 16px; height: 16px; pointer-events: none; content: ""; background-color: #ffffff; border: #adb5bd solid 1px; border-radius: 50%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after { position: absolute; top: 0px!important; left: -1.5rem; display: block; width: 1rem; height: 1rem; content: ""; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after { position: absolute; top: 0px!important; left: -1.5rem; display: block; width: 1rem; height: 1rem; content: ""; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-radio .custom-control-label::after { background: no-repeat 50%/50% 50%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-checkbox .custom-control-label::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::after, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after { background: no-repeat 50%/50% 50%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-control, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-control { position: relative; display: block; min-height: 1.5rem; padding-left: 1.5rem; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-input, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input { position: absolute; z-index: -1; opacity: 0; box-sizing: border-box; padding: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label { color: #000000; font-size: 12px!important; font-family: 'Open Sans', Arial, Helvetica, sans-serif; line-height: 22px; margin-bottom: 0; position: relative; vertical-align: top; font-style: normal; font-weight: 700; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-select, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-select { background-color: #ffffff !important; color: #333333 !important; border-color: #cccccc; border-radius: 4px !important; border-style: solid !important; border-width: 1px !important; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px !important; line-height: 20px !important; margin-bottom: 0; margin-top: 0; padding: 10px 28px 10px 12px !important; width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; height: auto; display: inline-block; vertical-align: middle; background: url('https://assets.mlcdn.com/ml/images/de...') no-repeat right .75rem center/8px 10px; -webkit-appearance: none; -moz-appearance: none; appearance: none; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow { height: auto; width: 100%; float: left; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal { width: 70%; float: left; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-button-horizontal { width: 30%; float: left; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-button-horizontal.labelsOn { padding-top: 25px; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .horizontal-fields { box-sizing: border-box; float: left; padding-right: 10px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input { background-color: #ffffff; color: #333333; border-color: #cccccc; border-radius: 4px; border-style: solid; border-width: 1px; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px; line-height: 20px; margin-bottom: 0; margin-top: 0; padding: 10px 10px; width: 100%; box-sizing: border-box; overflow-y: initial; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow button { background-color: #000000 !important; border-color: #000000; border-style: solid; border-width: 1px; border-radius: 4px; box-shadow: none; color: #ffffff !important; cursor: pointer; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 14px !important; font-weight: 700; line-height: 20px; margin: 0 !important; padding: 10px !important; width: 100%; height: auto; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow button:hover { background-color: #2f2052 !important; border-color: #2f2052 !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type="checkbox"] { box-sizing: border-box; padding: 0; position: absolute; z-index: -1; opacity: 0; margin-top: 5px; margin-left: -1.5rem; overflow: visible; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description { color: #000000; display: block; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; margin-bottom: 0; position: relative; vertical-align: top; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label { font-weight: normal; margin: 0; padding: 0; position: relative; display: block; min-height: 24px; padding-left: 24px; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label a { color: #000000; text-decoration: underline; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label p { color: #000000 !important; font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; font-size: 12px !important; font-weight: normal !important; line-height: 18px !important; padding: 0 !important; margin: 0 5px 0 0 !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label p:last-child { margin: 0; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit { margin: 0 0 20px 0; float: left; width: 100%; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button { background-color: #000000 !important; border: none !important; border-radius: 4px !important; box-shadow: none !important; color: #ffffff !important; cursor: pointer; font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; font-size: 14px !important; font-weight: 700 !important; line-height: 21px !important; height: auto; padding: 10px !important; width: 100% !important; box-sizing: border-box !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button.loading { display: none; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button:hover { background-color: #2f2052 !important; } .ml-subscribe-close { width: 30px; height: 30px; background: url('https://assets.mlcdn.com/ml/images/de...') no-repeat; background-size: 30px; cursor: pointer; margin-top: -10px; margin-right: -10px; position: absolute; top: 0; right: 0; } .ml-error input, .ml-error textarea, .ml-error select { border-color: red!important; } .ml-error .custom-checkbox-radio-list { border: 1px solid red !important; border-radius: 4px; padding: 10px; } .ml-error .label-description, .ml-error .label-description p, .ml-error .label-description p a, .ml-error label:first-child { color: #ff0000 !important; } #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow.ml-error .label-description p, #mlb2-7229900.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow.ml-error .label-description p:first-letter { color: #ff0000 !important; } @media only screen and (max-width: 400px){ .ml-form-embedWrapper.embedDefault, .ml-form-embedWrapper.embedPopup { width: 100%!important; } .ml-form-formContent.horozintalForm { float: left!important; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow { height: auto!important; width: 100%!important; float: left!important; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal { width: 100%!important; } .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal > div { padding-right: 0px!important; padding-bottom: 10px; } .ml-form-formContent.horozintalForm .ml-button-horizontal { width: 100%!important; } .ml-form-formContent.horozintalForm .ml-button-horizontal.labelsOn { padding-top: 0px!important; } } Newsletter Signup

Don't miss a beat! Sign up for my newsletter to get the latest updates on up-and-coming projects, events, special offers, new releases, and more:

Subscribe Loading... You're in!

Thanks for subscribing to my newsletter. You should receive an email shortly with a link to download your free gift.


If you're ready to dive into the Magicsmith universe, I suggest starting with A Drop of Magic.

function ml_webform_success_7229900() { var $ = ml_jQuery || jQuery; $('.ml-subscribe-form-7229900 .row-success').show(); $('.ml-subscribe-form-7229900 .row-form').hide(); } fetch("https://assets.mailerlite.com/jsonp/4...") For now, I'll leave you with this excerpt from Shadow's Bastion:

A back door to the kitchen that blended almost perfectly with the white walls opened, and a second man stepped through. This one was shorter than Mr. Mustache—shorter than any of us, coming barely to my chin. He was stocky, with a bushy beard and frizzy brown hair that reached his shoulders. He reminded me of a dwarf from Lord of the Rings.

I frowned. Could he actually be a dwarf? Human lore about elves were based on a variety of fae species, including the sidhe. Stories about dwarfs probably had a similar background. I wonder which fae inspired them?

The probably-not-a-real-dwarf held out a small tray that looked like a safety deposit box with a locking lid. “Cell phones and weapons.” His voice was gruff but not unpleasant.

Ash dropped a phone and folding knife into the tray. These were both for show, since Ivan had warned us about the procedure. He’d supplied us each with burner phones and simple weapons, as would be expected. I placed my set of disposable possessions in the box as well. My actual phone was tucked alongside my gun and knife in my backpack at the safe house.

The new guy stepped back, and Mr. Mustache brought out a security wand. “Spread your arms and legs.” He did a quick sweep with the wand to verify we didn’t have any transmitting devices and gave us each a physical pat down to ensure we hadn’t stashed any additional weapons. “Clear.”

The second man closed and locked the metal box that held our props. He handed Ash a small silver key. “Don’t lose this if you want your stuff back.”

Ash nodded and tucked the key into their pocket.

“Follow me,” said Mr. Mustache.

He slung his pack over one shoulder and led us out the back, into an alley that smelled of stale food and mildew. A silver SUV with tinted windows blocked most of the alley. He opened the back door and motioned us to climb inside. I slid through to the far seat and latched my seatbelt. We were almost there. This was going to work.

The second man carried Chase’s cage to the back of the SUV and secured it in the trunk with bungee cords. When he was done, he circled the car and opened my door.

I looked at him curiously. “Forget something?”

“Last step,” he said. He pointed, and I followed his finger to find Ash looking back at me. Behind him, Mr. Mustache stood beside the other open door. A hypodermic needle glinted in his hand, moving toward Ash. Something sharp pierced the side of my neck.

I twisted, shoving the dwarf-like man away, but the cold pressure surging through my veins told me the damage was done. He closed my door, and the distant echo of a thud told me Ash’s door had been closed as well. I turned to look, but the colors in the car streaked and ran together like paints in the rain.

What the hell was going on? Ivan hadn’t mentioned anything about drugs.

I reached for the latch on my seatbelt, but my muscles turned to jelly. My fingers fumbled against the button. I couldn’t depress it. Whatever he’d given me was very fast acting.

We passed all their stupid tests! But we must have done something to give ourselves away. Had Mr. Mustache noticed my reaction when he hurt Chase despite his back being turned? Had Ash’s illusion wavered when their blood was wiped away?

I slumped in my seat. My shoulder bumped against Ash. My eyes closed. It doesn’t matter what tipped them off. We’re screwed.

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on November 11, 2025 09:05

October 30, 2025

Book Review: The Slow Regard of Silent Things

The Slow Regard of Silent Things (The Kingkiller Chronicle, #2.5) The Slow Regard of Silent Things by Patrick Rothfuss
My rating: 5 of 5 stars

The Slow Regard of Silent Things is a study in setting and mood. This novella is set in the world of Patrick Rothfus's Kingkiller Chronicles, but reading the other books really isn't necessary to enjoy this one (despite what Rothfus says in the forward).

The main, and arguable only, character in the story is a girl who lives in the Underthing--a hidden place beneath the rest of the world, tucked away in corners and forgotten. She lives her life by a set of rituals, which she seems to grasp by instinct, and interacts with her environment in the most thoughtful, respectful way. This story takes the idea of "A place for everything, and everything in its place" to a whole new level.

If you like compelling, intuitive characters, evocative settings, and deep contemplation, you won't be disappointed with The Slow Regard of Silent Things.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on October 30, 2025 12:47

September 11, 2025

Book Review: Sunreach

Sunreach (Skyward, #2.1) Sunreach by Brandon Sanderson
My rating: 4 of 5 stars

Sunreach is the first of three novellas that take place between the main books in the Skyward series, following the secondary characters while Spensa is off having her central plot adventures.

I really loved that I got to get to know these characters better, though I wasn't 100% sold on the plot of this one. FM is the main narrative character in the story and, while I really liked her, I had some trouble connecting with her. Still, we gain some valuable insight into the relationships between characters, and a *very important plot point* that will be integral to the main story once Spensa comes back, but I'm not going to spoil it here.

With all the depth and world building I've come to expect from any of Sanderson's books, this novella was a welcome addition to the Skyward series.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on September 11, 2025 12:58

Review: Sunreach

Sunreach (Skyward, #2.1) Sunreach by Brandon Sanderson
My rating: 4 of 5 stars

Sunreach is the first of three novellas that take place between the main books in the Skyward series, following the secondary characters while Spensa is off having her central plot adventures.

I really loved that I got to get to know these characters better, though I wasn't 100% sold on the plot of this one. FM is the main narrative character in the story and, while I really liked her, I had some trouble connecting with her. Still, we gain some valuable insight into the relationships between characters, and a *very important plot point* that will be integral to the main story once Spensa comes back, but I'm not going to spoil it here.

With all the depth and world building I've come to expect from any of Sanderson's books, this novella was a welcome addition to the Skyward series.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on September 11, 2025 12:58

July 24, 2025

Book Review: Cytonic

Cytonic (Skyward, #3) Cytonic by Brandon Sanderson
My rating: 4 of 5 stars

This book picks up right where Skyward Book 2, Starsight, left off, so be sure to read them in order. [SPOILERS] The human world of Detritus is under attack, and Spensa has traveled into the nowhere with M-bot (now housed in a tiny drone body) to escape the Superiority.

Spensa is joined early on by a mysterious adventurer, who she thinks may be M-bot's original pilot. I won't tell you how that works out. ;) Together, the three of them travel across the broken realm of the nowhere on a quest to locate cytonic ruins that reveal old memories in an attempt to piece together what the delvers truly are and why they hate the people in Spensa's dimension so much.

I absolutely loved the descriptions of the floating land masses of the nowhere, each with distinct ecosystems so we get a lot of variety in a very short period of time. I also liked the political makeup of the pirate factions that exist within the nowhere. I will say that parts of the plot felt a little heavy handed--too much convenience for my taste. Though, to be fair, some of those coincidences are explained toward the end. Spensa makes a number of difficult (usually reckless) decisions, faces lots of challenges, and learns some important history lessons, but though it all she remains the same impulsive, loud-mouthed, adrenaline junky she's always been.

While Spensa is off having her grand adventure, the humans she left behind are struggling to survive. There are some changes there, but little real progress. Time flows differently in the nowhere, so it's a little difficult to match up the two timelines. I believe the series of novellas that come between this book and the final book in the series are designed to explain what's happening to the other characters in more detail. But from Spensa's perspective, she doesn't know much about what is happening at home, which creates a sense of urgency for her to get back.

I didn't like this book quite as much as the first two, probably because it had a very "middle book" feel. That said, I still enjoyed it a great deal and will definitely be continuing the series.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on July 24, 2025 14:22

Review: Cytonic

Cytonic (Skyward, #3) Cytonic by Brandon Sanderson
My rating: 4 of 5 stars

This book picks up right where Skyward Book 2, Starsight, left off, so be sure to read them in order. [SPOILERS] The human world of Detritus is under attack, and Spensa has traveled into the nowhere with M-bot (now housed in a tiny drone body) to escape the Superiority.

Spensa is joined early on by a mysterious adventurer, who she thinks may be M-bot's original pilot. I won't tell you how that works out. ;) Together, the three of them travel across the broken realm of the nowhere on a quest to locate cytonic ruins that reveal old memories in an attempt to piece together what the delvers truly are and why they hate the people in Spensa's dimension so much.

I absolutely loved the descriptions of the floating land masses of the nowhere, each with distinct ecosystems so we get a lot of variety in a very short period of time. I also liked the political makeup of the pirate factions that exist within the nowhere. I will say that parts of the plot felt a little heavy handed--too much convenience for my taste. Though, to be fair, some of those coincidences are explained toward the end. Spensa makes a number of difficult (usually reckless) decisions, faces lots of challenges, and learns some important history lessons, but though it all she remains the same impulsive, loud-mouthed, adrenaline junky she's always been.

While Spensa is off having her grand adventure, the humans she left behind are struggling to survive. There are some changes there, but little real progress. Time flows differently in the nowhere, so it's a little difficult to match up the two timelines. I believe the series of novellas that come between this book and the final book in the series are designed to explain what's happening to the other characters in more detail. But from Spensa's perspective, she doesn't know much about what is happening at home, which creates a sense of urgency for her to get back.

I didn't like this book quite as much as the first two, probably because it had a very "middle book" feel. That said, I still enjoyed it a great deal and will definitely be continuing the series.

View all my reviews
1 like ·   •  0 comments  •  flag
Share on Twitter
Published on July 24, 2025 14:22

July 21, 2025

Blog Post: Change is on the horizon...

Some of you may have noticed that I haven't had much of an online presence lately. Let’s just say that my life has been rather… lively of late.Among the various personal and professional changes that happened recently, I was informed that Bell Bridge, the publishing house that produces my books, is closing. This is due to the fact that Debra Dixon, the company president and my developmental editor, has chosen to retire. She’s been a wonderful partner in the refinement of my books, and I’ve learned a lot in working with her. I was incredibly fortunate to have her as my editor and friend, and I wish her all the best in the next chapter of her life. However, this means that all of my rights are reverting back to me, and in order to avoid any disruption in my books’ availability, I am currently in the process of figuring out (and implementing) how to republish all of my existing books.Rest assured, I’m still working on my next Magicsmith book. I’ve even secured a new developmental editor so that there should be minimal delay in getting it out for you to read. That said, there are decisions to be made, and new skills to learn, so I appreciate your patience as I make this transition. I’m determined to deliver all of my existing and future books with the highest degree of polish and professionalism, and I’m excited for this next stage of my author journey. I hope you’ll continue to walk this road with me. Here's to the next adventure! PS- If you're currently reading a book in either my Magicsmith or Rifter series, you may want to order the next book or two now to ensure there's no disruption in your adventure. (especially if you're reading on Kobo, Google, or Apple, which may take longer to get transfered.) While I do try to keep all of my accounts up to date, if you want to be among the first to here what's happening, I suggest you sign up for my author newsletter HERE.
 •  0 comments  •  flag
Share on Twitter
Published on July 21, 2025 13:27

Change is on the horizon...

Some of you may have noticed that I haven't had much of an online presence lately. Let’s just say that my life has been rather… lively of late.Among the various personal and professional changes that happened recently, I was informed that Bell Bridge, the publishing house that produces my books, is closing. This is due to the fact that Debra Dixon, the company president and my developmental editor, has chosen to retire. She’s been a wonderful partner in the refinement of my books, and I’ve learned a lot in working with her. I was incredibly fortunate to have her as my editor and friend, and I wish her all the best in the next chapter of her life. However, this means that all of my rights are reverting back to me, and in order to avoid any disruption in my books’ availability, I am currently in the process of figuring out (and implementing) how to republish all of my existing books.Rest assured, I’m still working on my next Magicsmith book. I’ve even secured a new developmental editor so that there should be minimal delay in getting it out for you to read. That said, there are decisions to be made, and new skills to learn, so I appreciate your patience as I make this transition. I’m determined to deliver all of my existing and future books with the highest degree of polish and professionalism, and I’m excited for this next stage of my author journey. I hope you’ll continue to walk this road with me. Here's to the next adventure! PS- If you're currently reading a book in either my Magicsmith or Rifter series, you may want to order the next book or two now to ensure there's no disruption in your adventure. (especially if you're reading on Kobo, Google, or Apple, which may take longer to get transfered.) While I do try to keep all of my accounts up to date, if you want to be among the first to here what's happening, I suggest you sign up for my author newsletter HERE.
2 likes ·   •  0 comments  •  flag
Share on Twitter
Published on July 21, 2025 13:27

April 2, 2025

Book Review: Starsight

Starsight (Skyward, #2) Starsight by Brandon Sanderson
My rating: 4.5 of 5 stars

Read these books in order! They will make no sense otherwise.

In this second Skyward adventure, Spensa takes us off planet! We get to learn a lot more about the other races that inhabit the universe and how they all interact, both historically and in the present day. There's only a tiny bit of interaction with the characters from book one, as Spensa almost immediately sets off on a covert mission that takes her to a space colony deep behind enemy lines where she goes undercover with the help of M-bot's holograms and meets an entirely new cast.

A lot of the charm of this particular story comes from Spensa being so far out of her depth. She has a very volatile nature, so covert operations are a challenge for her. There were a lot of great scenes that tackled the theme of empathy and seeing the similarities between all living beings even when they originally seemed entirely alien. I particularly enjoyed Spensa's development as she interacted with her alien housekeeper, whom she originally assumed to be an enemy spy.

I occasionally got very irritated with Spensa for making foolish choices, but she is written as a reckless character with little regard for consequences, so such flagrant disregard for potential fallout wasn't out of character. Still, I couldn't help but roll my eyes when things inevitably blew up in her face.

This story ends on an absolute cliffhanger, so be sure to have the next book standing by if you don't like being left in the lurch. I'm excited to continue the adventure, and a little nervous about the paths of a few of the characters might take.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on April 02, 2025 08:35

Review: Starsight

Starsight (Skyward, #2) Starsight by Brandon Sanderson
My rating: 4.5 of 5 stars

Read these books in order! They will make no sense otherwise.

In this second Skyward adventure, Spensa takes us off planet! We get to learn a lot more about the other races that inhabit the universe and how they all interact, both historically and in the present day. There's only a tiny bit of interaction with the characters from book one, as Spensa almost immediately sets off on a covert mission that takes her to a space colony deep behind enemy lines where she goes undercover with the help of M-bot's holograms and meets an entirely new cast.

A lot of the charm of this particular story comes from Spensa being so far out of her depth. She has a very volatile nature, so covert operations are a challenge for her. There were a lot of great scenes that tackled the theme of empathy and seeing the similarities between all living beings even when they originally seemed entirely alien. I particularly enjoyed Spensa's development as she interacted with her alien housekeeper, whom she originally assumed to be an enemy spy.

I occasionally got very irritated with Spensa for making foolish choices, but she is written as a reckless character with little regard for consequences, so such flagrant disregard for potential fallout wasn't out of character. Still, I couldn't help but roll my eyes when things inevitably blew up in her face.

This story ends on an absolute cliffhanger, so be sure to have the next book standing by if you don't like being left in the lurch. I'm excited to continue the adventure, and a little nervous about the paths of a few of the characters might take.

View all my reviews
 •  0 comments  •  flag
Share on Twitter
Published on April 02, 2025 08:35