diff --git a/hypha/apply/determinations/models.py b/hypha/apply/determinations/models.py
index 7d21872249a74c2eecdc34ccb4d91d78068e6a82..2747c0e3c1130c63d35372293160d6c98e92ba83 100644
--- a/hypha/apply/determinations/models.py
+++ b/hypha/apply/determinations/models.py
@@ -47,7 +47,11 @@ class DeterminationFormFieldsMixin(models.Model):
     class Meta:
         abstract = True
 
-    form_fields = StreamField(DeterminationCustomFormFieldsBlock(), default=[])
+    form_fields = StreamField(
+        DeterminationCustomFormFieldsBlock(),
+        default=[],
+        use_json_field=True,
+    )
 
     @property
     def determination_field(self):
diff --git a/hypha/apply/funds/models/forms.py b/hypha/apply/funds/models/forms.py
index 45cd6566d3507142658709f8840589ec18841b41..36758f67b58c4746b6e9ed155a0e348a302d3980 100644
--- a/hypha/apply/funds/models/forms.py
+++ b/hypha/apply/funds/models/forms.py
@@ -10,7 +10,7 @@ from ..edit_handlers import FilteredFieldPanel
 
 class ApplicationForm(models.Model):
     name = models.CharField(max_length=255)
-    form_fields = StreamField(ApplicationCustomFormFieldsBlock())
+    form_fields = StreamField(ApplicationCustomFormFieldsBlock(), use_json_field=True)
 
     panels = [
         FieldPanel('name'),
diff --git a/hypha/apply/funds/models/submissions.py b/hypha/apply/funds/models/submissions.py
index 4a5165099ee624a056bb3e43c6cfebc61734959f..5d59a028b6468327651a35bf3f9c3072d1def903 100644
--- a/hypha/apply/funds/models/submissions.py
+++ b/hypha/apply/funds/models/submissions.py
@@ -430,7 +430,7 @@ class ApplicationSubmission(
         metaclass=ApplicationSubmissionMetaclass,
 ):
     form_data = models.JSONField(encoder=StreamFieldDataEncoder)
-    form_fields = StreamField(ApplicationCustomFormFieldsBlock())
+    form_fields = StreamField(ApplicationCustomFormFieldsBlock(), use_json_field=True)
     summary = models.TextField(default='', null=True, blank=True)
     page = models.ForeignKey('wagtailcore.Page', on_delete=models.PROTECT)
     round = models.ForeignKey('wagtailcore.Page', on_delete=models.PROTECT, related_name='submissions', null=True)
diff --git a/hypha/apply/projects/models/project.py b/hypha/apply/projects/models/project.py
index 10e5159f203d946c80dddf3c53f09e14ba938c6a..27eb21f46641bcbb03e61098a3b1279c51759f57 100644
--- a/hypha/apply/projects/models/project.py
+++ b/hypha/apply/projects/models/project.py
@@ -143,7 +143,7 @@ class Project(BaseStreamForm, AccessFormData, models.Model):
     status = models.TextField(choices=PROJECT_STATUS_CHOICES, default=COMMITTED)
 
     form_data = models.JSONField(encoder=StreamFieldDataEncoder, default=dict)
-    form_fields = StreamField(FormFieldsBlock(), null=True)
+    form_fields = StreamField(FormFieldsBlock(), null=True, use_json_field=True)
 
     # tracks read/write state of the Project
     is_locked = models.BooleanField(default=False)
diff --git a/hypha/apply/review/models.py b/hypha/apply/review/models.py
index 3a1c1fc202f8ecdca10dcf5834a14227b2341a39..983f3dd0eb69fb347400363c7e6d72e9c0b2291f 100644
--- a/hypha/apply/review/models.py
+++ b/hypha/apply/review/models.py
@@ -40,7 +40,7 @@ class ReviewFormFieldsMixin(models.Model):
     class Meta:
         abstract = True
 
-    form_fields = StreamField(ReviewCustomFormFieldsBlock())
+    form_fields = StreamField(ReviewCustomFormFieldsBlock(), use_json_field=True)
 
     @property
     def score_fields(self):
diff --git a/hypha/public/funds/models.py b/hypha/public/funds/models.py
index 32ed492f0918c0a14be224cd64485e84b4fa9122..6f15dc03aff4b026a3e9be1be9ce1df97af9b542 100644
--- a/hypha/public/funds/models.py
+++ b/hypha/public/funds/models.py
@@ -44,7 +44,7 @@ class BaseApplicationPage(BasePage):
         on_delete=models.SET_NULL,
         related_name='application_public',
     )
-    body = StreamField(FundBlock())
+    body = StreamField(FundBlock(), use_json_field=True)
 
     search_fields = BasePage.search_fields + [
         index.SearchField('introduction'),
@@ -150,7 +150,7 @@ class LabPage(BasePage):
     )
     lab_link = models.CharField(blank=True, max_length=255, verbose_name=_('External link'), validators=[MailToAndURLValidator()])
     link_text = models.CharField(max_length=255, help_text=_('Text to display on the button for external links'), blank=True)
-    body = StreamField(LabBlock())
+    body = StreamField(LabBlock(), use_json_field=True)
 
     search_fields = BasePage.search_fields + [
         index.SearchField('introduction'),
diff --git a/hypha/public/home/models.py b/hypha/public/home/models.py
index cb1400819bd39e1eb120fa724235cc2ccfaea57b..6d22debd8ace6747c53a77f5f9b521db4fd5ba17 100644
--- a/hypha/public/home/models.py
+++ b/hypha/public/home/models.py
@@ -78,7 +78,7 @@ class HomePage(BasePage):
     our_work_title = models.CharField(max_length=255)
     our_work = StreamField([
         ('work', OurWorkBlock()),
-    ])
+    ], use_json_field=True)
     our_work_link = models.ForeignKey('wagtailcore.Page', related_name='+', on_delete=models.PROTECT)
     our_work_link_text = models.CharField(max_length=255)
 
diff --git a/hypha/public/navigation/models.py b/hypha/public/navigation/models.py
index 71afbf943d8a70a34cfa204ff27299764a78795f..f58d95c859addcea5c10ea2b6aff505118c92827 100644
--- a/hypha/public/navigation/models.py
+++ b/hypha/public/navigation/models.py
@@ -19,7 +19,8 @@ class NavigationSettings(BaseSetting, ClusterableModel):
     primary_navigation = StreamField(
         [('link', LinkBlock()), ],
         blank=True,
-        help_text=_('Main site navigation')
+        help_text=_('Main site navigation'),
+        use_json_field=True,
     )
 
     panels = [
diff --git a/hypha/public/news/models.py b/hypha/public/news/models.py
index 6d3eca87b17acd06563a46aace5f2934fc55bc2b..95914d063bfb32fc5bd8e371b153c4e376906b12 100644
--- a/hypha/public/news/models.py
+++ b/hypha/public/news/models.py
@@ -98,7 +98,10 @@ class NewsPage(BasePage):
         help_text=_('Use this field to override the date that the news item appears to have been published.')
     )
     introduction = models.TextField(blank=True)
-    body = StreamField(NewsStoryBlock(block_counts={'awesome_table_widget': {'max_num': 1}}))
+    body = StreamField(
+        NewsStoryBlock(block_counts={'awesome_table_widget': {'max_num': 1}}),
+        use_json_field=True
+    )
 
     search_fields = BasePage.search_fields + [
         index.SearchField('introduction'),
diff --git a/hypha/public/people/models.py b/hypha/public/people/models.py
index 763543683c316a509b30038780b3c00bb42ab843..377e07a87a4789e950177d4a6da65b5a05193507 100644
--- a/hypha/public/people/models.py
+++ b/hypha/public/people/models.py
@@ -164,7 +164,7 @@ class PersonPage(FundingMixin, BasePage):
     job_title = models.CharField(max_length=255, blank=True)
     introduction = models.TextField(blank=True)
     website = models.URLField(blank=True, max_length=255)
-    biography = StreamField(StoryBlock(), blank=True)
+    biography = StreamField(StoryBlock(), blank=True, use_json_field=True)
     email = models.EmailField(blank=True)
 
     objects = PageManager.from_queryset(PersonQuerySet)()
diff --git a/hypha/public/projects/models.py b/hypha/public/projects/models.py
index b37c9400ad6b2cb8d89f8f5887ec1a60db47018a..bf05672d3f42565fc7f7f052b4f2cacf195c01af 100644
--- a/hypha/public/projects/models.py
+++ b/hypha/public/projects/models.py
@@ -112,7 +112,7 @@ class ProjectPage(FundingMixin, BasePage):
         on_delete=models.SET_NULL
     )
     status = models.CharField(choices=STATUSES, max_length=25, default=STATUSES[0][0])
-    body = StreamField(StoryBlock())
+    body = StreamField(StoryBlock(), use_json_field=True)
 
     categories = models.TextField(default='{}', blank=True)
 
diff --git a/hypha/public/standardpages/models.py b/hypha/public/standardpages/models.py
index b37ce19d13791d8bef87e996c6247e8f6f2dda03..d6ee0df12c649a77e6a2995ead4a29a511ccbccc 100644
--- a/hypha/public/standardpages/models.py
+++ b/hypha/public/standardpages/models.py
@@ -18,7 +18,7 @@ class InformationPageRelatedPage(RelatedPage):
 
 class InformationPage(BasePage):
     introduction = models.TextField(blank=True)
-    body = StreamField(StoryBlock())
+    body = StreamField(StoryBlock(), use_json_field=True)
 
     search_fields = BasePage.search_fields + [
         index.SearchField('introduction'),
diff --git a/hypha/public/utils/models.py b/hypha/public/utils/models.py
index 4b056c9c41576ca638c4f1ebd8475bf6026bbf7e..530eea8080b2f53334ad496dc6c6a35693f7592c 100644
--- a/hypha/public/utils/models.py
+++ b/hypha/public/utils/models.py
@@ -160,7 +160,8 @@ class CallToActionSnippet(models.Model):
                 ], icon='link'),
             ),
         ], max_num=1, required=True),
-        blank=True
+        blank=True,
+        use_json_field=True
     )
 
     panels = [