{{ profileStep === 0 ? 'Welcome! Let\'s set up your profile' : profileStep === 1 ? 'Tell readers about yourself' : 'Almost done!' }}

{{ profileStep === 0 ? 'This information will appear on your author page.' : profileStep === 1 ? 'A short bio and tagline help readers connect with you.' : 'Choose the genres you write in so we can match you with readers.' }}

Author photo
Click to upload a photo
{{ profileForm.tagline.length }}/80
{{ profileForm.bio.length }} characters
{{ g.trim() }}
Genres help us categorize your works on the site and match you with interested readers through our subscriber newsletter system.
{{ latestAnnouncement.title }}
{{ latestAnnouncement.body }}
View All ({{ activeAnnouncements.length }})

{{ selectedProject.title }}

{{ getClient(selectedProject.clientId).name }} {{ getClient(selectedProject.clientId).name }}
{{ selectedProject.status }}
{{ selectedProject.status }}
Production {{ getPendingReviewCount(selectedProject.id) }}
Discussion Thread
{{ replyingTo.author.name }} {{ truncateBody(replyingTo.body) }}
{{ getAssetName(messageAttachment) || messageAttachment }} v{{ getAsset(messageAttachment).version }}
Attach from bins
{{ asset.filename }} v{{ asset.version }}
No assets yet
Request Review
Select an asset and send it for author review.
{{ emailSendStatus === 'sending' ? 'Sending email...' : emailSendStatus === 'sent' ? 'Email sent ✓' : 'Send failed' }}
{{ bp.bin.label }} v{{ bp.asset.version }}
No assets yet
{{ bp.asset.filename }} {{ formatDate(bp.asset.uploadedAt) }}
KDP DashboardOpen →
Keywords
{{ selectedProject.amazonKeywords ? selectedProject.amazonKeywords.length : 0 }}/7
KDP Status
{{ selectedProject.kdpStatus }}
A+ Content
{{ selectedProject.aplusContentStatus }}
Price
{{ selectedProject.targetPrice || '—' }}
ASIN: {{ selectedProject.asin }}
{{ bin.label }} {{ getBinAssets(bin.id).length }}
Primary
{{ asset.filename }}
v{{ asset.version }} {{ asset.changeTag }} Pending Approved Changes TRASHED
{{ asset.uploadedBy }} {{ formatDate(asset.uploadedAt) }}
Drop files here or click to upload

{{ serviceDashboard.type === 'interior' ? 'Interior' : serviceDashboard.type === 'cover' ? 'Cover' : 'Marketing' }} Dashboard

Discussion
Discussion

KDP Metadata

{{ (selectedProject.blurb || '').length }} / 4000

Purchase Links

Retailer links for this book. The first link with a URL powers the "Get Your Copy" button on the live page.

No purchase links yet. Add one to enable the "Get Your Copy" button.

Publication Formats

No publication formats added yet. Click "Add Format" to get started.
No publication formats have been configured for this project yet.
{{ fmt.label || fmt.type }}

{{ selectedProject.title }}

{{ projectMessages.length }} messages
No messages yet. Start the conversation below.
{{ replyingTo.author.name }} {{ truncateBody(replyingTo.body, 40) }}
{{ authorPageSaveStatus }}
{{ authorPageData.pagePublished ? 'Live' : 'Draft' }}
Page is live — view it Page is in draft mode — toggle "Published" above to go live
Changing this will change your public page URL
DNS setup required — see subdomain guide
Author headshot
Click to upload headshot
{{ g.label }}
Genres affect the visual theme of the author page
{{ authorPageData.pageTheme }}
Control which books appear on the author page. The featured book gets the hero spotlight. Cover images and details are pulled from the project — use Hero Image to override.
Project details (blurb, genre, purchase links, ISBN, etc.) are managed in the Production tab. Changes sync automatically to the author page.
+ Add External Work
{{ (authorPageData.metaDescription || '').length }}/155
+ Add Featured Content
SEO Score
{{ authorPageData.metaTitle ? '✓' : '✕' }}
Meta title filled in
{{ authorPageData.metaDescription ? '✓' : '✕' }}
Meta description filled in
{{ authorPageData.bio ? '✓' : '✕' }}
Author biography filled
{{ hasProjectWithBlurb() ? '✓' : '✕' }}
At least one book with blurb
{{ hasProjectWithPurchaseLink() ? '✓' : '✕' }}
At least one purchase link
SEO Score: {{ seoScore() }}/5
Preview
Theme: {{ (authorPageData.preferredGenres || [])[0] }} View Live Not published
{{ getClient(selectedProject.clientId).name }}
Home About Books Subscribe
Latest Release
{{ (getClientProjects(selectedProject.clientId).find(p => p.isFeatured && p.showOnAuthorPage !== false) || getClientProjects(selectedProject.clientId).find(p => p.showOnAuthorPage !== false))?.title }}
by {{ getClient(selectedProject.clientId).name }}
{{ (getClientProjects(selectedProject.clientId).find(p => p.isFeatured && p.showOnAuthorPage !== false) || getClientProjects(selectedProject.clientId).find(p => p.showOnAuthorPage !== false))?.blurb || '' }}
Get Your Copy
Learn More
{{ (getClient(selectedProject.clientId).name || 'A')[0] }}
{{ authorPageData.tagline }}
About {{ getClient(selectedProject.clientId).name.split(' ')[0] }}

{{ authorPageData.bio.length > 300 ? authorPageData.bio.slice(0, 300) + '...' : authorPageData.bio }}

𝕏
Bibliography
More Books
{{ proj.title }}
{{ proj.genre.map(g => getGenreLabel(g)).join(' · ') }}
Never Miss a Release
Stay Updated

Get notified when {{ getClient(selectedProject.clientId).name.split(' ')[0] }} publishes new work.

your@email.com
Subscribe
© {{ new Date().getFullYear() }} {{ getClient(selectedProject.clientId).name }} · Published by THINE Books

{{ selectedClientOverview.name }}

{{ selectedClientOverview.email }}
Overview
Author Page
{{ getClientProjects(selectedClientOverview.id).length }}
Total Projects
{{ getClientPendingCount(selectedClientOverview.id) }}
Pending Reviews
{{ getClientAssetCount(selectedClientOverview.id) }}
Total Assets
{{ getClientMessageCount(selectedClientOverview.id) }}
Messages

Author Info

Name
{{ selectedClientOverview.name }}
Email
{{ selectedClientOverview.email }}
Tagline
{{ selectedClientOverview.tagline || 'No tagline set' }}
Preferred Genres
{{ getGenreLabel(g) }}
No genres set
Bio
{{ selectedClientOverview.bio || 'No bio set' }}
Profile Status
{{ selectedClientOverview.profileComplete ? 'Complete' : 'Incomplete' }}
Publication Status
Published Unpublished
Name
Email
Tagline
Preferred Genres (comma-separated)
Bio
Projects ({{ getClientProjects(selectedClientOverview.id).length }})

{{ project.title }}

{{ project.status }}
{{ project.status }} Created {{ formatDate(project.createdAt) }} {{ getPendingReviewCount(project.id) }} pending
Title
{{ project.title }}
Services
{{ getServiceLabel(svc) }} None
Genre
{{ getGenreLabel(g) }}
No genre
Publication Status
{{ project.publicationStatus || 'Not set' }}
Title
Services
Genre
{{ g.label }}
Publication Status
{{ getProjectAssetCount(project.id) }} assets {{ getProjectMessageCount(project.id) }} messages {{ getProjectCRCount(project.id) }} CRs

No projects yet for this client.

{{ authorPageSaveStatus }}
{{ authorPageData.pagePublished ? 'Live' : 'Draft' }}
Page is live — view it Page is in draft mode — toggle "Published" above to go live
Changing this will change your public page URL
DNS setup required — see subdomain guide
Author headshot
Click to upload headshot
{{ g.label }}
Select one genre — it sets the visual theme of the author page
{{ authorPageData.pageTheme }}
Control which books appear on the author page. The featured book gets the hero spotlight. Cover images and details are pulled from the project — use Hero Image to override.
Project details (blurb, genre, purchase links, ISBN, etc.) are managed in the Production tab. Changes sync automatically to the author page.
+ Add External Work
Preview
Theme: {{ (authorPageData.preferredGenres || [])[0] }} View Live Not published
{{ selectedClientOverview.name }}
Home About Books Subscribe
Latest Release
{{ (getClientProjects(selectedClientOverview.id).find(p => p.isFeatured && p.showOnAuthorPage !== false) || getClientProjects(selectedClientOverview.id).find(p => p.showOnAuthorPage !== false))?.title }}
by {{ selectedClientOverview.name }}
{{ (getClientProjects(selectedClientOverview.id).find(p => p.isFeatured && p.showOnAuthorPage !== false) || getClientProjects(selectedClientOverview.id).find(p => p.showOnAuthorPage !== false))?.blurb || '' }}
Get Your Copy
Learn More
{{ (selectedClientOverview.name || 'A')[0] }}
{{ authorPageData.tagline }}
About {{ selectedClientOverview.name.split(' ')[0] }}

{{ authorPageData.bio.length > 300 ? authorPageData.bio.slice(0, 300) + '...' : authorPageData.bio }}

X
Bibliography
More Books
{{ proj.title }}
{{ proj.genre.map(g => getGenreLabel(g)).join(' · ') }}
Never Miss a Release
Stay Updated

Get notified when {{ selectedClientOverview.name.split(' ')[0] }} publishes new work.

your@email.com
Subscribe
© {{ new Date().getFullYear() }} {{ selectedClientOverview.name }} · Published by THINE Books
{{ latestAnnouncement.title }}
{{ latestAnnouncement.body }}
View All ({{ activeAnnouncements.length }})

{{ navView === 'announcements' ? 'Announcements' : navView === 'subscribers' ? 'Subscribers' : 'Dashboard' }}

Manage company-wide announcements visible to all authors.
Updates and notices from your publisher.

{{ ann.title }}

{{ ann.body }}

{{ formatDate(ann.date) }} — {{ ann.active ? 'Active' : 'Inactive' }}

No announcements yet. Create one to notify all authors.

{{ ann.title }}

{{ ann.body }}

{{ formatDate(ann.date) }}

No announcements at this time.

Manage subscriber lists and send targeted emails to readers.
{{ subscribers.length }}
Total
{{ getSubscribersForAuthor(client.id).length }}
{{ client.name }}
{{ sentEmails.length }}
Emails Sent
NameEmailGenresSubscribed ToSince
{{ sub.name }} {{ sub.email }} {{ g }} {{ getClient(aId).name }} {{ formatDate(sub.signupDate) }}
Email History

{{ se.subject }}

To: {{ se.audience }} {{ se.recipientCount }} recipients {{ formatDate(se.sentDate) }} by {{ se.sentBy }}

No emails sent yet. Use the Compose button to send your first subscriber email.

Loading preview…
{{ previewAsset.filename }} Open / Download

Version History

{{ v.filename }}v{{ v.version }}
{{ formatTime(v.uploadedAt) }}
{{ v.changeTag }}
Uploaded by {{ v.uploadedBy }}
{{ v.reviewStatus === 'changes-requested' ? 'Changes Req.' : v.reviewStatus }}
Filename
{{ previewAsset.filename }}
Type
{{ previewAsset.mimeType }}
Version
{{ previewAsset.version }}
Uploaded By
{{ previewAsset.uploadedBy }}
Date
{{ formatTime(previewAsset.uploadedAt) }}
Change Order
{{ previewAsset.changeTag }}
Review Status
{{ previewAsset.reviewStatus.replace(/-/g, ' ') }}
Feedback
{{ previewAsset.reviewFeedback }}
Notes
{{ previewAsset.notes }}
Status
In Trash — {{ previewAsset.deprecatedReason }}

{{ walkthroughStep + 1 }}/{{ walkthroughSteps.length }} {{ walkthroughSteps[walkthroughStep].title }}

{{ walkthroughSteps[walkthroughStep].description }}