Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Jumpstart Jamstack Development
Jumpstart Jamstack Development

Jumpstart Jamstack Development: Build and deploy modern websites and web apps using Gatsby, Netlify, and Sanity

Arrow left icon
Profile Icon Christopher Pecoraro Profile Icon Vincenzo Gambino
Arrow right icon
NZ$56.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.7 (6 Ratings)
Paperback May 2021 252 pages 1st Edition
eBook
NZ$31.99 NZ$45.99
Paperback
NZ$56.99
Subscription
Free Trial
Arrow left icon
Profile Icon Christopher Pecoraro Profile Icon Vincenzo Gambino
Arrow right icon
NZ$56.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.7 (6 Ratings)
Paperback May 2021 252 pages 1st Edition
eBook
NZ$31.99 NZ$45.99
Paperback
NZ$56.99
Subscription
Free Trial
eBook
NZ$31.99 NZ$45.99
Paperback
NZ$56.99
Subscription
Free Trial

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Jumpstart Jamstack Development

Chapter 2: Introduction to Sanity

Throughout this book, we will build a news and events website and make use of Sanity.io as a structured content framework. We will explore how to create and manage content and new types of content by adding custom fields, defining validation rules for the fields, and customizing Sanity Studio. We will also learn how to source our content to a frontend framework through the Graph-Relational Object Queries (GROQ) Sanity.io query language and GraphQL.

We will make use of JavaScript React-based Gatsby as our frontend framework and we will run through the components of the framework, showing how to manage routes, pages, and single components such as images, calendars, forms, listings, and more.

We will host the application on Netlify, which is a platform for automating the deployment of web projects. We will manage our code through the GitHub distributed source code versioning system and connect it to Netlify, in order to trigger automated deployment every time we add a new feature to our code repository.

This chapter will cover the following main topics:

  • Account setup
  • Introduction to Sanity.io
  • Creating a project
  • Introducing Sanity Manage
  • Sanity Studio overview

Technical requirements

You will require the following things to understand this chapter:

  • A GitHub account
  • A Sanity Studio account
  • A Netlify account

The code for this chapter can be found at https://github.com/PacktPublishing/Jumpstart-Jamstack-Development/tree/chapter_two.

Account setup

The first step required is to create an account on the Sanity.io website (https://www.sanity.io). A Sanity account may be set up at the start of the project creation. The three different methods for creating an account are with a Google account, a GitHub account, or simply with an email and password. Next, we create an account on the Netlify website (https://app.netlify.com/signup). There are four methods that may be used for account creation: GitHub, GitLab, a Bitbucket account, or email and password. We will be using GitHub as it is the most convenient option. Finally, if not already created, create an account on the GitHub website (https://github.com/join). A username, email address, and password are required.

At the time of writing, all three services use the freemium model and thus provide a generous free plan for use with small projects.

Introduction to Sanity.io

"Sanity.io is the platform for structured content."

https://www.sanity.io/docs

Sanity.io is a data storage service where you can manage content, making use of Sanity's Application Programming Interfaces (APIs), tools, and libraries. You can easily build a centralized content repository for your projects.

Sanity at its core is the data store and its query language is GROQ.

Since Sanity Studio is an open source single-page application, it can be freely modified and themed. Built using the JavaScript language, you can easily define your content structure. Then, using the ReactJS library, you are able to extend Sanity Studio's functionality with your own ReactJS components. Also, Sanity Studio enables workflow personalization for a project's content editors. Since Sanity Studio uses npm, you may contribute a plugin by creating a public package hosted on https://www.npmjs.com/, to extend its functionality.

Sanity's content is stored and accessed via its data store, which is accessible using either the Sanity.io client library or via a HyperText Transfer Protocol (HTTP) API call. Sanity.io manages the data store, which is cloud-hosted.

What is GROQ?

GROQ is a query language created by Sanity. It is used to retrieve information from the data store. GROQ is easy to learn and powerful—for example, different sets of documents can be queried into a single response.

Now that we have a high-level overview of Sanity.io, we will create our first project.

Creating a project

After you have successfully created accounts on Sanity.io, GitHub, and Netlify, we can begin with the project creation, using the Sanity.io Blog with Gatsby starter project.

The Uniform Resource Locator (URL) for Sanity.io project creation is https://www.sanity.io/create.

Click on the Create project link, as shown in the following screenshot:

Figure 2.1 – Sanity create page

Figure 2.1 – Sanity create page

There are three steps to complete for creating our very first project, as follows:

  1. Log in to your Sanity.io account using one of the aforementioned methods, and add the Project title. Sanity needs this section to create a new Sanity project for you. We can set the Project title as <Your Name> hands-on Jamstack. The following screenshot shows an example of this:
    Figure 2.2 – Connect to Sanity.io

    Figure 2.2 – Connect to Sanity.io

    Sanity will create a repository for the project. Click the Sign In button to connect to your GitHub account and rename the repository as your-name-hands-on-Jamstack.

    Note

    You cannot have any spaces in the name.

    Optionally, you may set it as a private repository. On each git push to the remote repository, the website will be automatically redeployed, as illustrated in the following screenshot:

    Figure 2.3 – Connect to GitHub

    Figure 2.3 – Connect to GitHub

    Sanity will automatically deploy your application to Netlify and make it available to the web.

  2. Click the Connect button to connect to your Netlify account, and we are ready to go! You should see the following message:
    Figure 2.4 – Connect to Netlify

    Figure 2.4 – Connect to Netlify

  3. Now, press the Create project button, as illustrated in the following screenshot, and in a short amount of time the project will be set up:
Figure 2.5 – Create project

Figure 2.5 – Create project

Once the project is created, Sanity will deploy two web applications to Netlify.

The first web application is the frontend website driven by Gatsby that connects to the Sanity-hosted backend.

The URL structure format is as follows:

https://website-name.netlify.com

You can see that it takes the form of the project name plus the Netlify domain.

The other web application is Sanity Studio, where we can manage the content. The URL structure format is as follows:

https://website-name-studio.netlify.com

You can see that it takes the form of project name, a dash, the word studio, and then the Netlify domain.

Let's start exploring Sanity.

Introducing Sanity Manage

Let's start by looking at the Sanity.io project we have just created. Log in to your Sanity.io account by clicking on the Log in link on the Sanity.io website, as shown in the following screenshot:

Figure 2.6 – Log in link

Figure 2.6 – Log in link

After logging in, you should be able to see a list of your projects. From the top menu, you will also have the option to create a new team and the option to create a new project as illustrated in the following screenshot:

Figure 2.7 – Sanity.io Manage landing page

Figure 2.7 – Sanity.io Manage landing page

Click on the project's rectangular block, and let's have a look at the project pages.

Sanity.io project pages

From this section, you can manage your Sanity.io project. Under the top menu, you can find the section with project’s Sanity Studio details such as URL, PROJECT ID, and PLAN will always be visible across all the pages of the project as illustrated in the following screenshot:

Figure 2.8 – Sanity menu header

Figure 2.8 – Sanity menu header

Under this top menu, there is a second-level menu with various aspects of the project, as illustrated in the following screenshot:

Figure 2.9 – Second-level menu

Figure 2.9 – Second-level menu

There are five sections to be explored. Let's take a look at each one in turn.

Usage

In this section of the page, the resource usage presented as bandwidth in kilobytes (KB), megabytes (MB), or gigabytes (GB) for this project is shown.

There are currently seven charts available, with the following data:

  • Resource Usage:

    Document used (a donut chart)

    Assets used (a donut chart)

  • Usage this month:

    Bandwidth (an area graph)

    API Requests (an area graph)

    API CDN Requests (an area graph)

  • Asset and document history:

    Documents (an area graph)

    Assets (an area graph)

Bandwidth, document, and request statistics are updated once every hour. Asset statistics are updated once a day.

Members

On the Members page, all members of the current project are displayed. Here, users may invite and remove members, depending on their role. When adding a new member, they may choose the type of access level for this member.

There are three permissions that can be set, as follows:

  • Administrator: A user with this role can fully manage the current project and its aspects.
  • Read + Write: A user with this role can read from and write to all datasets of the current project.
  • Read: A user with this role can only read from all datasets of the current project.

Datasets

From this section, you may view and remove datasets. Datasets are where data is stored. A project may have more than one dataset, depending on the project's needs. The Developer account is limited to two accounts.

Settings

From this section, you can manage the General settings and API of the current project.

General settings include the following:

  • Organization
  • Project Name
  • Project Color
  • Custom Studio URL

You can also disable or delete a project. When you disable a project, it can be re-enabled at any time without data loss.

When you delete a project, all the documents, assets, and users related to the project will be removed. Note that this action cannot be undone.

From this section, you may also view and modify your current plan. Depending on your needs, you can choose a different plan. For this project, though, the free plan Developer is amply sufficient, providing up to three users.

Let's explore the API settings, in the following subsections.

CORS Origins

In this subsection, you can add and remove hosts that can connect to the project API. The localhost:3333 host is automatically added. localhost:3333 is our local development environment URL. The Gatsby application URL and Sanity Studio application URL hosted on Netlify are also automatically added to the CORS Origins list.

In this way, we allow our local development environment and the applications hosted on Netlify to access our Sanity API.

Every time we want to let a new application communicate with the Sanity API, we do this by simply adding the application URL to our CORS Origins list, which is as follows:

  • Token: A token is used by robots to query the project API.
  • Webhooks: Webhooks are called when an action is triggered. For example, when content is changed, we can call a given URL to perform an action such as a notification.

Now that we know how to change the configuration of our application, let's see how we can add content through Sanity Studio.

Sanity Studio overview

The starter project is a blog site where a user may add the following:

  • Blog posts
  • Authors
  • Categories

Throughout this book, we are going to extend this functionality by creating a news and events website, adding new types of content and new types of fields.

We will manage the application settings and content from Sanity Studio.

Click on the Studio link from the Sanity Studio details section given below the top-level menu.

The first screen contains the Sanity Studio Dashboard, where there are some useful widgets that we are going to explore now.

Navigation

From the Navigation menu, all sections of Sanity Studio may be accessed, as illustrated in the following screenshot:

Figure 2.10 – Sanity Studio navigation menu

Figure 2.10 – Sanity Studio navigation menu

Clicking on the Pencil sign will open a pop-up where you can choose to add a Blog post, an Author, or a Category.

From the Search field, you can look for any Blog post, Author, and Category.

Dashboard and Desk are the two main sections of the application. Let's discuss these in detail.

Dashboard

In the Dashboard section, we have shortcuts divided in blocks that link to all the sections included in Sanity Studio.

Edit your content

From this shortcut, the user has access to subpages of the Desk section, such as the following:

  • Settings
  • Blog posts
  • Authors
  • Categories

Netlify sites

This block lists the Netlify sites created for a project. We can click View or Admin to perform operations on our application. If any website content is changed, a deployment may be triggered by clicking on the Deploy button.

Sanity Studio is the application we are currently using, and Blog Website is our blog application.

Project info

This block lists all information relating to Sanity projects, as follows:

  • Project ID
  • Dataset
  • Frontend
  • GROQ
  • GraphQL
  • GitHub repository

Project users

Similar to the Team section of the Sanity Manage page, Project users lists all the current project's users.

Recent blog posts

As the block title indicates, a list of five recent blog posts will be shown here. Clicking on each blog post title will bring you to the Edit page for that specific blog post.

Desk

From the Desk section of Sanity Studio, the settings and content may be managed.

Settings

The application comes with some basic settings that we will extend during this book.

Basic settings include the following:

  • Title
  • Description
  • Keywords
  • Author

Blog posts

A blog post is a piece of content created by an author. It comes with some preconfigured fields, such as the following:

  • Title
  • Slug
  • Published at
  • Main image
  • Excerpt
  • Authors
  • Categories
  • Body

Authors

Authors are the creators of a piece of content, such as a blog post. Similar to Blog post, this section has preconfigured fields, such as the following:

  • Name
  • Slug
  • Image
  • Biography

Categories

Categories are used to categorize a piece of content. A category may be also used to filter content during a search.

As with the Blog posts and Authors sections, it has a few predefined fields, namely Title and Description.

Summary

In this chapter, we were introduced to Sanity.io. Through Sanity's Create tool we have created a new application hosted on Netlify using the Sanity user interface, and we have hosted our code base on GitHub. We explored how to manage a Sanity application and Sanity Studio's Dashboard capabilities.

In the next chapter, we will explore the example content, and learn how to delete, modify, and create new content using the Sanity Studio Desk.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Understand how JavaScript integrates with reusable application program interfaces (APIs) and browser markup to build a serverless web application
  • Gain a solid understanding of static site development with Gatsby and its importance in Jamstack
  • Find out how to deploy a Jamstack event website directly from GitHub using Netlify

Description

Jamstack (JavaScript, API, and Markup) enables web developers to create and publish modern and maintainable websites and web apps focused on speed, security, and accessibility by using tools such as Gatsby, Sanity, and Netlify. Developers working with Jamstack will be able to put their knowledge to good use with this practical guide to static site generation and content management. This Jamstack book takes a hands-on approach to implementation and related methodologies that will have you up and running with modern web development in no time. Complete with step-by-step explanations of essential concepts, practical examples, and self-assessment questions, you'll begin by building an event and venue schema structure, and then expand the functionality, exploring all that the Jamstack has to offer. You’ll learn how an example Jamstack is built, build structured content using Sanity to create a schema, use GraphQL to expose the content, and employ Gatsby to build an event website using page and template components and Tailwind CSS Framework. Lastly, you’ll deploy the website to both, a Netlify server and the Microsoft Static Web Apps Service, and interact with it using Amazon Alexa. By the end of this book, you'll have gained the knowledge and skills you need to install, configure, build, extend, and deploy a simple events website using Jamstack.

Who is this book for?

This book is for web developers looking to implement Jamstack practically. JavaScript developers who want to build modern speedy and secure web apps will also find this book useful. Familiarity with JavaScript and Database programming is assumed.

What you will learn

  • Discover the Jamstack approach and build speedy, secure, and accessible websites and web apps with its component technologies
  • Build an events website by using the Jamstack and the Gatsby static site generator
  • Create and modify your templates and pages to build creative web apps
  • Build, modify, and extend structured content schemas in Sanity
  • Understand Gatsby plugins, project structure, and files, and how it can be used to build Jamstack apps
  • Find out how GatsbyJS uses GraphQL to source content
Estimated delivery fee Deliver to New Zealand

Standard delivery 10 - 13 business days

NZ$20.95

Premium delivery 5 - 8 business days

NZ$74.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 07, 2021
Length: 252 pages
Edition : 1st
Language : English
ISBN-13 : 9781800203495
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Estimated delivery fee Deliver to New Zealand

Standard delivery 10 - 13 business days

NZ$20.95

Premium delivery 5 - 8 business days

NZ$74.95
(Includes tracking information)

Product Details

Publication date : May 07, 2021
Length: 252 pages
Edition : 1st
Language : English
ISBN-13 : 9781800203495
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total NZ$ 193.97
Full-Stack React, TypeScript, and Node
NZ$71.99
Jumpstart Jamstack Development
NZ$56.99
ASP.NET Core 5 and React
NZ$64.99
Total NZ$ 193.97 Stars icon

Table of Contents

16 Chapters
Chapter 1: History of the Jamstack Chevron down icon Chevron up icon
Chapter 2: Introduction to Sanity Chevron down icon Chevron up icon
Chapter 3: Exploring Sanity Studio Chevron down icon Chevron up icon
Chapter 4: Sanity Configuration and Schemas Chevron down icon Chevron up icon
Chapter 5: Sanity's GROQ Language Chevron down icon Chevron up icon
Chapter 6: Sanity's GraphQL Playground Chevron down icon Chevron up icon
Chapter 7: Gatsby – An Introduction Chevron down icon Chevron up icon
Chapter 8: Gatsby and GraphQL Chevron down icon Chevron up icon
Chapter 9: Gatsby Source Plugins Chevron down icon Chevron up icon
Chapter 10: Building Gatsby Components Chevron down icon Chevron up icon
Chapter 11: APIs – Extending Gatsby Chevron down icon Chevron up icon
Chapter 12: APIs – Alexa Skills Chevron down icon Chevron up icon
Chapter 13: Tying It All Together Chevron down icon Chevron up icon
Chapter 14: Deployment Using Netlify and Azure Chevron down icon Chevron up icon
Chapter 15: Conclusion Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Most Recent
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.7
(6 Ratings)
5 star 66.7%
4 star 33.3%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Most Recent

Filter reviews by




Judith Metzger Jul 13, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is an amazing book that highlights the serverless architecture of Jamstack. Also, it goes into deployment with Netlify and touches Sanity.io CMS and Gatsby.
Amazon Verified review Amazon
Rafael Martinez Jun 28, 2021
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I don't usually review books, but this deserves the review, Alexandre provided a lot of examples to deploy web apps using Deno, I was looking a different way to deploy backend services and I found Deno, now with this book my goal will be achieved easily.
Amazon Verified review Amazon
Mr. Brett Jephson Jun 27, 2021
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
As an introduction to the modern Jamstack, and to creating projects using that stack, this book takes you through the approach by describing well defined steps and processes. It is practical but gives some information about the theory behind the stack and why it has become a popular choice for modern web development.I hadn't heard of Sanity.io before. It is a platform to help structure and publish content. The first part of this book is about setting up a project on that platform. It is good to learn something new but I feel there are a few issues with this:1. The book will need some updates (screenshots, instructions) every time the website changes. It could get out of date quite easily if the platform updates often.2. It doesn't really give me information about alternatives, which is a shame as there are lots of good alternatives for content creation. Being opinionated is fine but I'd like to know more about why I should choose this approach.I know more about Gatsby and Netlify and both are well known choices for Jamstack. Both provide good developer experience and help create fast websites. There are lots of bits to learn about with these technologies including GraphQL and React. The book provides decent introductions to using these technologies but you may want to learn more advanced uses from other sources.All in all, this provides a lot of good information and steers you through the process of getting a project up and running. A good introduction.
Amazon Verified review Amazon
Mr. Robert Young Jun 06, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
NOTE: I am still working my way through this book - review copy provided by PacktJamstack is something that has always filled me with fear but this year I have been trying to get in to JavaScript a bit more and I have always been curious about Jamstack since I worked through a course on Eleventy + Netlify.Packt kindly reached out to me and asked if I would like to review this book as they had seen my progress working through courses on LinkedIn.This book serves as a great intro to Jamstack not only goes over what Jamstack is and what is involved in building Jamstack websites and web apps but it also walks you through building an event site using and Gatsby.It delves in to templates and extending content schemas in Sanity, takes you through Gatsby plugins, structures of projects and files and how it can be used to build Jamstack apps.The book goes in to a good amount of detail on the above topics as well as providing history of the Jamstack, and then introduces Sanity and dives deep over 5 chapters, then the next 5 chapters introduce Gatsby in a good amount of detail before the book diverts in to a chapter on API with Gatsby and Alex and the final 3 chapters putting it all together using all knowledge and practice in previous chapters as well as introducing Tailwind CSS then on to deployment with Netlify and Azure.I recommend this book to anyone with a bit of experience with JavaScript, I am not the best with JavaScript but I enjoyed working through this book.
Amazon Verified review Amazon
Amazon Customer May 27, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I have been working consistently with Jamstack technologies for several years and this book provides an excellent introduction to the major themes and topics as well as introducing the reader to some of the key technologies required to begin publishing your own Jamstack websites.The content around Gatsby and Sanity is extremely useful and I would strongly recommend this book for anyone looking to get started with Jamstack or anyone who likes to have a good reference for core concepts relating to Jamstack web development.I personally like to use this as reference material when designing and developing new projects. Excellent work and looking forward to seeing further publications in this vein.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela