Deprecated: OnlineOptimisation\EmailEncoderBundle\Functions::eeb_mailto(): Implicitly marking parameter $method as nullable is deprecated, the explicit nullable type must be used instead in /nas/content/live/harperpoint/wp-content/plugins/email-encoder-bundle/src/Functions.php on line 23
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Authentication::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/authentication.php on line 85
Deprecated: ElementorExtras\Base\Condition::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/base/condition.php on line 121
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\User::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/user.php on line 86
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Role::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/role.php on line 86
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Os::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/os.php on line 95
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Browser::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/browser.php on line 90
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Date::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/date.php on line 91
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Date_Time_Before::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/date-time-before.php on line 88
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Time::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/time.php on line 88
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Page::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/page.php on line 87
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Post::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/post.php on line 87
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Static_Page::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/static-page.php on line 88
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Post_Type::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/post-type.php on line 87
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Post_Term::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/post-term.php on line 88
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Taxonomy_Archive::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/taxonomy-archive.php on line 110
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Term_Archive::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/term-archive.php on line 111
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Post_Type_Archive::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/post-type-archive.php on line 87
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Date_Archive::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/date-archive.php on line 111
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Author_Archive::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/author-archive.php on line 86
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Search_Results::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/search-results.php on line 98
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Var_Get::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/var-get.php on line 54
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Var_Post::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/var-post.php on line 54
Deprecated: ElementorExtras\Modules\DisplayConditions\Conditions\Shortcode::check(): Optional parameter $name declared before required parameter $value is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/display-conditions/conditions/shortcode.php on line 99 Harper Point – Stunning photography for your brand. Deprecated: ElementorExtras\Modules\Posts\Widgets\Posts_Base::get_date_formatted(): Optional parameter $custom declared before required parameter $time_format is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/posts/widgets/posts-base.php on line 278
Deprecated: ElementorExtras\Modules\Breadcrumbs\Widgets\Breadcrumbs::add_single(): Optional parameter $post declared before required parameter $query is implicitly treated as a required parameter in /nas/content/live/harperpoint/wp-content/plugins/elementor-extras/modules/breadcrumbs/widgets/breadcrumbs.php on line 1215
Deprecated: Creation of dynamic property OMAPI_Elementor_Widget::$base is deprecated in /nas/content/live/harperpoint/wp-content/plugins/optinmonster/OMAPI/Elementor/Widget.php on line 41 Skip to content
Deprecated: OMAPI_Rules_Exception::__construct(): Implicitly marking parameter $previous as nullable is deprecated, the explicit nullable type must be used instead in /nas/content/live/harperpoint/wp-content/plugins/optinmonster/OMAPI/Rules/Exception.php on line 44
Seriously good photography
We take photographs that make you feel something. We never settle for good enough.
For 15+ years, Harper Point has been a tiny-but-mighty two-person crew crafting bold, creative photography for product, food and beverage brands. From our Ventura studio, we don’t just make photos—we build quirky, precise, sellable visuals that work everywhere from product pages to paid social. We turn products into visuals that work as hard as you do.