Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the flexible-shipping-locations domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woo-product-gallery-slider domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-checkout-manager domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-merger domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the flexible-shipping domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the google-listings-and-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-payments domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-security-audit-log domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the really-simple-ssl domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the updraftplus domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-address-validation domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-cost-of-goods domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-gateway-authorize-net-cim domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the woocommerce-gateway-purchase-order domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the yith-woocommerce-save-for-later domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the visual-composer-starter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131

Notice: wp_woocommerce_session_f37cef655a2f879ac84cb5d5168cc17d cookie cannot be set - headers already sent by /home/madcraft/public_html/stagingchc/wp-includes/functions.php on line 6131 in /home/madcraft/public_html/stagingchc/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 1100

Notice: Undefined index: add-cart-to-product in /home/madcraft/public_html/stagingchc/wp-content/themes/visual-composer-starter-child/functions.php on line 1290

Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'WpbakeryPageBuilderPostCarousel' does not have a method 'enqueue_scripts' in /home/madcraft/public_html/stagingchc/wp-includes/class-wp-hook.php on line 341
CHC - Educating For Eternity! - Catholic Heritage Curricula

Why do Catholic homeschoolers love CHC?

For over 30 years, CHC has been publishing high-quality textbooks, workbooks, and lesson plans for Catholic homeschoolers. CHC is known for:

  • Flexible lesson plans
  • “Open and go” approach
  • Hands-on and engaging materials
  • No tuition or enrollment fees!

How do I begin to homeschool?

Not sure how to begin homeschooling? If you’re just beginning your homeschooling journey, it can be easy to feel overwhelmed. We want to make the transition as easy as possible for you and your family. That’s why we’ve compiled straightforward answers to your top questions about homeschooling.

Begin Here

Claim your free copy of "First Steps into Homeschooling"

Perfect if you are new to homeschooling or new to CHC.
Claim Free Copy Today
Claim your free copy of

Pick a Grade to Tour!

Explore our Grade-Level Flipbooks to determine grade placement, preview core and non-core materials, and print sample pages.
Choose a Flipbook
Pick a Grade to Tour!

The CHC Approach

For over 30 years, CHC has been publishing high-quality textbooks, workbooks, and lesson plans for Catholic homeschoolers. Read about the five key characteristics that make CHC unique.

Favorites

Explore CHC’s top favorites! From art to literature, science to hands-on religion, CHC has materials to enrich every Catholic homeschool.

View All
Little Stories for Little Folks
Teach Your Child to Read
Ever Ancient Ever New, Level 1
Art History, Appreciation, Theory, and Practice
The Treasure Trove of Literature, Level 1
Literature, Grade 4
Behold and See, Level 4
Science & Health, Grade 4
Saints and Seasons of the Liturgical Year
Hands-on Religion, Grade 4
Preparing to Receive Jesus
Hands-on Religion, Grade 2
Building Good Character, Level B
Character-Building Course
Catholic Heritage Handwriting, Level K
Kindergarten Penmanship
My Catholic Speller, Level A
Spelling & Vocabulary, Grade 2
Our United States of America
Social Studies, Grade 4
Life Science
Science, Grade 7
Art Masterpieces: Liturgical Collection
Art Appreciation, Grade 4