Build your WordPress website with Elementor.Discover Elementor Affiliate link
Français

Site appearance

Comparisons and selections

Hostpoint or manitu for checking an incoming webhook after a WordPress migration

Compare Hostpoint and manitu and test signed reception, recovery of missed deliveries and one-time processing before a WordPress switchover.

Source published: · Source updated: · Editorial policy

Read the French edition

The page responds, but did the webhook follow?

A small team publishes its documentation on WordPress. When a version of its software is released, a GitHub webhook notifies the site and triggers preparation of a draft release note. The team moves WordPress to another host while keeping the same domain name. The homepage responds on the new hosting account. Meanwhile, requests may still reach the old one, and a GET check says nothing about the POST that must prepare the draft.

On switchover evening, compare three traces for each release. GitHub indicates whether the HTTP delivery was accepted. The receiver indicates whether the signed delivery entered its queue. Background processing indicates whether the draft was created or updated. Record the delivery identifier, release identifier and UTC time. This lets you explain a missing or replayed event without consulting signed content in a log.

Hostpoint Standard Web Hosting and manitu Webhosting M are two shared hosting offers that can run a PHP receiver and schedule processing. The choice depends on database space, the permitted delay before the draft appears and the ability to follow the same request between both hosts. PHP and scheduler limits describe resources separate from GitHub’s response deadline.

Compare before you choose

The offers at a glance

Find the use case and budget that fit, then read the details to see the limitations and any components you may need.

On smaller screens, the table scrolls horizontally. With a keyboard, press Tab to focus the table, then use the left and right arrow keys.

Prices recorded for these offers. Check terms and renewal prices before you buy.
OfferBest forPricing and billingRenewal and support
Hostpoint Standard Web HostingRead the details A team wanting to correlate HTTP traces and separate the test database.CHF 15.90 including VAT per month

Terms of 6, 12 or 24 months offered in the help. Payment for the period under the contract.

The provider states prices include VAT. Exact amount to confirm according to the contract.

Automatic renewal for the same term at the applicable rate.
manitu Webhosting MRead the details A lightweight integration with a short queue and an editorial deadline compatible with cron.€1.00 including VAT per month for 6 months, then €5.99

Twelve months in advance, then six months in advance, according to the comparison.

Gross price with 19% German VAT. Price depends on the selected country.

One-month extension according to the table. €5.99 including VAT per month at the recorded regular rate.

Two plans for a lightweight receiver

Hostpoint lists its Standard Web Hosting at CHF 15.90 including VAT per month, with 100 GB of web storage and ten MariaDB databases. Twelve months at the same price total CHF 190.80 based on the displayed rate. Its help cites hosting terms of six, twelve or twenty-four months, with automatic renewal for the same term and cancellation no later than thirty days before expiry. Check the offered cycle, your invoice’s tax treatment and contract total. The panel documents downloading access and error logs by site and date.

manitu’s comparison lists Webhosting M at €1.00 per month for six months, then €5.99, at the German gross price with 19% VAT. It states an initial twelve-month commitment, billed in advance, followed by a one-month extension and six-monthly billing in advance. These two durations answer different questions. The stated notice period is two weeks. At the recorded German rate and excluding options, allow €41.94 for the first year. Twelve months at the regular rate provide a reference of €71.88 if the price remains stable. The site states a gross price depending on the selected country.

For a new manitu M account, the comparison table distinguishes 50 GB of web storage and 50 GB of email storage. The offer card advertises 100 GB of storage. To size WordPress files, use the table’s web quota and confirm the account’s allocation. The table also advertises five databases, each limited to 1 GB, and five cron jobs with 120 seconds per execution and up to twelve executions per hour per job. Measure existing table volume before adding the queue. If it fits in a separate database, also include that database’s backup and permission tracking in acceptance testing. Both providers document web logs. An access trace may help identify the server and response, while the delivery identifier and draft status must come from the application.

Test the POST that will actually arrive

On the private copy, identify the exact URL receiving the webhook, the expected event type and the version of signature-verification code. Exclude this route from caching and general redirects that might replace or divert the POST. A maintenance page, interactive authentication prompt or static homepage can respond correctly to visitors while making the route unusable for the sender. Serve the route under the intended certificate and domain name.

In the GitHub example, the receiver checks the signature header using the webhook secret and raw body before decoding JSON. The code compares the signature in constant time and checks that the event and action match the expected case, here a published release from an intended repository. Install the secret in server configuration and keep it out of URLs, logs and artifacts. For testing, use demo events and a demo secret in a controlled environment.

A 2xx response is meaningful only if it follows durable recording of the delivery. Save the identifier and what processing requires in a short transaction. Respond quickly after confirming the write. GitHub expects a 2xx response within ten seconds. A heavy WordPress page, an external call or writing the entire draft within the request reduces this margin. An unavailable database must surface an observable error instead of hiding the event behind a success page.

Keep deliveries while the old server still responds

Prepare a window during which the old server remains accessible, with UTC markers on both copies. Keep the webhook URL and secret when the migration allows. The domain name may remain identical while two origins succeed one another. Identify the origin that accepted each request in the application log. If you also change the URL configured at the sender, note the exact time and check which route will receive redeliveries.

Two temporary receivers are acceptable if they write to the same durable register and the effect is applied by a single authorized processor. manitu’s table states that its databases cannot be reached externally. With a manitu database, favor a single stable entry point. Hostpoint’s Web Hosting guide describes authorizing an external host for a database user. Confirm permissions on Standard, both accounts’ network restrictions and the ability to use a protected connection before choosing a shared register. If that route is unavailable, choose a stable entry point or briefly suspend reception during transition. In the latter case, make failure explicit and reconcile attempts from that window in GitHub before closing the transfer.

An old copy accepting a delivery into an abandoned database can make GitHub display success. The new host then has nothing to process. If databases must remain separate, revoke permission to accept deliveries on the old copy before authorizing the new one. An initial database backup contains no deliveries received after export. Precisely record the last transferred identifier and inspect both logs during overlap.

Separate delivery from its effect

The delivery identifier answers “have we already recorded this request?”. The draft answers a different question. Record a stable business key, such as the repository and published release identifier. On GitHub redelivery, the X-GitHub-Delivery header keeps its original value. Another delivery identifier may nevertheless refer to the same release in an integration or acceptance test. Processing must find the same draft. A uniqueness constraint protects the queue against two concurrent inserts.

Processing rereads pending rows in small batches. In the mockup, the effect and status update share a transaction. When real WordPress or an external service cannot provide this atomicity, use a repeatable write based on the business key and a processing state you can reconcile. After a crash between draft creation and delivery marking, find the draft by its key before retrying. An action already sent to an external service requires checking that service. SQLite atomicity in the mockup does not prove that of a WordPress or external operation.

Make states readable. A pending row has passed entry checks but awaits the next batch. A processed row points to a draft identifier. A retryable error carries a counter and last-attempt time. A row excluded because its event is outside scope must be distinguished from a lost delivery. Define how long to keep this evidence, how much body data to store and who can access logs. An identifier and hash may suffice after processing.

Size the queue and measure its delay

On manitu M, the limit of twelve executions per hour per job makes a periodic check every five minutes consistent with the published limits. The wait before the first pass can approach five minutes when all is well. It increases if batches accumulate or the process fails. The permitted 120 seconds per job imposes a per-batch budget. Measure how many rows are actually processed during an execution and retain a margin before available time ends.

At Hostpoint, the cron manager documents an every-five-minute example. This configuration does not establish a guaranteed processing deadline. Check execution parameters actually available on Standard. Pair panel logs with an application processing status and a measurement of the oldest pending event. Test cron output during acceptance testing to distinguish a processing failure from an absence of deliveries.

Suppose your test applies twenty updates per pass and forty-five events arrive simultaneously. If no other rows arrive and every pass works, three are needed. With one pass every five minutes, the end of the final batch can occur up to approximately fifteen minutes after arrival, plus the batch’s processing time. If the editorial team expects an update within two minutes, adapt the architecture or accepted deadline. Keep HTTP response time separate from the age of the oldest pending event.

Also measure queue size including indexes and history. On manitu M, a WordPress database already near 1 GB does not gain headroom because the plan advertises 50 GB of web storage. On both offers, webhook volumes far beyond this small-site scenario require a controlled load test, a purge policy and an estimate of drain time after a failure. The three-pass calculation illustrates throughput using fictional values.

Reconcile attempts before removing the old site

In GitHub, retrieve delivery attempts since the last checkpoint before switchover. Compare them with the shared register or, if reception had to stop, the imported log and new site’s log. For a failed attempt with an already recorded identifier, check processing before retrying. The write may have succeeded without the response being received. A second send of the same identifier must leave only one row.

A successful HTTP attempt matching no queue entry also requires action. First check whether the request reached the old copy, cache or a generic page. Correct the destination, request delivery again and verify the write. GitHub does not automatically redeliver failed webhooks. Its documentation says deliveries from the last three days can be resent. Schedule checking and recovery within this window.

If a delivery falls outside the recovery window, compare business state with the list of already published releases. Reconstruct missing drafts from an approved source and link the correction to the migration log. On the real site, confirm that drafts remain private and old processing can no longer change data. Recording totals alone can conceal a duplicate and an absence that offset each other. Check identifiers row by row over the short transfer period.

Replay the scenario offline

The acceptance-test ZIP runs two local HTTP servers and a shared SQLite register. Test requests are signed and sent to both origins. The first test receives 200 on the homepage and 404 on an incorrect POST path. A POST with an incorrect signature is rejected. A generic page also returns a real 200 while the register counter remains unchanged. The test replays this delivery and a 503 attempt after restoring the correct destination.

The old server accepts the first delivery. The test bench then assumes the sender did not observe its acknowledgment and makes it resend the same identifier to the new server. The register retains one entry and preserves the origin of the first write. Another delivery of the same business event fills a separate queue row. It must lead to the same release draft, checking the distinction between both keys.

Processing inserts a draft and then triggers a crash before the transaction ends. The database rolls back the insert. Retrying processes the four entries and produces three drafts. An additional pass changes nothing. The report gives HTTP codes and counters before and after processing. It demonstrates these behaviors in the mockup, where effect and status share SQLite. Perform separate acceptance testing of DNS, the certificate, scheduler and draft persistence in the real environment.

  • Extract the ZIP into an empty folder. Run python recette.py with Python 3.10 or later.
  • Compare HTTP codes and counters. Both a 200 without a record and a 503 are recovered by the acceptance test.
  • Check that the four deliveries produce three drafts and an additional pass creates no effect. Then replay the checks specific to your hosting and integration.

Decide based on delay and evidence

Hostpoint Standard is suitable if downloadable logs make switchover tracking easier and your team can monitor the queue with a tested cron. Its ten databases offer flexibility to separate testing or the queue from WordPress. Check the per-database limit and access conditions if a register shared between two origins is required. Compare the displayed monthly price with the chosen term and coexistence period.

manitu Webhosting M is suitable if the queue fits within documented limits and the editorial deadline tolerates the job’s cadence. Use the per-database limit, five jobs and 120 seconds per execution as reference points. If WordPress and the queue share a database, measure its headroom. The first six months at a reduced rate do not shorten the commitment to six months. Check the advance payment and gross price associated with your country.

Authorize switchover when the signed POST reaches the intended origin and every tested delivery appears in the register with a single effect. Document response time, queue age and recovery method. If any attempt remains ambiguous, keep the old site available for diagnosis and prevent it from applying events. At the window’s end, record the last reconciled identifier and when the old origin stopped processing. A future redelivery must find the previous evidence.

  • Check the POST route and durable recording with a test event.
  • Compare attempts and register entries by identifier.
  • Replay missed deliveries within the available window.
  • Validate processing time and the unique draft before removing the old origin.

Further reading

Sources and references

Use these references to check the features, requirements and limitations described. Reading documentation is not a practical test.

View 13 references

Uses, prices and what to check

2 offers in detail

Compare the features you need and the terms of each offer. The order of these entries does not indicate a ranking.

Paid offer

Hostpoint Standard Web Hosting

Hostpoint Standard. Reconcile access and error logs with the application register to track webhook receipt.Editorial restoration diagram — BlogPasCher editorial illustration.Open full-size illustration ↗

Best forA team wanting to correlate HTTP traces and separate the test database.

Swiss shared hosting with 100 GB web storage, ten MariaDB databases and per-site access and error logs.

Offer pricing

CHF 15.90 including VAT per month

Billing: Terms of 6, 12 or 24 months offered in the help. Payment for the period under the contract.

Renewal and support: Automatic renewal for the same term at the applicable rate.

The provider states prices include VAT. Exact amount to confirm according to the contract.

Checked on .

Strengths

  • Web and error logs downloadable by site and date
  • 100 GB web storage and ten MariaDB databases
  • Cron manager with an every-five-minute example

What to consider

  • Contract term separate from the displayed monthly price
  • Execution limits and processing delay to check on Standard
  • Access to a common register between both origins to confirm
Pricing terms and compatibility

Understanding the offer

Price at the time of review
CHF 15.90 including VAT per month
Currency
CHF
Billing
Terms of 6, 12 or 24 months offered in the help. Payment for the period under the contract.
Renewal and support
Automatic renewal for the same term at the applicable rate.
Taxes and fees
The provider states prices include VAT. Exact amount to confirm according to the contract.
Commitment and terms
Cancel no later than 30 days before expiry.
Date checked

Compatibility and components

  • WordPress
  • PHP
  • MariaDB
  • Hostpoint Control Panel
Read the full Hostpoint profile →View official site for Hostpoint Standard Web Hosting (opens in a new tab)Back to the table
Paid offer

manitu Webhosting M

manitu Webhosting M. Queue in a database of up to 1 GB and processing by a cron task limited to 120 seconds and twelve hourly executions.Editorial restoration diagram — BlogPasCher editorial illustration.Open full-size illustration ↗

Best forA lightweight integration with a short queue and an editorial deadline compatible with cron.

German shared hosting with five databases of at most 1 GB each and published cron limits.

Offer pricing

€1.00 including VAT per month for 6 months, then €5.99

Billing: Twelve months in advance, then six months in advance, according to the comparison.

Renewal and support: One-month extension according to the table. €5.99 including VAT per month at the recorded regular rate.

Gross price with 19% German VAT. Price depends on the selected country.

Checked on .

Strengths

  • Five scheduled jobs with a 120-second limit and twelve executions per hour per job
  • Web-log access stated
  • 50 GB web and 50 GB email storage in the detailed table

What to consider

  • Maximum 1 GB per database
  • Billing cycle and renewal period are separate
  • Processing headroom to check on the account
  • Direct external database access unavailable according to the comparison.
Pricing terms and compatibility

Understanding the offer

Price at the time of review
€1.00 including VAT per month for 6 months, then €5.99
Currency
EUR
Billing
Twelve months in advance, then six months in advance, according to the comparison.
Renewal and support
One-month extension according to the table. €5.99 including VAT per month at the recorded regular rate.
Taxes and fees
Gross price with 19% German VAT. Price depends on the selected country.
Commitment and terms
Twelve months initially. Displayed notice period of two weeks.
Date checked

Compatibility and components

  • Self-hosted WordPress
  • PHP
  • MariaDB
  • Cron jobs
Read the full manitu profile →View official site for manitu Webhosting M (opens in a new tab)Back to the table

English translation of the reviewed French edition. Code examples retain their original identifiers, comments and output strings for reproducibility. Linked exercise files and original screenshots may contain French. No new practical tests or price checks are implied by translation.

Continue reading in English