Contact Our Diagnostic Team

Get in touch with Link Harbor Point to discuss your application's architecture, schedule a performance audit, or request a diagnostic scoping brief.

Bangkok Headquarters

  <div style="display: flex; flex-direction: column; gap: 1.25rem; font-size: 0.95rem;">
    <div>
      <strong style="color: var(--cyan-bright); display: block; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 0.25rem;">Office Address</strong>
      <span style="color: var(--text-bright);">Office 8, 24 Example Road, Bangkok 00000</span>
    </div>

    <div>
      <strong style="color: var(--cyan-bright); display: block; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 0.25rem;">Direct Telephone</strong>
      <a href="tel:+6620002180" style="color: var(--text-bright); font-size: 1.05rem; font-weight: 600;">+66 2 000 2180</a>
    </div>

    <div>
      <strong style="color: var(--cyan-bright); display: block; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 0.25rem;">Email Inquiries</strong>
      <a href="mailto:info@linkharborpoint.click" style="color: var(--cyan-bright);">info@linkharborpoint.click</a>
    </div>

    <div>
      <strong style="color: var(--cyan-bright); display: block; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 0.25rem;">Response Commitment</strong>
      <span style="color: var(--silver-mid);">Our diagnostic engineering leads review incoming scoping requests within 1 business day (Monday &ndash; Friday, ICT / GMT+7).</span>
    </div>
  </div>
</div>

<div class="origami-fold-card">
  <h4 style="margin-bottom: 0.75rem; color: var(--purple-bright);">Diagnostic Scoping Requirements</h4>
  <p style="font-size: 0.92rem; color: var(--silver-dark); line-height: 1.6;">
    To provide an accurate audit quote and scheduling window, it is helpful to specify your target mobile platforms (iOS, Android, or both), current approximate active user base, and the primary performance symptoms (e.g. cold start latency, ANR spikes, memory leaks).
  </p>
</div>

Request Audit Consultation

Fill out the technical brief below to schedule an introductory discovery session.

<div
  x-data="{
    formData: {
      name: '',
      email: '',
      platform: 'Dual Platform (iOS & Android)',
      service_type: 'Comprehensive Mobile App Performance Audit',
      timeline: 'Within 2-4 Weeks',
      message: ''
    },
    errors: {},
    isSubmitting: false,
    submitted: false,
    submitError: null,

    validate() {
      this.errors = {};
      if (!this.formData.name.trim()) {
        this.errors.name = 'Please provide your full name.';
      }
      if (!this.formData.email.trim()) {
        this.errors.email = 'Please provide your business email address.';
      } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.formData.email)) {
        this.errors.email = 'Please enter a valid email address format.';
      }
      if (!this.formData.message.trim() || this.formData.message.trim().length < 15) {
        this.errors.message = 'Please provide a brief summary of your app and current performance challenges (at least 15 characters).';
      }
      return Object.keys(this.errors).length === 0;
    },

    async handleSubmit() {
      this.submitError = null;
      if (!this.validate()) {
        return;
      }

      this.isSubmitting = true;
      try {
        const response = await fetch('/api/mock.json', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(this.formData)
        });

        if (response.ok) {
          const result = await response.json();
          if (result.status === 'success') {
            this.submitted = true;
          } else {
            this.submitError = result.message || 'Submission was not processed.';
          }
        } else {
          this.submitError = 'Server error during submission. Please contact info@linkharborpoint.click directly.';
        }
      } catch (err) {
        console.error('Submission error:', err);
        this.submitError = 'Network connection failed. Please check your internet or email us directly at info@linkharborpoint.click.';
      } finally {
        this.isSubmitting = false;
      }
    }
  }"
>
  <!-- Success Banner -->
  <div x-show="submitted" x-cloak class="form-success-banner">
    <h4 style="margin-bottom: 0.4rem; color: #34d399;">Audit Request Received</h4>
    <p style="color: #a7f3d0; font-size: 0.95rem; margin-bottom: 0;">
      Thank you for reaching out. Our Bangkok diagnostic engineering team will review your application specifications and reply within one business day with scoping recommendations.
    </p>
  </div>

  <!-- Error Banner -->
  <div x-show="submitError" x-cloak class="form-failed-banner">
    <span x-text="submitError"></span>
  </div>

  <!-- Form Elements -->
  <form x-show="!submitted" @submit.prevent="handleSubmit()" novalidate>
    <div class="form-group">
      <label class="form-label" for="contact-name">Your Name *</label>
      <input
        type="text"
        id="contact-name"
        class="form-input"
        placeholder="e.g. Alexander Scott"
        x-model="formData.name"
        :style="errors.name ? 'border-color: #f87171;' : ''"
      >
      <template x-if="errors.name">
        <div class="form-error-msg" x-text="errors.name"></div>
      </template>
    </div>

    <div class="form-group">
      <label class="form-label" for="contact-email">Work Email *</label>
      <input
        type="email"
        id="contact-email"
        class="form-input"
        placeholder="e.g. alexander@company.com"
        x-model="formData.email"
        :style="errors.email ? 'border-color: #f87171;' : ''"
      >
      <template x-if="errors.email">
        <div class="form-error-msg" x-text="errors.email"></div>
      </template>
    </div>

    <div class="form-group">
      <label class="form-label" for="contact-platform">Mobile App Platform</label>
      <select id="contact-platform" class="form-select" x-model="formData.platform">
        <option value="Dual Platform (iOS & Android)">Dual Platform (iOS &amp; Android)</option>
        <option value="iOS Only (Swift / Obj-C)">iOS Only (Swift / Obj-C)</option>
        <option value="Android Only (Kotlin / Java)">Android Only (Kotlin / Java)</option>
        <option value="Cross-Platform (React Native / Flutter)">Cross-Platform (React Native / Flutter)</option>
      </select>
    </div>

    <div class="form-group">
      <label class="form-label" for="contact-service">Primary Diagnostic Focus</label>
      <select id="contact-service" class="form-select" x-model="formData.service_type">
        <option value="Comprehensive Mobile App Performance Audit">Comprehensive Mobile App Performance Audit (Flagship)</option>
        <option value="App Launch Latency Optimization Diagnostic">App Launch Latency Optimization Diagnostic</option>
        <option value="Crash & ANR Telemetry Triage">Crash &amp; ANR Telemetry Triage</option>
        <option value="Memory Churn & Battery Profiling Audit">Memory Churn &amp; Battery Profiling Audit</option>
        <option value="Custom Technical Advisory">Custom Technical Advisory</option>
      </select>
    </div>

    <div class="form-group">
      <label class="form-label" for="contact-timeline">Desired Audit Window</label>
      <select id="contact-timeline" class="form-select" x-model="formData.timeline">
        <option value="Immediate / Next Available Sprint">Immediate / Next Available Sprint</option>
        <option value="Within 2-4 Weeks">Within 2-4 Weeks</option>
        <option value="Upcoming Quarter / Pre-Release Health Check">Upcoming Quarter / Pre-Release Health Check</option>
      </select>
    </div>

    <div class="form-group">
      <label class="form-label" for="contact-message">App Overview &amp; Performance Challenges *</label>
      <textarea
        id="contact-message"
        rows="4"
        class="form-textarea"
        placeholder="Describe your current performance symptoms (e.g. cold launch latency, frame hitching in feeds, memory leaks, or ANRs on specific OS versions)..."
        x-model="formData.message"
        :style="errors.message ? 'border-color: #f87171;' : ''"
      ></textarea>
      <template x-if="errors.message">
        <div class="form-error-msg" x-text="errors.message"></div>
      </template>
    </div>

    <button
      type="submit"
      class="btn btn-primary"
      style="width: 100%; justify-content: center;"
      :disabled="isSubmitting"
    >
      <span x-show="!isSubmitting">Submit Diagnostic Request &rarr;</span>
      <span x-show="isSubmitting" x-cloak>Transmitting Request...</span>
    </button>
  </form>
</div>