Free book sample

Kubernetes Operator Mastery

From Development to Deployment: A Comprehensive Guide to Building, Optimizing, and Scaling Custom Controllers

You're about to dive deep into the world of Kubernetes operators, where automation meets innovation.

269 pages14 chaptersMar 23, 2025KubernetesCreated by Chris

Download sample:

About this book

This comprehensive guide takes you from the fundamentals of operator development to advanced techniques for scaling and optimizing distributed systems. You'll learn how to extend the Kubernetes API, implement custom resources, and leverage the full power of the Operator SDK. As you progress through the book, you'll gain hands-on experience with real-world examples, mastering the art of writing resilient and efficient operators. You'll explore cutting-edge topics like GitOps integration, service mesh implementation, and even dive into using Rust for Kubernetes operators. This book doesn't just teach you how to code; it empowers you to contribute to the Kubernetes community, speak at conferences, and mentor others in this rapidly evolving field. By the time you finish this guide, you'll have the skills and confidence to design, develop, and deploy sophisticated Kubernetes operators that can handle complex stateful applications and optimize resource usage across your clusters. Whether you're looking to enhance observability, implement multi-tenancy, or create custom Kubernetes tools, this book provides the knowledge and practical insights you need to become a true Kubernetes operator expert.

Table of contents

  1. IntroductionUnderstanding Kubernetes Operators, Book Overview and Learning Path, Prerequisites and Setup, The Importance of Operators in Modern Cloud-Native ArchitecturesRead below
  2. Chapter 1: Fundamentals of Kubernetes OperatorsThe Operator Pattern, Custom Resource Definitions (CRDs), Extending the Kubernetes API, Introduction to the Operator SDK
  3. Chapter 2: Building Your First OperatorSetting Up Your Operator Project, Defining the API and Custom Resource, Implementing Controller Logic, Understanding the Reconciliation Loop
  4. Chapter 3: Advanced Operator TechniquesWorking with Finalizers, Implementing Admission Webhooks, Leader Election in Operators, Caching and Indexing for Performance
  5. Chapter 4: Operator Design Patterns and Best PracticesUnderstanding Operator Capability Levels, Designing Stateless Operators, Implementing Stateful Operators, Versioning and Upgrading Operators
  6. Chapter 5: Testing Strategies for Kubernetes OperatorsUnit Testing Controller Logic, Integration Testing with envtest, End-to-End Testing on Live Clusters, Chaos Testing for Resilience
  7. Chapter 6: Mastering the Operator SDKAdvanced Operator SDK Features, Customizing Operator Scaffolding, Integrating with the Operator Lifecycle Manager (OLM), Extending the SDK with Plugins
  8. Chapter 7: GitOps and Continuous Delivery for OperatorsGitOps Principles for Operator Development, Setting Up CI/CD Pipelines for Operators, Integrating Operators with ArgoCD, Flux and Operator Deployments
  9. Chapter 8: Debugging and Troubleshooting OperatorsEffective Logging Techniques, Remote Debugging in Kubernetes, Profiling Operator Performance, Common Operator Issues and Solutions
  10. Chapter 9: Scaling and Optimizing OperatorsEfficient Resource Management, Designing for Multi-Cluster Environments, High Availability Operator Architectures, Performance Tuning Techniques
  11. Chapter 10: Securing Kubernetes OperatorsRole-Based Access Control (RBAC) for Operators, Implementing Network Policies, Secure Secrets Management, Configuring Security Contexts
  12. Chapter 11: Observability and Monitoring for OperatorsExposing Custom Metrics, Integrating with Prometheus, Distributed Tracing for Operators, Setting Up Alerting Rules
  13. Chapter 12: Advanced Topics in Operator DevelopmentImplementing Multi-Tenancy, Integrating with Service Mesh, Writing Operators in Rust, AI and Machine Learning Operators
  14. Chapter 13: Contributing to the Kubernetes EcosystemContributing to Open Source Operators, Participating in Kubernetes SIGs, Speaking at Kubernetes Conferences, Mentoring Junior Kubernetes Developers
  15. Chapter 14: The Future of Kubernetes OperatorsEmerging Trends in Operator Development, Serverless and Operator Convergence, Operators for Edge Computing, Building Operator Ecosystems
  16. ConclusionKey Takeaways, Next Steps in Your Kubernetes Journey
  17. AppendixAdditional Operator Resources, Kubernetes and Operator Glossary

Introduction

Welcome to the world of Kubernetes operators, where the power of automation meets the flexibility of cloud-native architectures. As an experienced software engineer with a specialization in Kubernetes and cloud-native technologies, you're about to embark on a journey that will not only deepen your expertise but also position you as a thought leader in the rapidly evolving Kubernetes ecosystem. This introduction sets the stage for your exploration into the intricate realm of Kubernetes operator development, a field that's revolutionizing how we manage complex applications and extend the capabilities of Kubernetes itself.

In the pages that follow, you'll discover how to harness the full potential of Kubernetes operators to automate complex operations, streamline deployments, and create robust, self-healing systems. This book is designed to take you from understanding the core concepts to mastering advanced techniques, enabling you to build, optimize, and scale custom controllers that can handle the most demanding enterprise environments. Whether you're looking to contribute to open-source projects, solve unique challenges in your organization, or push the boundaries of what's possible with Kubernetes, this comprehensive guide will equip you with the knowledge and practical skills to excel.

As we delve into the intricacies of operator development, you'll find that this book goes beyond mere theory. It's packed with hands-on examples, best practices, and real-world scenarios that will help you apply your learning immediately. From leveraging the Operator SDK to implementing GitOps principles, from mastering reconciliation loops to debugging distributed systems, every chapter is designed to build upon your existing knowledge and challenge you to think critically about operator design and implementation.

By the end of this journey, you'll have gained the expertise to not only develop sophisticated Kubernetes operators but also to become a valuable contributor to the Kubernetes community. You'll be prepared to tackle complex stateful applications, optimize resource usage across clusters, and even explore cutting-edge topics like AI-driven operators and edge computing scenarios. So, let's begin this exciting adventure into the heart of Kubernetes operator mastery, where your skills and creativity will shape the future of cloud-native computing.

Understanding Kubernetes Operators

At the core of Kubernetes' extensibility lies a powerful concept: the Kubernetes operator. Operators are application-specific controllers that extend the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user. They build upon the basic Kubernetes resource and controller concepts but include domain or application-specific knowledge to automate common tasks.

The concept of operators was introduced by CoreOS in 2016 and has since become an integral part of the Kubernetes ecosystem. Operators encapsulate operational knowledge and best practices for deploying and managing applications, essentially codifying the expertise of a human operator into software. This automation is particularly valuable for stateful applications, which often require specialized knowledge for tasks such as scaling, upgrades, and backups.

At their essence, Kubernetes operators follow the controller pattern, a core principle in Kubernetes architecture. This pattern involves a control loop that continuously monitors the state of your cluster, making or requesting changes where necessary, and working to move the current state closer to the desired state. Operators extend this pattern by applying it to specific applications, allowing for more nuanced and application-aware management.

One of the key strengths of operators is their ability to leverage Custom Resource Definitions (CRDs). CRDs allow you to define new, custom resources that extend the Kubernetes API, effectively creating a domain-specific language for your application. When combined with a custom controller (the operator), these CRDs enable you to declaratively manage complex applications using Kubernetes-native tools and APIs.

Operators can perform a wide range of tasks, from simple deployments to complex operations like handling application upgrades, scaling based on custom metrics, or even managing cross-cluster resources. Some common use cases for operators include:

  • Database management: Automating tasks like replication, sharding, and backups for databases such as PostgreSQL, MongoDB, or Cassandra.
  • Monitoring and observability: Deploying and configuring monitoring stacks like Prometheus and Grafana, adjusting based on cluster size or application needs.
  • Service mesh: Managing the deployment and configuration of service mesh components across a cluster or multiple clusters.
  • Machine learning workflows: Orchestrating complex machine learning pipelines, managing model training, and serving infrastructure.
  • Edge computing: Coordinating deployments and updates across distributed edge locations.

The power of operators lies in their ability to encode domain-specific knowledge into a format that Kubernetes can understand and act upon. This abstraction allows teams to manage complex applications with the same tools and workflows they use for simpler, stateless applications. It brings the benefits of cloud-native patterns—declarative configuration, self-healing, scalability—to a wider range of applications and use cases.

As you progress through this book, you'll learn how to design, implement, and maintain operators that can handle increasingly complex scenarios. You'll start with the basics of the operator pattern and gradually move towards advanced topics like multi-cluster management, integration with external systems, and handling complex state reconciliation.

Understanding Kubernetes operators is not just about learning a new technology; it's about embracing a paradigm shift in how we think about application management in cloud-native environments. It's about moving from imperative, manual operations to declarative, automated management. As you deepen your understanding of operators, you'll be better equipped to design resilient, scalable systems that can adapt to the dynamic nature of modern cloud environments.

In the following sections, we'll dive deeper into the components that make up an operator, explore the Operator SDK, and begin our journey towards mastering this powerful pattern. Remember, the goal is not just to learn how to use operators, but to understand them deeply enough to create innovative solutions to complex operational challenges. Let's embark on this journey to become true Kubernetes operator experts.

Book Overview and Learning Path

This book is structured to provide a comprehensive and logical progression through the world of Kubernetes operator development. It's designed to take you from the foundational concepts to advanced techniques, ensuring that by the end, you'll have the skills and knowledge to design, implement, and maintain sophisticated Kubernetes operators. Let's take a moment to outline the journey ahead and understand how each chapter contributes to your mastery of operator development.

We begin with the fundamentals in Chapter 1, "Fundamentals of Kubernetes Operators." This chapter lays the groundwork by exploring the operator pattern in depth, introducing Custom Resource Definitions (CRDs), and explaining how operators extend the Kubernetes API. You'll also get your first look at the Operator SDK, a powerful tool that will become instrumental in your operator development journey.

Chapter 2, "Building Your First Operator," is where theory meets practice. You'll set up your development environment, define your first custom resource, and implement the controller logic that brings your operator to life. This hands-on chapter will give you a tangible understanding of the operator lifecycle and the reconciliation loop, which are crucial concepts in operator development.

As you progress, Chapter 3 dives into "Advanced Operator Techniques." Here, you'll explore more complex topics such as finalizers, admission webhooks, and leader election. These advanced concepts will enable you to build more sophisticated and resilient operators capable of handling complex operational scenarios.

Chapter 4, "Operator Design Patterns and Best Practices," shifts focus to the architectural aspects of operator development. You'll learn about different operator capability levels, understand the nuances of stateless versus stateful operators, and explore strategies for versioning and upgrading operators. This chapter will help you design operators that are not only functional but also maintainable and scalable.

Testing is a critical aspect of operator development, and Chapter 5 is dedicated to "Testing Strategies for Kubernetes Operators." You'll learn how to implement comprehensive testing suites, from unit tests for your controller logic to integration tests using envtest, and even end-to-end tests on live clusters. The chapter concludes with an introduction to chaos testing, ensuring your operators can withstand the unpredictable nature of distributed systems.

Chapter 6, "Mastering the Operator SDK," takes a deep dive into this essential tool. You'll explore advanced features, learn to customize operator scaffolding, and understand how to integrate with the Operator Lifecycle Manager (OLM). This chapter will significantly enhance your productivity and the quality of your operators.

In Chapter 7, we explore "GitOps and Continuous Delivery for Operators." This chapter bridges the gap between development and operations, showing you how to implement GitOps principles in your operator workflows and set up robust CI/CD pipelines. You'll also learn how to integrate operators with popular GitOps tools like ArgoCD and Flux.

Chapter 8 focuses on "Debugging and Troubleshooting Operators," an essential skill for any operator developer. You'll learn advanced logging techniques, explore remote debugging in Kubernetes environments, and discover how to profile operator performance. This chapter will equip you with the tools and knowledge to diagnose and resolve complex issues in production environments.

As we move into more advanced territory, Chapter 9 covers "Scaling and Optimizing Operators." Here, you'll learn how to design operators that can efficiently manage resources, operate in multi-cluster environments, and achieve high availability. This chapter is crucial for those looking to deploy operators in large-scale, enterprise environments.

Security is paramount in Kubernetes environments, and Chapter 10, "Securing Kubernetes Operators," ensures you're well-versed in best practices. From implementing Role-Based Access Control (RBAC) to managing secrets securely, this chapter covers all aspects of operator security.

Chapter 11 delves into "Observability and Monitoring for Operators," teaching you how to expose custom metrics, integrate with monitoring systems like Prometheus, implement distributed tracing, and set up effective alerting rules. These skills are essential for maintaining healthy operators in production.

In Chapter 12, we explore "Advanced Topics in Operator Development," pushing the boundaries of what's possible with operators. You'll learn about implementing multi-tenancy, integrating with service meshes, writing operators in Rust for improved performance, and even exploring AI and machine learning operators.

Chapter 13 shifts focus to "Contributing to the Kubernetes Ecosystem," encouraging you to give back to the community. You'll learn how to contribute to open-source operators, participate in Kubernetes Special Interest Groups (SIGs), speak at conferences, and mentor junior developers.

Finally, Chapter 14 looks at "The Future of Kubernetes Operators," exploring emerging trends, the convergence of serverless and operator patterns, operators in edge computing, and the development of operator ecosystems.

This learning path is designed to be both comprehensive and practical. Each chapter builds upon the last, introducing new concepts while reinforcing what you've already learned. By the end of this book, you'll have a deep understanding of Kubernetes operators and the skills to implement them in complex, real-world scenarios. Remember, the key to mastering operators is practice and experimentation. Don't hesitate to try out the concepts as you learn them, and challenge yourself to apply them to your own projects or work environments.

Prerequisites and Setup

Before we dive into the world of Kubernetes operator development, it's essential to ensure that you have the necessary tools and environment set up. This section will guide you through the prerequisites and help you prepare your development environment for the journey ahead. While you already have a strong background in software engineering and Kubernetes, having the right tools and a properly configured environment will significantly enhance your learning experience and productivity.

First and foremost, you'll need a solid understanding of Kubernetes concepts and architecture. As an experienced software engineer with a specialization in Kubernetes, you likely already possess this knowledge. However, it's always beneficial to refresh your understanding of key concepts such as pods, deployments, services, and custom resources. If you feel the need to brush up on any of these topics, the official Kubernetes documentation is an excellent resource[1].

In terms of programming languages, this book primarily uses Go (Golang) for operator development. Go is the de facto language for Kubernetes and its ecosystem, offering excellent performance and a rich set of libraries for Kubernetes interaction. If you're not already familiar with Go, it's recommended to spend some time learning the basics. The official Go tour and documentation are great starting points[2].

Now, let's set up your development environment. Here's a list of tools you'll need to install:

  • Go: Install the latest stable version of Go from the official website.
  • Docker: You'll need Docker for building and testing your operators locally.
  • kubectl: The Kubernetes command-line tool is essential for interacting with your clusters.
  • minikube or kind: These tools allow you to run a local Kubernetes cluster for development and testing.
  • Operator SDK: This is a framework for building Kubernetes operators efficiently.
  • A code editor or IDE: Visual Studio Code with the Go extension is popular, but use whatever you're most comfortable with.

To install these tools, you can follow these general steps (note that specific commands may vary depending on your operating system):

  1. Install Go:
    # Download and install Go from https://golang.org/dl/
    # Then, set up your GOPATH and add Go binaries to your PATH
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin
  2. Install Docker:
    # Follow the instructions at https://docs.docker.com/get-docker/
  3. Install kubectl:
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
  4. Install minikube or kind:
    # For minikube
    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    chmod +x minikube
    sudo mv minikube /usr/local/bin/
    
    # For kind
    GO111MODULE="on" go get sigs.k8s.io/kind@v0.11.1
  5. Install Operator SDK:
    export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)
    export OS=$(uname | awk '{print tolower($0)}')
    export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.18.0
    curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
    chmod +x operator-sdk_${OS}_${ARCH} && sudo mv operator-sdk_${OS}_${ARCH} /usr/local/bin/operator-sdk

After installing these tools, verify your setup by running version checks:

go version
docker --version
kubectl version --client
minikube version # or kind version
operator-sdk version

It's also recommended to set up a GitHub account if you don't already have one. Many of the examples and projects we'll be working with are hosted on GitHub, and it's an excellent platform for version control and collaboration.

Lastly, ensure you have access to a Kubernetes cluster for testing and deployment. While local solutions like minikube or kind are great for development, having access to a cloud-based Kubernetes service (such as Google Kubernetes Engine, Amazon EKS, or Azure Kubernetes Service) can be beneficial for testing in more realistic environments.

With your environment set up, you're now ready to begin your journey into Kubernetes operator development. Remember, the key to mastering any technology is practice and experimentation. Don't hesitate to try out concepts as you learn them, and don't be afraid to break things in your local environment – it's all part of the learning process.

In the next section, we'll explore the importance of operators in modern cloud-native architectures, setting the stage for the deep dive into operator development that follows. Let's embark on this exciting journey to become a Kubernetes operator expert!

The Importance of Operators in Modern Cloud-Native Architectures

As we stand at the forefront of cloud-native computing, Kubernetes operators have emerged as a critical component in managing complex, stateful applications at scale. Their importance in modern cloud-native architectures cannot be overstated, as they bridge the gap between the declarative nature of Kubernetes and the often complex, stateful requirements of real-world applications. Let's delve into why operators have become so crucial and how they're shaping the future of cloud-native development and operations.

First and foremost, operators extend Kubernetes' capabilities beyond its built-in resources. While Kubernetes excels at managing stateless applications, many real-world scenarios involve stateful applications with complex lifecycle management requirements. Databases, message queues, and distributed systems often need specialized knowledge for tasks like scaling, upgrades, and failure recovery. Operators encapsulate this domain-specific knowledge, allowing these applications to be managed using Kubernetes-native approaches[3].

One of the key benefits of operators is their ability to automate complex operational tasks. In traditional environments, these tasks often require manual intervention from skilled administrators. Operators can automate processes such as:

  • Initial deployment and configuration of applications
  • Scaling operations based on custom metrics or predefined rules
  • Backup and restore procedures
  • Version upgrades and rollbacks
  • Disaster recovery and high availability configurations
This automation not only reduces the potential for human error but also allows organizations to manage applications at scale with smaller operations teams.

Operators also play a crucial role in implementing the "everything as code" philosophy in Kubernetes environments. By defining application-specific logic as code, operators enable GitOps workflows where the entire state of an application, including its operational procedures, can be version-controlled and peer-reviewed. This approach improves collaboration between development and operations teams, enhances transparency, and facilitates auditing and compliance efforts[4].

In the context of multi-cloud and hybrid cloud strategies, operators provide a consistent way to manage applications across different environments. Whether an application is running on-premises, in a public cloud, or at the edge, operators can ensure that it's deployed and managed consistently. This consistency is particularly valuable as organizations adopt more complex, distributed architectures.

Operators also contribute significantly to the reliability and resilience of cloud-native applications. By continuously monitoring the state of the resources they manage and automatically taking corrective actions, operators implement the principles of self-healing systems. This capability is especially important in large-scale deployments where manual intervention for every issue is impractical.

From a developer's perspective, operators abstract away much of the complexity involved in running stateful applications on Kubernetes. This abstraction allows application developers to focus on business logic rather than operational details. For example, a developer can use a database operator to request a highly available database cluster without needing to understand the intricacies of how that cluster is set up and maintained.

In the realm of cloud-native application platforms, operators are becoming a standard way to extend and customize the platform itself. Many Kubernetes-based platforms, such as OpenShift, use operators extensively to manage core platform services. This approach allows platform teams to evolve and extend their offerings more easily, providing a plugin architecture for cloud-native platforms[5].

Looking towards the future, operators are poised to play an even more significant role in emerging technologies and paradigms:

  • Edge Computing: Operators can manage the deployment and lifecycle of applications across distributed edge locations, handling the unique challenges of edge environments.
  • AI/ML Workflows: Operators are being developed to manage complex machine learning pipelines, handling tasks like model training, serving, and monitoring.
  • Serverless Platforms: Operators can manage the underlying infrastructure for serverless platforms, bridging the gap between serverless abstractions and Kubernetes primitives.
  • Service Mesh: Operators are increasingly used to deploy and manage service mesh components, simplifying the adoption of these complex networking layers.

As the Kubernetes ecosystem continues to evolve, the importance of operators in modern cloud-native architectures is only set to grow. They represent a powerful paradigm for extending Kubernetes, enabling more sophisticated application management, and driving automation in cloud-native environments. By mastering operator development, you're positioning yourself at the forefront of this evolution, ready to tackle the complex challenges of modern distributed systems.

In the chapters that follow, we'll dive deep into the technical aspects of building, deploying, and managing operators. You'll gain the skills to not only use existing operators but also to create custom operators that can solve unique challenges in your organization or contribute to the broader Kubernetes community. The journey to becoming a Kubernetes operator expert starts here, and the impact of your work will ripple through the cloud-native landscape, shaping the future of how we build and manage applications in the cloud era.

Back to contents

Notes

Introduction

  1. 1. Kubernetes Documentation
  2. 2. The Go Programming Language
  3. 3. B. Burns and others, "Borg, Omega, and Kubernetes," ACM Queue, 2016
  4. 4. F. Beetz and S. Kolb, Towards a Unified Model for DevOps and its Implementation in a Microservice Architecture, IEEE International Conference on Software Architecture Companion (ICSA-C), 2020
  5. 5. Red Hat, "The State of Kubernetes Operators," Red Hat Research Report, 2021

This is the end of the free sample. The full book has 14 chapters.

Want this book written for you?

Tell us your goals and background, and get your own version of this book, tailored by AI to you.

User avatar
User avatar
User avatar
User avatar
User avatar
9,258 books created by readers like you
As seen on:
Product HuntRedditMediumDEV

Benefits of AI-tailored books

Read one book, not ten:
all the Kubernetes knowledge you need, gathered into a single book.
Save days of learning:
tell us your goals, choose your topics, and the whole book is built around them.
Learn effortlessly:
Kubernetes book written for your specific background and expertise.
Understand at a glance:
includes charts, tables, timelines, checklists, decision trees, and more.
Stay current:
written the day you order it, not years ago.
Trust what you read:
every book is checked for accuracy, with real research when your subject needs it.

Create your unique book in 3 steps

1. Select your focus

Select the focus of your Kubernetes book and share your background

Your Kubernetes book focus
2. Personalize your book

Specify your goals and choose sub-topics to include

3. Get your tailored book

Your book is ready in 10 minutes. Read it online, download as EPUB or PDF, or send to Kindle.

Frequently asked questions

What is TailoredRead?

TailoredRead creates complete, full-length nonfiction ebooks, written specifically for you. Tell us what you want to learn and why, and TailoredRead writes you a complete ebook on it, with charts, tables, and diagrams throughout. Read it online, on Kindle, or on any e-reader, or download it as a PDF or EPUB. Every book is written fresh the day you order it.

How is the book tailored to me?

Before anything is written, you answer a few short questions about your goals, your background, and the topics you care about. Your book is then planned around your answers: written at your level, focused on your goals, and covering the topics you chose, instead of the one-size-fits-all book a store sells everyone.

Will it read like generic AI content?

No. Your book isn't a chat transcript: it's planned chapter by chapter before a single word is written, told in a clear book voice, and explains ideas visually with charts, tables, and diagrams. After writing, every book goes through an editorial pass that polishes chapters so the book reads consistent from start to finish. Judge for yourself: browse thousands of sample books on our Explore Books page.

How accurate is the content?

Our AI first checks whether your subject needs live research. Niche and fast-moving subjects are researched before writing, and the book plan and chapters are grounded in what it finds. After writing, every book goes through a quality pass that checks its facts and consistency, and researched books list their sources in a Notes section at the back.

How long is the book?

You choose the length: Comprehensive (250-300 pages), Detailed (150-200 pages), Essential (70-100 pages), or Short (30-50 pages).

Does the book include visuals?

Yes. Every book includes charts, tables, and diagrams: timelines, checklists, step-by-step guides, decision trees, comparison tables, matrices, and bar charts. A typical book includes dozens of these visual elements.

Can I read it on Kindle? What formats can I download?

Yes. Every book can be read in our online reader or downloaded as a PDF or EPUB. The EPUB can be opened with Kindle, Apple Books, Kobo, and any e-reader. The Commercial and Author licenses also include an editable Word (DOCX) and Markdown download.

How much does it cost?

About the price of a regular ebook. The exact price depends on your book's length and complexity, from $2 for the shortest books to $35 for the most comprehensive, and it's shown when you review your book, before you commit to anything. Each book is a one-time purchase, yours to keep, no subscription. Licenses that let you share, teach, or publish your book range from $35.99 to $49.99.

Can I preview the book before purchasing?

Before you pay, you'll see what your book will cover: the title, a detailed description, the estimated length, and the complete chapter-by-chapter table of contents, so you know what you're getting before you decide. The full text itself is written after you purchase.

How long does it take to create a book?

About 10 minutes. You can start reading the opening chapters while the rest is still being written.

Personalize and buy this book

Get your personalized version, tailored by AI to your goals, background, and interests