Construction

Hello Users, the BloomSpace Team has been working tirelessly to keep innovating and growing. Our ideas continue to stretch beyond the horizon, and we are constantly discovering new ways to improve our website. The dashboard has already been built, however it is still in beta testing, and we want to ensure our back-end services are properly connected before launch. We apologize for any inconvenience this may cause, and we will post updates as soon as possible. Thank you for your patience and support!

What We've Done Already

Last updated: 2/21/2026

Our team has created custom UI / UX designs, dashboards, and static content. We already have made all the components, wireframes, copywritting, and SEO for the user-locked pages. We have consulted real world professionals spanning across multiple top fourtine 500 companies including back and front end developers to help contrinbute to the bloom expierence.

Take a Look Into Our Progress

When will this be released?

ETA: 3/05/2026

We are so close to releasing the first version of our dashboard. With your support, we can make this a reality. We have poured all of our effort into this project, and this is only the beginning.

A Quick Look into the Software We Are Using

<script>
// Showcase of Onboarding JS
// Script for Tab Transition
let currentStep = 0;
const steps = document.querySelectorAll('.onboarding_step_item');
const nextBtn = document.querySelector('.button_onboarding_primary');

steps[currentStep].classList.add('is-active');

function goToStep(newIndex, direction) {
  if (newIndex < 0 || newIndex >= steps.length) return;

  const current = steps[currentStep];
  const next = steps[newIndex];

  current.classList.remove('is-active');
  current.classList.add('is-exiting-forward');

  setTimeout(() => {
    next.classList.add('is-active');

    //  Validate the new step's inputs as soon as it becomes active
    if (window.validateCurrentStep) {
      window.validateCurrentStep();
    }
  }, 180);

  setTimeout(() => {
    current.classList.remove('is-exiting-forward');
  }, 650);

  currentStep = newIndex;
}

nextBtn.addEventListener('click', () => {
  goToStep(currentStep + 1, 'forward');
});
</script>

<script>
// Script for Button Validation
document.addEventListener("DOMContentLoaded", function () {

  const continueBtn = document.querySelector(".button_onboarding_primary");

  window.validateCurrentStep = function () {
    const activeStep = document.querySelector(".onboarding_step_item.is-active");
    if (!activeStep) return;

    const inputs = activeStep.querySelectorAll(".onboarding_input");

    if (inputs.length === 0) {
      continueBtn.classList.remove("is-disabled");
      continueBtn.style.opacity = "1";
      continueBtn.style.pointerEvents = "auto";
      return;
    }

    let valid = true;

    inputs.forEach(input => {
      if (!input.value || input.value.trim() === "") {
        valid = false;
      }
    });

    if (valid) {
      continueBtn.classList.remove("is-disabled");
      continueBtn.style.opacity = "1";
      continueBtn.style.pointerEvents = "auto";
    } else {
      continueBtn.classList.add("is-disabled");
      continueBtn.style.opacity = "0.4";
      continueBtn.style.pointerEvents = "none";
    }
  };

  document.addEventListener("input", window.validateCurrentStep);
  document.addEventListener("change", window.validateCurrentStep);

  window.validateCurrentStep();
});
</script>

<script>
// Script for Focus Mode
const selects = document.querySelectorAll('select.form_field.form_select_onboarding');

selects.forEach(select => {
  select.addEventListener('change', () => {
    select.blur();
  });

  document.addEventListener('click', (e) => {
    if (!select.contains(e.target)) {
      select.blur();
    }
  });
});
</script>