Blog - Rock Product Planning Roadmap: Upcoming Deprecations Through v21

Published: Jan 28, 2026

As Rock continues to mature, we periodically groom the platform to ensure it remains secure, sustainable and focused on the tools churches actively use. This includes retiring legacy blocks, integrations and features that have modern replacements or are no longer widely adopted.

The items listed below outline planned deprecations and removals across upcoming releases. In most cases, these changes reflect long standing transitions that have been communicated over time, with extended opportunities for churches to migrate to newer and better options.

We know every organization uses Rock a little differently. If any of the items below would create an unexpected or significant impact for your ministry, we want to hear from you. While we cannot guarantee changes to the roadmap, we are open to feedback and committed to helping you identify alternative solutions where needed. These plans are informed by community usage research and ongoing conversations with churches across the Rock ecosystem.

If you want to hear directly from the team about how product grooming strengthens the ecosystem, listen to this Rock Cast episode:

Version 19 (Expected Release First Half of 2026)

The following features will be removed:

  1. Removal of Event Registration Webforms Block - The legacy Event Registration Webforms block will be removed. As part of this transition, it will be automatically replaced with the new Obsidian block, implemented in v14, to ensure existing pages continue to function without disruption.
  2. SignNow Integration - We recommend moving to Rock's built-in signature signing capability introduced in v14.
  3. DotLiquid - We will be removing the code assemblies for DotLiquid. Support for DotLiquid was removed in v17. This change should only impact plugins that have yet to recompile or update.
  4. Turnstile Captcha - Rock has a new built in captcha system that is replacing the CloudFlare Turnstile solution.
  5. Dynamic Heat Map - The library used for this has been removed from Google Maps API.
  6. System Email - This was replaced in v10 by the System Communications feature, which enables system SMS messaging. It was originally scheduled for removal in v17, but has been moved to v19.

We will be deprecating the following features:

  1. Campus Service Times - This is a feature on campuses that allows you to provide a unstructured list of services times. We are encouraging organizations to move to the new Campus Schedules. Your currently configured service times will still work and be editable, but we are urging the community to move to the new solution.

Version 20 (Expected Release Second Half of 2026)

The following features will be removed:

  1. Removal of the Old Rock Internal Theme - We will remove the old internal theme that was replaced in v18.
  2. Delete v1 Profile Pages - We will delete the pages that were a part of the v1 person profile. These pages were replaced in v14. This will include deleting the related obsoleted blocks below:
    1. Person Profile
  3. Removal of the Protect My Ministry (PMM) v1.0 Interface - PMM has released two newer versions as a plugin since it's original inclusion in core. This integration will now be fully implemented as a plugin.
  4. Legacy Block Transitions - The following legacy blocks will be removed and replaced with their corresponding Obsidian blocks:
    1. Workflow Entry ⭐
    2. Contribution Statement Lava ⭐
    3. Communication Entry Wizard ⭐
    4. Group Attendance Detail
    5. Note
    6. Batch List
    7. Apple TV Page List
    8. Scheduled Transaction Edit
    9. Contribution Statement Lava ( Legacy )

Version 21 (Expected Release First Half of 2027)

  1. Remove Campus Service Times - This feature was deprecated in v19 (see above).
  2. Deprecate Lava Execute - We will be removing the undocumented Lava execute tag. We will be providing new Lava filters to print to ZPL and Base64 encode strings as this command was sometimes used for those activities.
  3. Remove FontAwesome - Rock moved to the Tabler icon set in v18. We will be dropping core support for FontAwesome, but organizations are welcome to implement it themselves.
  4. Webforms Check-in - We will be removing the legacy webforms/workflow based check-in. Organizations must use the new NextGen check-in that was introduced in v17.
  5. Wi-Fi Captive Portal - Core features that are a part of the Wi-Fi Presence features will be removed. The Wi-Fi Presence service from Ministry Dynamics is no longer using these features.
  6. Legacy Block Transitions - The following legacy blocks will be removed and replaced with their corresponding Obsidian blocks:
    1. Group Scheduler ⭐
    2. Dynamic Data ⭐
    3. Page Parameter Filter ⭐
    4. Group Placement
    5. Connection Request Detail - This will be replaced by the Connection Request List block that will auto-open to the request details.
  7. Blocks Removed With No Replacement - The following blocks will be fully removed from Rock with no replacement. This cleanup supports our ongoing transition to Obsidian and helps reduce long term maintenance of legacy functionality. Community surveys and usage research indicate these blocks are rarely used. To help you validate impact in your own environment, we have included a SQL statement below that you can run to identify whether any of these blocks are currently in use.
    1. Group Member Link
    2. Package Detail Lava
    3. Groups Context Setter
    4. Person Transaction Links
    5. Related Entity Connect
    6. Related Entity List
    7. Rock Modal Gallery
    8. ViewState Viewer
    9. Sample Linq Report
    10. RSS Feed
    11. RSS Feed Item
    12. Person Context Setter
    13. Account Detail (Security)
    14. Date Range Context Setter
    15. Defined Value List Lava
    16. Connection Request List Lava
    17. Prayer Request List Lava
    18. Link List Lava
    19. Tags (not the feature, this is a specific very rarely used block)
    20. Content Channel Item Personal List Lava
    21. Dashboard Blocks - These blocks were created in the early days of Rock. We recommend transitioning to Lava using the Chart shortcode.
      1. PieChartDashboardWidget
      2. BarChartDashboardWidget
      3. LineChartDashboardWidget
      4. LiquidDashboardWidget
      5. Dynamic Chart
    22. Campus Schedule Context Setter
    23. Package Rating
    24. Person Attribute Forms
    25. Check-in Manager Person Location
    26. Activate Workflow
    27. Stark Detail
    28. Stark List
    29. Captive Portal
    30. Giving Type Context Setter (functionality moved into the Transaction Report block)
The ⭐highlights items of importance.

Below is a SQL statement that we formulated to help you know if you're using any of the proposed blocks to be removed. It will tell you if the block is on a page in your instance and if so how many times that page has been visited in the last 30 and 90 days.

SELECT
    CASE WHEN [PageCount] = 0 THEN 'GREEN'
        WHEN [PageViewsInLast90Days] = 0 THEN 'GREEN'
        WHEN [PageViewsInLast30Days] < 50 THEN 'YELLOW'
        ELSE 'RED'
        END AS [Status]
    , [Name] AS [BlockName]
    , [Category]
    , CASE WHEN [PageCount] = 0 THEN 'You are not using this block.'
        WHEN [PageViewsInLast90Days] = 0 THEN 'This block is on a page, but there are no page views in the last 90 days.'
        WHEN [PageViewsInLast30Days] < 50 THEN 'This block is on a page, but has less than 50 page views in the last 30 days.'
        ELSE 'This block is on a page and is getting more than 50 page views in the last 30 days.'
        END AS [Message]
    , [PageCount] AS [Number of Pages With This Block Type]
    , [PageViewsInLast30Days]
    , [PageViewsInLast90Days]
FROM (

    SELECT
        bt.[Name]
        , bt.[Guid]
        , bt.[Path]
        , bt.[Category]
        , (SELECT COUNT(*) 
            FROM [Page] p 
                INNER JOIN [Block] b ON b.[PageId] = p.[Id] 
            WHERE b.[BlockTypeId] = bt.[Id] 
            ) AS [PageCount]
        , (SELECT COUNT(*) 
            FROM [Page] p 
                INNER JOIN [Block] b ON b.[PageId] = p.[Id] 
                INNER JOIN [InteractionComponent] ic ON ic.[EntityId] = p.[Id]
                INNER JOIN [Interaction] i ON i.[InteractionComponentId] = ic.[Id]
                INNER JOIN [InteractionChannel] ich ON ich.[Id] = ic.[InteractionChannelId]
                INNER JOIN [DefinedValue] mdv ON mdv.[Id] = ich.[ChannelTypeMediumValueId]
            WHERE 
                b.[BlockTypeId] = bt.[Id] 
                AND mdv.[Guid] = 'e503e77d-cf35-e09f-41a2-b213184f48e8'
                AND i.[InteractionDateTime] >= DATEADD( day, -30, GETDATE())
                ) AS [PageViewsInLast30Days]
        , (SELECT COUNT(*) 
            FROM [Page] p 
                INNER JOIN [Block] b ON b.[PageId] = p.[Id] 
                INNER JOIN [InteractionComponent] ic ON ic.[EntityId] = p.[Id]
                INNER JOIN [Interaction] i ON i.[InteractionComponentId] = ic.[Id]
                INNER JOIN [InteractionChannel] ich ON ich.[Id] = ic.[InteractionChannelId]
                INNER JOIN [DefinedValue] mdv ON mdv.[Id] = ich.[ChannelTypeMediumValueId]
            WHERE 
                b.[BlockTypeId] = bt.[Id] 
                AND mdv.[Guid] = 'e503e77d-cf35-e09f-41a2-b213184f48e8'
                AND i.[InteractionDateTime] >= DATEADD( day, -90, GETDATE())
                ) AS [PageViewsInLast90Days]
    FROM
        [BlockType] bt
        LEFT OUTER JOIN [Block] b ON b.[BlockTypeId] = bt.[Id]
    WHERE
        bt.[Guid] IN (
        'FAFBB883-D0B4-498E-91EE-CAC5652E5095',
        '9AAA967C-D0B0-4E42-89DE-2AE6AAFC17EF',
        '62F749F7-67DF-4A84-B7DD-84CA8E10E205',
        '9EC29D0F-7EE7-434B-A30F-6C36A81B0DEB',
        '62F749F7-67DF-4A84-B7DD-84CA8E10E205',
        '2BB707AC-F29A-44DF-A103-7454077509B4',
        '5F40F4FD-338A-4711-87F7-980ED1FAE615',
        '28516B18-7423-4A97-9223-B97537BD0F79',
        'CDDE32B6-CDC2-4869-AA39-35DB97D3A59F',
        '268F9F11-BC74-4E86-A72D-6AA668BF470D',
        'E98E0584-0D87-4DC6-9085-DC93F17AFB7F',
        '2760F435-3E89-4016-85D9-13C019D0C58F',
        'F7898E47-8496-4D70-9594-4D1F616928F5',
        'EA33088D-7B18-46A7-ADFA-B9DA9512B4A4',
        'B37DC24D-9DE4-4E94-B8E1-9BCB03A835F1',
        'ABC4A04E-6FA8-4817-8113-A653251A16B3',
        'C4ADDDFA-DF16-467E-9285-B1FF0FC066ED',
        'E6BAA42C-D799-4189-ABC9-4A8CA1B91D5A',
        '341AAD88-47E0-4F25-B4F2-0EBCE5A96A1D',
        '4E3A95C6-AB63-4920-9EA6-FA5F882B13AD',
        '0ADBF632-D54D-42D5-A8A1-517E95DDFDB1',
        'AC19A4F3-2E88-487E-8E88-377C1C20DBD5',
        '7BCCBFB0-26A5-4376-B1F3-DC6ADD7C3723',
        'A0405364-C722-495B-879C-C57B5BC5E213',
        '9EC29D0F-7EE7-434B-A30F-6C36A81B0DEB',
        '5A7C11C2-4E9F-4AF6-8149-CB2093CE9727',
        '5464f6b3-e0e4-4f9f-8fba-44a18db83f44',
        '00fc1dea-fe34-41e3-bc0a-2ee9138091ec',
        '83cb0c72-4f0a-44a7-98d0-260ce33788e9',
        'a7961c9c-2ef5-44df-bea5-c334b42a90e2',
        'af0b20c3-b969-4246-81cd-76cc443cfdeb',
        'bba9210e-80e1-486a-822d-f8842fe09f99',
        '13e4d4b5-0929-4ed6-9e59-05a6d511fa06',
        '351004ff-c2d6-4169-978f-5888beff982f',
        'ccfcd227-c8f9-4952-8ac5-e427d519ee47',
        '57b00d03-1cdc-4492-95cf-7bd127ce61f0'
        )
    GROUP BY 
        bt.[Name], bt.[Guid], bt.[Path], bt.[Category], bt.[Id]
) x