get_header(); /* ===== Pull ACF values with defaults ===== */ $hero_eyebrow = blok_software_get_field_compat( 'about_hero_eyebrow', get_the_ID(), __( 'About Blok', 'blok-software' ) ); $hero_title = blok_software_get_field_compat( 'about_hero_title', get_the_ID(), __( 'A small team solving a problem we have lived.', 'blok-software' ) ); $hero_lede = blok_software_get_field_compat( 'about_hero_lede', get_the_ID(), __( 'Blok is built by a team that has spent decades inside operational businesses. We know what broken software does to a working day — and we built the platform we always wished we had.', 'blok-software' ) ); // Story $story_eyebrow = blok_software_get_field_compat( 'about_story_eyebrow', get_the_ID(), __( 'Our story', 'blok-software' ) ); $story_title = blok_software_get_field_compat( 'about_story_title', get_the_ID(), __( 'Built by people who lived the problem.', 'blok-software' ) ); $story_body = blok_software_get_field_compat( 'about_story_body', get_the_ID(), '' ); $story_icon = blok_software_get_field_compat( 'about_story_icon', get_the_ID(), 'compass' ); // Why $why_eyebrow = blok_software_get_field_compat( 'about_why_eyebrow', get_the_ID(), __( 'Why we built Blok', 'blok-software' ) ); $why_title = blok_software_get_field_compat( 'about_why_title', get_the_ID(), __( 'The platforms we used were not built for us.', 'blok-software' ) ); $why_body = blok_software_get_field_compat( 'about_why_body', get_the_ID(), '' ); $why_quote = blok_software_get_field_compat( 'about_why_quote', get_the_ID(), '' ); $why_cite = blok_software_get_field_compat( 'about_why_cite', get_the_ID(), '' ); $why_icon = blok_software_get_field_compat( 'about_why_icon', get_the_ID(), 'sparkles' ); // Industry $industry_eyebrow = blok_software_get_field_compat( 'about_industry_eyebrow', get_the_ID(), __( 'Industry experience', 'blok-software' ) ); $industry_title = blok_software_get_field_compat( 'about_industry_title', get_the_ID(), __( 'Decades inside the kinds of businesses we serve.', 'blok-software' ) ); $industry_body = blok_software_get_field_compat( 'about_industry_body', get_the_ID(), '' ); $industry_icon = blok_software_get_field_compat( 'about_industry_icon', get_the_ID(), 'briefcase' ); $industry_stats_raw = blok_software_get_field_compat( 'about_industry_stats', get_the_ID(), "20+ | Years in operational software\n100s | Operational teams we've worked with\n40+ | Software rollouts delivered\n3 | Industries we know cold" ); $industry_stats = array(); foreach ( explode( "\n", $industry_stats_raw ) as $line ) { $parts = explode( '|', $line, 2 ); if ( count( $parts ) === 2 ) { $industry_stats[] = array( 'value' => trim( $parts[0] ), 'label' => trim( $parts[1] ), ); } } // Values $values_eyebrow = blok_software_get_field_compat( 'about_values_eyebrow', get_the_ID(), __( 'What we believe', 'blok-software' ) ); $values_title = blok_software_get_field_compat( 'about_values_title', get_the_ID(), __( 'Four principles that shape every decision.', 'blok-software' ) ); $values = blok_software_get_field_compat( 'about_values', get_the_ID(), array() ); if ( empty( $values ) ) { $values = array( array( 'icon' => 'users', 'title' => __( 'Customers come first', 'blok-software' ), 'desc' => __( 'Every product decision is made with a real operational business in mind. If it does not help them, it does not ship.', 'blok-software' ) ), array( 'icon' => 'eye', 'title' => __( 'Radical transparency', 'blok-software' ), 'desc' => __( 'Honest pricing, honest timelines, honest feedback. We share what is working, what is not, and what is next.', 'blok-software' ) ), array( 'icon' => 'shield', 'title' => __( 'Earn trust every day', 'blok-software' ), 'desc' => __( 'Operational data is sacred. We treat security, privacy and reliability as the price of admission — not a feature.', 'blok-software' ) ), array( 'icon' => 'rocket', 'title' => __( 'Ship, then ship better', 'blok-software' ), 'desc' => __( 'We would rather release a 70% solution today and a 100% one next month than wait a year for perfect.', 'blok-software' ) ), ); } // Vision $vision_eyebrow = blok_software_get_field_compat( 'about_vision_eyebrow', get_the_ID(), __( 'Our vision', 'blok-software' ) ); $vision_title = blok_software_get_field_compat( 'about_vision_title', get_the_ID(), __( 'A platform that grows with you, not against you.', 'blok-software' ) ); $vision_body = blok_software_get_field_compat( 'about_vision_body', get_the_ID(), '' ); // Team $team_eyebrow = blok_software_get_field_compat( 'about_team_eyebrow', get_the_ID(), __( 'Meet the team', 'blok-software' ) ); $team_title = blok_software_get_field_compat( 'about_team_title', get_the_ID(), __( 'The people building Blok.', 'blok-software' ) ); $team_lede = blok_software_get_field_compat( 'about_team_lede', get_the_ID(), __( 'A small team with deep operational and technical experience.', 'blok-software' ) ); $team_columns = (int) blok_software_get_field_compat( 'about_team_columns', get_the_ID(), 3 ); if ( ! in_array( $team_columns, array( 2, 3, 4 ), true ) ) $team_columns = 3; // Roadmap $roadmap_eyebrow = blok_software_get_field_compat( 'about_roadmap_eyebrow', get_the_ID(), __( 'Future roadmap', 'blok-software' ) ); $roadmap_title = blok_software_get_field_compat( 'about_roadmap_title', get_the_ID(), __( 'Where we are headed.', 'blok-software' ) ); $roadmap_lede = blok_software_get_field_compat( 'about_roadmap_lede', get_the_ID(), __( "A transparent view of what we are building next.", 'blok-software' ) ); $roadmap_raw = blok_software_get_field_compat( 'about_roadmap_milestones', get_the_ID(), '' ); $roadmap_milestones = array(); if ( $roadmap_raw !== '' ) { foreach ( explode( "\n", $roadmap_raw ) as $line ) { // Format: "Period | Title | Description | status" $parts = array_map( 'trim', explode( '|', $line ) ); if ( count( $parts ) >= 2 ) { $roadmap_milestones[] = array( 'period' => $parts[0], 'title' => $parts[1], 'desc' => isset( $parts[2] ) ? $parts[2] : '', 'status' => isset( $parts[3] ) ? sanitize_key( $parts[3] ) : 'planned', 'icon' => 'cube', ); } } } // Final CTA $cta_eyebrow = blok_software_get_field_compat( 'about_cta_eyebrow', get_the_ID(), __( 'Want to work with us?', 'blok-software' ) ); $cta_title = blok_software_get_field_compat( 'about_cta_title', get_the_ID(), __( 'See Blok in action, or join the team.', 'blok-software' ) ); $cta_lede = blok_software_get_field_compat( 'about_cta_lede', get_the_ID(), __( 'We are always talking to operational businesses that want to shape the platform — and to builders who want to ship software that matters.', 'blok-software' ) ); $cta_primary_text = blok_software_get_field_compat( 'about_cta_primary_text', get_the_ID(), __( 'Book a Demo', 'blok-software' ) ); $cta_primary_url = blok_software_get_field_compat( 'about_cta_primary_url', get_the_ID(), '/contact/' ); $cta_secondary_text = blok_software_get_field_compat( 'about_cta_secondary_text', get_the_ID(), __( 'Become a Pilot Partner', 'blok-software' ) ); $cta_secondary_url = blok_software_get_field_compat( 'about_cta_secondary_url', get_the_ID(), '/pilot-programme/' ); ?>

“”

Now Shipped

Connected platform

Quotations, tasks, workforce, stock, invoicing and reporting — all sharing one data layer.

Next 90 days In-progress

Pilot partner rollout

Onboarding three founding partner organisations and shipping their feedback-driven improvements.

Next 6 months Planned

AI-assisted workflows

Quotation drafting, invoice autofill and operational summaries — all with explicit opt-in and full data controls.

Long term Planned

A platform for the next decade

Deeper integrations, mobile-first operations apps, an academy and a partner programme — built on a foundation that does not have to be ripped out next year.