top of page
Search

7 Must-Have Features for Your Romance Author Website in 2025

What Makes a Website Work in 2025?

Let’s be real — pretty isn’t enough anymore.

In 2025, your romance author website needs to do things.

It needs to sell your books.

Grow your email list.

Make readers fall in love with your brand before they even hit page one.

If your site isn’t checking these boxes, you’re already falling behind.

But don’t panic — I’ve got you.

Here are the 7 must-have features your site needs this year to stay relevant, make sales, and feel like you.

Want a quick way to check what you’ve got (and what you’re missing)?

Download the free Author Website Features Checklist — it’s skimmable, scannable, and gives you a game plan in under 10 minutes.

<link rel="preload" href="https://assets.flodesk.com/flodesk-sans.css" as="style"> <link rel="stylesheet" href="https://assets.flodesk.com/flodesk-sans.css"> <style> <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *::before, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *::after { box-sizing: border-box; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <tabindex -1="-1"></tabindex>:focus { outline: none !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h1, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h2, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h3, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h4, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h6 { margin-top: 0; margin-bottom: 0.7em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 p { margin-top: 0; margin-bottom: 1rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 dl { margin-top: 0; margin-bottom: 1.4rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol ol, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul ol { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 strong { font-weight: bolder; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 small { font-size: 80%; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sub, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sub { bottom: -0.25em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sup { top: -0.5em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 { color: #000000; text-decoration: none; background-color: transparent; -webkit-text-decoration-skip: objects; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 a:hover { color: #4396fd; text-decoration: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 img { border-style: none; vertical-align: middle; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 svg:not(:root) { overflow: hidden; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 area, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <role button="button"></role>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 label, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 summary, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { touch-action: manipulation; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 label { display: inline-block; font-weight: bolder; margin-bottom: 0.7rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button:focus { outline: 1px dotted; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 optgroup, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { margin: 0; font-size: inherit; font-family: inherit; line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input { overflow: visible; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select { text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, html<data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type button="button"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type reset="reset"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type submit="submit"></type> { -webkit-appearance: button; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type button="button"></type>::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type reset="reset"></type>::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type submit="submit"></type>::-moz-focus-inner { padding: 0; border-style: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type radio="radio"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type checkbox="checkbox"></type> { padding: 0; box-sizing: border-box; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type date="date"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type time="time"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type datetime-local="datetime-local"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type month="month"></type> { -webkit-appearance: listbox; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { resize: vertical; overflow: auto; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type number="number"></type>::-webkit-inner-spin-button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type number="number"></type>::-webkit-outer-spin-button { height: auto; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type> { outline-offset: -2px; -webkit-appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type>::-webkit-search-cancel-button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type>::-webkit-search-decoration { -webkit-appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ::-webkit-file-upload-button { font: inherit; -webkit-appearance: button; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <hidden></hidden> { display: none !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control { width: 100%; display: block; outline: none; position: relative; -webkit-appearance: none; appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control::-ms-input-placeholder { color: transparent !important; opacity: 0 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control::placeholder { color: transparent !important; opacity: 0 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:disabled { opacity: 1; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-label { top: 0; left: 0; right: 0; margin: 0; overflow: hidden; position: absolute; white-space: nowrap; text-overflow: ellipsis; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:not(:placeholder-shown)+.fd-form-label { opacity: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-description { margin: 5px 0 0 0; font-size: 0.8em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-feedback { margin: 5px 0 0 0; font-size: 0.8em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group { margin: 0 0 15px; position: relative; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-feedback, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-check { color: #02dba8 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-control { color: #02dba8 !important; border-color: #02dba8 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-feedback { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-feedback, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-check { color: #eb3d3b !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-control { color: #eb3d3b !important; border-color: #eb3d3b !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-feedback { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn { cursor: pointer; display: inline-flex; outline: none; max-width: 100%; -webkit-appearance: none; appearance: none; font-style: normal; text-align: center; align-items: center; text-shadow: none; white-space: normal; justify-content: center; text-decoration: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:hover { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:disabled { opacity: 0.8; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check { cursor: pointer; margin: 0; display: flex; position: relative; align-items: center; padding-left: 30px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input { top: 0; left: 0; width: 18px; height: 18px; opacity: 0; z-index: -1; position: absolute; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__checkmark { top: 0; left: 0; width: 18px; height: 18px; display: block; position: absolute; background-size: 18px; background-image: url("data:image/svg+xml,%3csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg' %3e %3cpath d='M1 4C1 2.34315 2.34315 1 4 1H16C17.6569 1 19 2.34315 19 4V16C19 17.6569 17.6569 19 16 19H4C2.34315 19 1 17.6569 1 16V4Z' fill='white' /%3e %3cpath fill='black' fill-rule='evenodd' clip-rule='evenodd' d='M0.25 4C0.25 1.92893 1.92893 0.25 4 0.25H16C18.0711 0.25 19.75 1.92893 19.75 4V16C19.75 18.0711 18.0711 19.75 16 19.75H4C1.92893 19.75 0.25 18.0711 0.25 16V4ZM4 1.75C2.75736 1.75 1.75 2.75736 1.75 4V16C1.75 17.2426 2.75736 18.25 4 18.25H16C17.2426 18.25 18.25 17.2426 18.25 16V4C18.25 2.75736 17.2426 1.75 16 1.75H4Z' /%3e %3c/svg%3e"); background-repeat: no-repeat; background-position: center center; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__label { flex: 1 1; margin: 0; font-size: 14px; text-align: left; word-break: break-word; font-weight: 400; line-height: 18px; letter-spacing: 0.01em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input:checked+.fd-form-check__checkmark::after { opacity: 1; z-index: 1; visibility: visible; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__checkmark::after { top: 0; left: 0; width: 18px; height: 18px; content: ""; display: block; opacity: 0; z-index: 1; position: absolute; transition: opacity 0.4s, z-index 0.4s; visibility: inherit; background-size: 12px; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='black' width='12' height='10' viewBox='0 0 11.51 8.2' %3e %3ctitle%3echeck%3c/title%3e %3cpath d='M4.05%2c8.2A.74.74%2c0%2c0%2c1%2c3.52%2c8L.22%2c4.68A.75.75%2c0%2c0%2c1%2c1.28%2c3.62l3.3%2c3.3A.75.75%2c0%2c0%2c1%2c4.58%2c8%2c.74.74%2c0%2c0%2c1%2c4.05%2c8.2Z' /%3e %3cpath d='M4.06%2c8.2A.74.74%2c0%2c0%2c1%2c3.53%2c8a.75.75%2c0%2c0%2c1%2c0-1.06l6.7-6.7a.75.75%2c0%2c0%2c1%2c1.06%2c1.06L4.59%2c8A.74.74%2c0%2c0%2c1%2c4.06%2c8.2Z' /%3e %3c/svg%3e"); background-repeat: no-repeat; background-position: center center; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-content { position: relative; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-success .fd-form-content { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-captcha .fd-form-content>*:not(.fd-form-captcha) { opacity: 0; visibility: hidden; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-captcha { top: 0; left: 0; width: 100%; height: 100%; display: flex; position: absolute; align-items: center; justify-content: flex-start; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-success { width: 100%; display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-success .fd-form-success { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-success>*:last-child { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-error { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-error .fd-form-error { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-error>*:last-child { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-focus-visible, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input.fd-focus-visible+.fd-form-check__checkmark { outline: none; box-shadow: 0 0 0 2px #ffffff, 0 0 0 calc(2px + 4px) #000000 !important; transition: box-shadow 0.2s !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-focus-visible, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input.fd-focus-visible+.fd-form-check__checkmark { outline: none; box-shadow: 0 0 0 2px #ffffff, 0 0 0 calc(2px + 2px) #717171 !important; transition: box-shadow 0.2s !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 { background: transparent; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__container { margin: 0 auto; max-width: 1170px; background: transparent; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form { color: #333333; width: 100%; margin: 0; padding: 30px; font-size: 16px; text-align: center; font-family: Helvetica, sans-serif; font-weight: 300; line-height: 1.6; letter-spacing: 0.1px; text-transform: none; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form { word-wrap: anywhere; word-break: break-word; white-space: normal; overflow-wrap: break-word; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__title { color: #000000; width: 100%; margin: 0 0 25px; display: block; font-size: 37px; text-align: center; font-family: Helvetica, sans-serif; font-weight: 700; line-height: 1; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__title * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__subtitle { width: 100%; margin: 0 0 30px; display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__subtitle * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__content { margin: -10px -5px 0; display: flex; flex-wrap: wrap; align-items: start; flex-direction: row; justify-content: center; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__content { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5<data-ff-stage success="success"></data-ff-stage> .ff-67f943521197fa0aa5b704f5__content { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__fields { flex: 0 1 auto; margin: 0px 0px 0; display: flex; flex-wrap: wrap; max-width: calc(100% + 10px); justify-content: center; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__fields { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__field { flex: 1 1; margin: 10px 5px 0; font-size: 16px; max-width: 250px; min-width: 140px; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; letter-spacing: 0.1px; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__field { max-width: calc(100% - 10px); } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__control { color: #873045; border: 2px solid #873045; height: 48px; padding: 12px 20px; font-size: 16px; background: transparent; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; line-height: 20px; border-radius: 24px; letter-spacing: 0.1px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__label { color: #873045; border: 2px solid transparent; padding: 12px 20px; font-size: 16px; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; line-height: 20px; letter-spacing: 0.1px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference { margin: 30px 5px 0; display: flex; flex-direction: column; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-title { color: #333333; width: 100%; margin: 0 0 30px; display: block; font-size: 18px; text-align: center; font-weight: 700; line-height: 1.4; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-title * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-control { width: 100%; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-list { width: calc(100% + 24px); margin: -8px -12px; display: flex; flex-wrap: wrap; justify-content: flex-start; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-list { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-item { flex: 0 0 33.333333333333336%; padding: 8px 12px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__input { top: 2.200000000000001px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__checkmark { top: 2.200000000000001px; border-radius: 4px; background-image: url("data:image/svg+xml,%3csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg' %3e %3cpath d='M1 4C1 2.34315 2.34315 1 4 1H16C17.6569 1 19 2.34315 19 4V16C19 17.6569 17.6569 19 16 19H4C2.34315 19 1 17.6569 1 16V4Z' fill='white' /%3e %3cpath fill='black' fill-rule='evenodd' clip-rule='evenodd' d='M0.25 4C0.25 1.92893 1.92893 0.25 4 0.25H16C18.0711 0.25 19.75 1.92893 19.75 4V16C19.75 18.0711 18.0711 19.75 16 19.75H4C1.92893 19.75 0.25 18.0711 0.25 16V4ZM4 1.75C2.75736 1.75 1.75 2.75736 1.75 4V16C1.75 17.2426 2.75736 18.25 4 18.25H16C17.2426 18.25 18.25 17.2426 18.25 16V4C18.25 2.75736 17.2426 1.75 16 1.75H4Z' /%3e %3c/svg%3e"); } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__label { color: #333333; font-size: 14px; min-height: 22.400000000000002px; font-weight: 400; line-height: 1.6; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__checkmark::after { background-size: 12px; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='black' width='12' height='10' viewBox='0 0 11.51 8.2' %3e %3ctitle%3echeck%3c/title%3e %3cpath d='M4.05%2c8.2A.74.74%2c0%2c0%2c1%2c3.52%2c8L.22%2c4.68A.75.75%2c0%2c0%2c1%2c1.28%2c3.62l3.3%2c3.3A.75.75%2c0%2c0%2c1%2c4.58%2c8%2c.74.74%2c0%2c0%2c1%2c4.05%2c8.2Z' /%3e %3cpath d='M4.06%2c8.2A.74.74%2c0%2c0%2c1%2c3.53%2c8a.75.75%2c0%2c0%2c1%2c0-1.06l6.7-6.7a.75.75%2c0%2c0%2c1%2c1.06%2c1.06L4.59%2c8A.74.74%2c0%2c0%2c1%2c4.06%2c8.2Z' /%3e %3c/svg%3e"); } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__footer { flex: 0 1 auto; margin-top: 10px; text-align: center; margin-left: 5px; margin-right: 5px; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__footer { margin-top: 25px; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__button { color: #873045; width: auto; border: 2px solid #873045; display: inline-block; padding: 12px 20px; font-size: 16px; background: transparent; text-align: center; font-family: Barlow Condensed, sans-serif; font-weight: 600; line-height: 20px; white-space: nowrap; border-radius: 24px; letter-spacing: 0.1px; text-transform: uppercase; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__button { width: 100%; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5<data-ff-stage success="success"></data-ff-stage> .ff-67f943521197fa0aa5b704f5__success { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success-message { color: #333333; width: 100%; display: block; font-size: 16px; word-wrap: anywhere; min-height: 1.6em; text-align: center; word-break: break-word; font-family: Helvetica, sans-serif; font-weight: 300; line-height: 1.6; white-space: normal; overflow-wrap: break-word; letter-spacing: 0.1px; pointer-events: auto; text-transform: none; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success-message { font-size: 16px; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__error { margin: 10px 0 0 0; }

First name

Email address

Subscribe

Thank you for subscribing!

(function(w, d, t, h, s, n) { w.FlodeskObject = n; var fn = function() { (w<n></n>.q = w<n></n>.q || []).push(arguments); }; w<n></n> = w<n></n> || fn; var f = d.getElementsByTagName(t)<0></0>; var v = '?v=' + Math.floor(new Date().getTime() / (120 * 1000)) * 60; var sm = d.createElement(t); sm.async = true; sm.type = 'module'; sm.src = h + s + '.mjs' + v; f.parentNode.insertBefore(sm, f); var sn = d.createElement(t); sn.async = true; sn.noModule = true; sn.src = h + s + '.js' + v; f.parentNode.insertBefore(sn, f); })(window, document, 'script', 'https://assets.flodesk.com', '/universal', 'fd');

window.fd('form:handle', { formId: '67f943521197fa0aa5b704f5', rootEl: '.ff-67f943521197fa0aa5b704f5', });

7 Must-Have Romance Author Website Features for 2025

1. Mobile-First, Always

More than 70% of your readers are visiting your site from their phones. If your layout breaks, your text is unreadable, or your menu is confusing on mobile? They’re gone.

Fix it: Test your site on your own phone right now. Then check it using Google’s Mobile-Friendly Test. Don’t assume it works. Confirm it.

2. An Above-the-Fold CTA That Converts

What’s the first thing a reader sees when they land on your homepage? If it’s a vague intro and no direction, you’ve lost them.

Fix it: Use a bold headline, a single clear CTA button (like “Start Reading” or “Get the Free Bonus Scene”), and make it impossible to miss.

3. Series + Book Pages That Are Easy to Navigate

If readers have to dig for your books, you’ve already failed. Your site should have clean, clickable book pages — bonus if they’re organized by series or reading order.

Fix it: Give each book or series its own page. Include cover, blurb, buy links, and maybe even a reader quote. No clutter. No confusion.

4. A Lead Magnet That Grabs Readers Fast

A basic “Join my newsletter” form doesn’t cut it anymore. You need a reason for readers to give up their email — something spicy, exclusive, or just irresistible.

Fix it: Offer a free short story, a bonus chapter, or early access to a cover reveal. Make the opt-in obvious and worth it.

5. A Personalized Author Bio with Personality

Your bio shouldn’t read like a corporate résumé. It should feel like a peek behind the curtain — the kind of thing that makes a reader say, “Oof, I love her already.”

Fix it: Write in first-person. Include something quirky, romantic, or unexpected. This is where connection starts.

6. Direct Buy Links or Built-In Shop

Stop relying only on Amazon or other third-party sellers. If you’re indie? Take control. Give readers the option to buy directly from you.

Fix it: Use Shopify, Payhip, or BookFunnel integrations. Or get a custom store built with Swoonworthy’s Shopify Packages.

7. Branding That Matches Your Vibe (and Genre)

If your visuals say “sweet small town” but you write mafia romance? That mismatch will lose the exact readers you’re trying to attract.

Fix it: Your fonts, colors, and graphics should match your genre’s expectations — and still feel true to you. If you’re unsure, and see how aligned you are.

Ready to Update Your Website?

You don’t have to start from scratch. You just need a clear plan — and that starts with knowing what works.

Download the Author Website Features Checklist

<link rel="preload" href="https://assets.flodesk.com/flodesk-sans.css" as="style"> <link rel="stylesheet" href="https://assets.flodesk.com/flodesk-sans.css"> <style> <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *::before, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 *::after { box-sizing: border-box; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <tabindex -1="-1"></tabindex>:focus { outline: none !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h1, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h2, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h3, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h4, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 h6 { margin-top: 0; margin-bottom: 0.7em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 p { margin-top: 0; margin-bottom: 1rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 dl { margin-top: 0; margin-bottom: 1.4rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol ol, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ol ul, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ul ol { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 strong { font-weight: bolder; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 small { font-size: 80%; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sub, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sub { bottom: -0.25em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 sup { top: -0.5em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 { color: #000000; text-decoration: none; background-color: transparent; -webkit-text-decoration-skip: objects; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 a:hover { color: #4396fd; text-decoration: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 img { border-style: none; vertical-align: middle; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 svg:not(:root) { overflow: hidden; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 area, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <role button="button"></role>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 label, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 summary, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { touch-action: manipulation; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 label { display: inline-block; font-weight: bolder; margin-bottom: 0.7rem; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button:focus { outline: 1px dotted; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 optgroup, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { margin: 0; font-size: inherit; font-family: inherit; line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input { overflow: visible; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 select { text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button, html<data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type button="button"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type reset="reset"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type submit="submit"></type> { -webkit-appearance: button; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 button::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type button="button"></type>::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type reset="reset"></type>::-moz-focus-inner, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type submit="submit"></type>::-moz-focus-inner { padding: 0; border-style: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type radio="radio"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type checkbox="checkbox"></type> { padding: 0; box-sizing: border-box; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type date="date"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type time="time"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type datetime-local="datetime-local"></type>, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 input<type month="month"></type> { -webkit-appearance: listbox; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 textarea { resize: vertical; overflow: auto; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type number="number"></type>::-webkit-inner-spin-button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type number="number"></type>::-webkit-outer-spin-button { height: auto; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type> { outline-offset: -2px; -webkit-appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type>::-webkit-search-cancel-button, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <type search="search"></type>::-webkit-search-decoration { -webkit-appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 ::-webkit-file-upload-button { font: inherit; -webkit-appearance: button; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 <hidden></hidden> { display: none !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control { width: 100%; display: block; outline: none; position: relative; -webkit-appearance: none; appearance: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control::-ms-input-placeholder { color: transparent !important; opacity: 0 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control::placeholder { color: transparent !important; opacity: 0 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:disabled { opacity: 1; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-label { top: 0; left: 0; right: 0; margin: 0; overflow: hidden; position: absolute; white-space: nowrap; text-overflow: ellipsis; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-control:not(:placeholder-shown)+.fd-form-label { opacity: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-description { margin: 5px 0 0 0; font-size: 0.8em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-feedback { margin: 5px 0 0 0; font-size: 0.8em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group { margin: 0 0 15px; position: relative; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-feedback, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-check { color: #02dba8 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-control { color: #02dba8 !important; border-color: #02dba8 !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-success .fd-form-feedback { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-feedback, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-check { color: #eb3d3b !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-control { color: #eb3d3b !important; border-color: #eb3d3b !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-group.fd-has-error .fd-form-feedback { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn { cursor: pointer; display: inline-flex; outline: none; max-width: 100%; -webkit-appearance: none; appearance: none; font-style: normal; text-align: center; align-items: center; text-shadow: none; white-space: normal; justify-content: center; text-decoration: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:hover { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-btn:disabled { opacity: 0.8; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check { cursor: pointer; margin: 0; display: flex; position: relative; align-items: center; padding-left: 30px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input { top: 0; left: 0; width: 18px; height: 18px; opacity: 0; z-index: -1; position: absolute; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__checkmark { top: 0; left: 0; width: 18px; height: 18px; display: block; position: absolute; background-size: 18px; background-image: url("data:image/svg+xml,%3csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg' %3e %3cpath d='M1 4C1 2.34315 2.34315 1 4 1H16C17.6569 1 19 2.34315 19 4V16C19 17.6569 17.6569 19 16 19H4C2.34315 19 1 17.6569 1 16V4Z' fill='white' /%3e %3cpath fill='black' fill-rule='evenodd' clip-rule='evenodd' d='M0.25 4C0.25 1.92893 1.92893 0.25 4 0.25H16C18.0711 0.25 19.75 1.92893 19.75 4V16C19.75 18.0711 18.0711 19.75 16 19.75H4C1.92893 19.75 0.25 18.0711 0.25 16V4ZM4 1.75C2.75736 1.75 1.75 2.75736 1.75 4V16C1.75 17.2426 2.75736 18.25 4 18.25H16C17.2426 18.25 18.25 17.2426 18.25 16V4C18.25 2.75736 17.2426 1.75 16 1.75H4Z' /%3e %3c/svg%3e"); background-repeat: no-repeat; background-position: center center; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__label { flex: 1 1; margin: 0; font-size: 14px; text-align: left; word-break: break-word; font-weight: 400; line-height: 18px; letter-spacing: 0.01em; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input:checked+.fd-form-check__checkmark::after { opacity: 1; z-index: 1; visibility: visible; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__checkmark::after { top: 0; left: 0; width: 18px; height: 18px; content: ""; display: block; opacity: 0; z-index: 1; position: absolute; transition: opacity 0.4s, z-index 0.4s; visibility: inherit; background-size: 12px; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='black' width='12' height='10' viewBox='0 0 11.51 8.2' %3e %3ctitle%3echeck%3c/title%3e %3cpath d='M4.05%2c8.2A.74.74%2c0%2c0%2c1%2c3.52%2c8L.22%2c4.68A.75.75%2c0%2c0%2c1%2c1.28%2c3.62l3.3%2c3.3A.75.75%2c0%2c0%2c1%2c4.58%2c8%2c.74.74%2c0%2c0%2c1%2c4.05%2c8.2Z' /%3e %3cpath d='M4.06%2c8.2A.74.74%2c0%2c0%2c1%2c3.53%2c8a.75.75%2c0%2c0%2c1%2c0-1.06l6.7-6.7a.75.75%2c0%2c0%2c1%2c1.06%2c1.06L4.59%2c8A.74.74%2c0%2c0%2c1%2c4.06%2c8.2Z' /%3e %3c/svg%3e"); background-repeat: no-repeat; background-position: center center; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input:focus { outline: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-content { position: relative; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-success .fd-form-content { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-captcha .fd-form-content>*:not(.fd-form-captcha) { opacity: 0; visibility: hidden; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-captcha { top: 0; left: 0; width: 100%; height: 100%; display: flex; position: absolute; align-items: center; justify-content: flex-start; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-success { width: 100%; display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-success .fd-form-success { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-success>*:last-child { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-error { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-has-error .fd-form-error { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-error>*:last-child { margin-bottom: 0; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-focus-visible, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input.fd-focus-visible+.fd-form-check__checkmark { outline: none; box-shadow: 0 0 0 2px #ffffff, 0 0 0 calc(2px + 4px) #000000 !important; transition: box-shadow 0.2s !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-focus-visible, <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .fd-form-check__input.fd-focus-visible+.fd-form-check__checkmark { outline: none; box-shadow: 0 0 0 2px #ffffff, 0 0 0 calc(2px + 2px) #717171 !important; transition: box-shadow 0.2s !important; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 { background: transparent; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__container { margin: 0 auto; max-width: 1170px; background: transparent; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form { color: #333333; width: 100%; margin: 0; padding: 30px; font-size: 16px; text-align: center; font-family: Helvetica, sans-serif; font-weight: 300; line-height: 1.6; letter-spacing: 0.1px; text-transform: none; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form { word-wrap: anywhere; word-break: break-word; white-space: normal; overflow-wrap: break-word; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__title { color: #000000; width: 100%; margin: 0 0 25px; display: block; font-size: 37px; text-align: center; font-family: Helvetica, sans-serif; font-weight: 700; line-height: 1; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__title * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__subtitle { width: 100%; margin: 0 0 30px; display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__subtitle * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__content { margin: -10px -5px 0; display: flex; flex-wrap: wrap; align-items: start; flex-direction: row; justify-content: center; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__content { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5<data-ff-stage success="success"></data-ff-stage> .ff-67f943521197fa0aa5b704f5__content { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__fields { flex: 0 1 auto; margin: 0px 0px 0; display: flex; flex-wrap: wrap; max-width: calc(100% + 10px); justify-content: center; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__fields { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__field { flex: 1 1; margin: 10px 5px 0; font-size: 16px; max-width: 250px; min-width: 140px; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; letter-spacing: 0.1px; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__field { max-width: calc(100% - 10px); } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__control { color: #873045; border: 2px solid #873045; height: 48px; padding: 12px 20px; font-size: 16px; background: transparent; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; line-height: 20px; border-radius: 24px; letter-spacing: 0.1px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__label { color: #873045; border: 2px solid transparent; padding: 12px 20px; font-size: 16px; text-align: left; font-family: Open Sans, sans-serif; font-weight: 400; line-height: 20px; letter-spacing: 0.1px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference { margin: 30px 5px 0; display: flex; flex-direction: column; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-title { color: #333333; width: 100%; margin: 0 0 30px; display: block; font-size: 18px; text-align: center; font-weight: 700; line-height: 1.4; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-title * { line-height: inherit; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-control { width: 100%; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-list { width: calc(100% + 24px); margin: -8px -12px; display: flex; flex-wrap: wrap; justify-content: flex-start; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-list { display: block; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__preference-item { flex: 0 0 33.333333333333336%; padding: 8px 12px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__input { top: 2.200000000000001px; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__checkmark { top: 2.200000000000001px; border-radius: 4px; background-image: url("data:image/svg+xml,%3csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg' %3e %3cpath d='M1 4C1 2.34315 2.34315 1 4 1H16C17.6569 1 19 2.34315 19 4V16C19 17.6569 17.6569 19 16 19H4C2.34315 19 1 17.6569 1 16V4Z' fill='white' /%3e %3cpath fill='black' fill-rule='evenodd' clip-rule='evenodd' d='M0.25 4C0.25 1.92893 1.92893 0.25 4 0.25H16C18.0711 0.25 19.75 1.92893 19.75 4V16C19.75 18.0711 18.0711 19.75 16 19.75H4C1.92893 19.75 0.25 18.0711 0.25 16V4ZM4 1.75C2.75736 1.75 1.75 2.75736 1.75 4V16C1.75 17.2426 2.75736 18.25 4 18.25H16C17.2426 18.25 18.25 17.2426 18.25 16V4C18.25 2.75736 17.2426 1.75 16 1.75H4Z' /%3e %3c/svg%3e"); } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__label { color: #333333; font-size: 14px; min-height: 22.400000000000002px; font-weight: 400; line-height: 1.6; letter-spacing: 0px; text-transform: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__form-check .fd-form-check__checkmark::after { background-size: 12px; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='black' width='12' height='10' viewBox='0 0 11.51 8.2' %3e %3ctitle%3echeck%3c/title%3e %3cpath d='M4.05%2c8.2A.74.74%2c0%2c0%2c1%2c3.52%2c8L.22%2c4.68A.75.75%2c0%2c0%2c1%2c1.28%2c3.62l3.3%2c3.3A.75.75%2c0%2c0%2c1%2c4.58%2c8%2c.74.74%2c0%2c0%2c1%2c4.05%2c8.2Z' /%3e %3cpath d='M4.06%2c8.2A.74.74%2c0%2c0%2c1%2c3.53%2c8a.75.75%2c0%2c0%2c1%2c0-1.06l6.7-6.7a.75.75%2c0%2c0%2c1%2c1.06%2c1.06L4.59%2c8A.74.74%2c0%2c0%2c1%2c4.06%2c8.2Z' /%3e %3c/svg%3e"); } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__footer { flex: 0 1 auto; margin-top: 10px; text-align: center; margin-left: 5px; margin-right: 5px; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__footer { margin-top: 25px; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__button { color: #873045; width: auto; border: 2px solid #873045; display: inline-block; padding: 12px 20px; font-size: 16px; background: transparent; text-align: center; font-family: Barlow Condensed, sans-serif; font-weight: 600; line-height: 20px; white-space: nowrap; border-radius: 24px; letter-spacing: 0.1px; text-transform: uppercase; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__button { width: 100%; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success { display: none; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5<data-ff-stage success="success"></data-ff-stage> .ff-67f943521197fa0aa5b704f5__success { display: block; } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success-message { color: #333333; width: 100%; display: block; font-size: 16px; word-wrap: anywhere; min-height: 1.6em; text-align: center; word-break: break-word; font-family: Helvetica, sans-serif; font-weight: 300; line-height: 1.6; white-space: normal; overflow-wrap: break-word; letter-spacing: 0.1px; pointer-events: auto; text-transform: none; } @media (max-width: 767px) { <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__success-message { font-size: 16px; } } <data-ff-el root="root"></data-ff-el>.ff-67f943521197fa0aa5b704f5 .ff-67f943521197fa0aa5b704f5__error { margin: 10px 0 0 0; }

First name

Email address

Subscribe

Thank you for subscribing!

(function(w, d, t, h, s, n) { w.FlodeskObject = n; var fn = function() { (w<n></n>.q = w<n></n>.q || []).push(arguments); }; w<n></n> = w<n></n> || fn; var f = d.getElementsByTagName(t)<0></0>; var v = '?v=' + Math.floor(new Date().getTime() / (120 * 1000)) * 60; var sm = d.createElement(t); sm.async = true; sm.type = 'module'; sm.src = h + s + '.mjs' + v; f.parentNode.insertBefore(sm, f); var sn = d.createElement(t); sn.async = true; sn.noModule = true; sn.src = h + s + '.js' + v; f.parentNode.insertBefore(sn, f); })(window, document, 'script', 'https://assets.flodesk.com', '/universal', 'fd');

window.fd('form:handle', { formId: '67f943521197fa0aa5b704f5', rootEl: '.ff-67f943521197fa0aa5b704f5', });

It’ll show you exactly what to tweak, upgrade, or toss — based on what’s actually working in 2025.

When you’re ready to stop guessing and start converting?

Let’s book a Meet Cute. You talk. I listen. Then I’ll show you how we can rebuild your website into something that sells your books while making you proud to share the link.

TL;DR? Here’s the Fix:

Your site should be working for you — selling books, building your list, and connecting you with the right readers.

🖤 Grab the Website Features Checklist

🖤 Check your setup in 10 minutes

🖤 See what’s missing — and what to upgrade next

And when you’re ready to build something that actually works?

You know where to find me.

 
 
 

Recent Posts

See All

Comments


Swoonworthy-Freebies4.webp

FREEBIE LIBRARY

Asset 17_720x.png

Join The

Swoonworthy Society

Asset 26_720x.png

Exclusive Sales & Promotions

Asset 26_720x.png

Availability Updates

Asset 26_720x.png

Sneak Peeks

Asset 26_720x.png

New Service Launches

Plus, you’ll get access to the Freebie Library when you sign up!

BASED IN NORTH CAROLINA. SERVING CLIENTS ACROSS THE UNITED STATES & BEYOND.

© 2026 SWOONWORTHY DESIGNS. BRANDING BY SWELL DESIGN®.

bottom of page