Monitoring for PHP applications. Watching your website and the code behind it.
Know what's broken, and what to do about it.
Already watching production
- websites monitored
- 120+
- issues detected
- 10,000+
It's a great feeling to have peace of mind knowing our application is actively being monitored.
Ranetrace tells us what to look at across the sites we manage, so we can act before our clients notice something is wrong.
All checks, from both sides.
Each one watches a part of your website or its code, and says what to do when it finds something.
Your website
Any website, checked from its URL.
Uptime monitoring
Knows when your site stops answering, and why: a timeout, a 503, a refused connection.
Your site had some downtime in the last 24 hours (98.4% uptime).
- Why it matters
- Short outages add up: each one loses visitors and sales, and repeated ones cost search ranking.
- What to do
- Look at when each outage started and what failed. Repeated short drops usually mean memory limits, a slow database or an overloaded server.
Performance
Response time over the last day, and which part of the request takes longest.
- Server processing 560 ms
- DNS 20 ms
- TCP 30 ms
- TLS 45 ms
- Transfer 65 ms
Your site is a little slow to respond, 720ms on average over the last 24 hours.
Website- Why it matters
- It still works, but pages feel less snappy than visitors expect, and the lag tends to widen under load.
- What to do
- Look at which phase of the response takes longest. When it is server processing, caching, a faster query or lighter middleware usually helps most.
Lighthouse monitoring
Your Lighthouse scores, with the fixes ranked by the time each would save.
-
64Performance
-
96Accessibility
-
100Best practices
-
100SEO
Opportunities
- Properly size images 1.2 s
- Eliminate render-blocking resources 0.6 s
- Reduce unused JavaScript 0.4 s
Your Lighthouse performance score has room to improve, currently 64 out of 100.
Website- Why it matters
- Visitors wait longer than they should for the page to become usable, which costs engagement and a little search ranking.
- What to do
- Work through the latest audit's opportunities, ranked by the time each would save. Oversized images, render-blocking scripts and unused code are the usual ones.
Broken links
Every dead link, and the page it sits on.
-
404
/blog/launch-week
on /pricing
-
404
/docs/v1/install
on /docs
-
410
/pricing/old
on /
7 of 10 point to your own pages
Your pages have 10 broken links, 7 of them to your own pages.
- Why it matters
- Each one is a dead end for visitors and for search engines crawling your site. A broken link to your own page usually means the page moved or was deleted.
- What to do
- Start with the links to your own pages: point each at the page's new URL, restore the page, or remove the link.
Certificate monitoring
Warns well before expiry, and when the chain or hostname is wrong.
Renewal usually runs here
- Issuer
- Let's Encrypt
- Issued
- 28 Aug
- Expires
- 26 Nov 2026
Your TLS certificate expires in 24 days.
- Why it matters
- Most automatic renewals run about 30 days before expiry, so a certificate this close has often missed one.
- What to do
- If renewal is automated, check that it ran. If not, renew before the date.
Domain monitoring
Registration expiry and transfer lock, long before the domain lapses.
- Registrar
- Hover
- Expires
- 5 Jun 2027
- Transfer lock
- On
- Time left
- 215 days
Your domain is registered for another 215 days and transfer-locked.
WebsiteDNS monitoring
Every record on your domain, and a note when one changes.
| Type | Value | TTL |
|---|---|---|
| A | 76.76.21.21 | 300 |
| AAAA | 2606:4700::6812:1 | 300 |
| CNAME | ledgerly.app | 3600 |
| MX | 10 mail.ledgerly.app | 3600 |
| TXT | v=spf1 include:_spf.mail.ledgerly.app ~all | 3600 |
9 records, grouped by type
Your website has 9 DNS records.
WebsiteYour code
Reporting from production, through the PHP or Laravel SDK.
Error monitoring
Exceptions grouped, with how often they happen and where.
QueryException
SQLSTATE[HY000] [2002] Connection refused
TypeError
Cannot read properties of undefined (reading 'total')
ModelNotFoundException
No query results for model [App\Models\Invoice]
Mostly hitting POST /checkout. It is up 40% over the previous 24 hours, worth a look.
Log monitoring
Production logs, grouped by message so the pattern stands out.
-
968
Cache miss for key {key}
-
142
Payment webhook timed out after {seconds}s
-
94
Queue {queue} is falling behind
1,204 log entries today, four in five from one message.
Event tracking
Signups, sales and anything else you track, counted over time.
- purchase 18
- trial_started 27
42 signups this week, 12 more than last week.
Website analytics
Visitors and pages without cookies, so no consent banner.
Top sources
- Google 58%
- Direct 24%
- github.com 11%
- reddit.com 7%
1,930 visitors today, 58% of them from Google.
And it tells you
Alerts for you, status pages for your visitors.
Instant alerts
Email, Slack, Discord and more, saying what broke and what to do.
Your site has been down for 4 minutes: it answers with HTTP 503.
What to do
The server is up and the application behind it fails. Check your application's logs and its latest deploy.
Status pages
A public page that shows your visitors what is working.
Current status
All systems operational
2 November 2026
No downtime recorded
1 November 2026
Down for 4 minutes Monitoring 09:12 to 09:16 UTC
status.ledgerly.app
Let your AI agent fix it
Connect Claude, ChatGPT, Codex, Cursor or any MCP client. Your agent gets each error with its file and line, and every monitor's verdict.
-
You
Any errors I should look at?
-
Tool call: get-error-tool
Exception Class: ErrorException Message: Attempt to read property "id" on null File: app/Services/PaymentService.php:139 Occurrences since first seen: 38
-
Agent
Checkout breaks for guest orders: PaymentService reads the customer's id on line 139, and guests have no customer.
-
You
Fix it.
-
Agent
Fixed, and I added a test for guest orders. Ready to commit when you are.
An example session against Ledgerly, a demo website.
Set it up once. Then it keeps watching.
Your website is checked the moment you add it, your code reports once the SDK is in. From then on both are watched around the clock.
Your website
Paste the URL
No code, nothing to install.
- Uptime and response time
- every minute
- Certificate, domain and DNS
- every hour
- Broken links and Lighthouse
- every week
Your code
Install the SDK
Then your key and two lines of setup. Not on Laravel? The PHP SDK works the same way in any PHP app. Installation guide.
- Errors and events
- every minute
- Logs and JavaScript errors
- once switched on
Built in the EU, by one developer
Hi, I'm Rutger. I build Ranetrace in the Netherlands, with no investors behind it. It started because I was paying for two tools to watch my own apps, one for the website and one for the code, and I wanted one that tells me what to do.
That's also why it collects only what it needs. Analytics without cookies or fingerprinting, and EU services wherever there's a good one.
Wherever you're building from, you're welcome here.
-
Built in the EU. Made in the Netherlands.
-
Collects only what it needs. Visitors are counted without cookies, never followed across sites.
-
Independent. No investors, so it answers only to the people who use it.
Frequently asked questions
Can't find your answer? Get in touch.
What is Ranetrace?
Ranetrace watches your production apps from both sides: uptime, certificates, DNS, and performance from the outside; errors, logs, events, and analytics from the inside. And it tells you what needs your attention, why it matters, and what to do.
How much does it cost?
From $9 a month for one website, $29 for up to 5 and $59 for up to 25. Every plan has every check. Pay yearly and get 2 months free.
Do I need to use Laravel or PHP?
No. Uptime, performance, audits, status pages, and alerts work for any website. All it needs is a URL. The inside features (error tracking, logs, and events) come through SDKs for PHP and Laravel.
Which Laravel versions are supported by the SDK?
The Laravel SDK supports Laravel 12 and 13, and support follows Laravel's release cycle. Older Laravel versions are end-of-life per Laravel's own support policy. The PHP SDK works in any modern PHP app, and URL-based monitoring works regardless of framework.
Where is my data stored?
Ranetrace is built in the EU and uses EU services wherever there's a good one. Payments go through Stripe and traffic through Cloudflare. It keeps only what its checks and your history need.
Can Ranetrace track multiple websites?
Yes. As many as your plan allows, all from a single dashboard.
Can Ranetrace track frontend (JavaScript) errors?
Yes. Both SDKs can capture the JavaScript errors on your sites' frontends with a small snippet, so you see backend and frontend errors in one place.
Can I resolve, snooze, or ignore errors?
Yes. Mark them resolved, snooze for later, or ignore the noisy ones.
Does Ranetrace offer real-time alerts?
Yes. Email, Slack, Discord, Telegram, and Microsoft Teams.
Does it work with AI agents?
Yes. Connect Claude, ChatGPT, Codex, Cursor or any MCP client that supports OAuth, and it reads the same verdicts you see. The MCP server is part of every plan and of the free trial.
Does Ranetrace have a free trial?
Yes. 30 days, no credit card. Cancel anytime.
What happens after the trial?
Your websites stop being checked unless you choose a plan, and you get a reminder before that day. If you don't choose one, everything measured so far is kept for 30 days and deleted after that.
Start monitoring today
Websites go down and code throws errors. Ranetrace tells you when it happens to yours, why it matters and what to do next.