EZLogs: Plain-English activity logs for Rails and Next.js apps

dezsirazvan1 pts0 comments

`) with the current contents of<br>embeds/FILENAME.html and writes the result to preview.html.

DO NOT edit preview.html directly — your edits will be overwritten on the next<br>build. Edit this template (page chrome + section structure) or the embed files<br>under embeds/ (component internals).

Open in a browser AFTER running build-preview.sh:<br>open marketing/landing-page/preview.html<br>Works over file:// — no local server required.<br>-->

EZLogs — Plain-English activity logs for Rails & Next.js apps (and the AI agents in them)

-->

). -->

Plain-English activity logs for every action in your app — human or AI.

EZLogs auto-captures every request, background job, and database change in your Rails or Next.js app, then turns each customer or agent action into one plain-English card your whole team — and your own AI — can read.

Start free — 14 days<br>See a real action &darr;

Drop-in for Rails and Next.js &middot; No card required &middot; Read-only by design

14:02:11 Started POST "/orders" for 78.96.x.x<br>14:02:11 User Load (0.4ms) SELECT "users".* WHERE "id" = $1 LIMIT 1<br>14:02:11 Cart Load (0.6ms) SELECT "carts".* WHERE "id" = $1 LIMIT 1<br>14:02:11 Order Create (2.3ms) INSERT INTO "orders" ... RETURNING "id"<br>14:02:11 [ActiveJob] Enqueued ChargeCardJob (jid=7b3...) to Sidekiq<br>14:02:11 Completed 302 Found in 89ms (ActiveRecord: 9.4ms)<br>14:02:12 [Sidekiq] ChargeCardJob start jid=7b3...<br>14:02:13 [Sidekiq] ChargeCardJob done jid=7b3... 1.2s

Maria Chen placed an order for 3 books

Order #1247<br>Payment #884<br>Cart #92

Charged &euro;47.20, decremented inventory for 3 titles, queued the confirmation email, and notified the warehouse.

by Maria Chen<br>in 1.34 s<br>&middot; &check; Success

01The problem<br>One customer action, told two ways.

Same order. Same data. Toggle to see what your server says — and what your team needs.

Raw logs<br>EZLogs

[2026-05-10 14:02:11] Started POST "/orders" for 78.96.x.x at 14:02:11<br>[2026-05-10 14:02:11] Processing by OrdersController#create as HTML<br>[2026-05-10 14:02:11] Parameters: {"cart_id"=>"92", "address_id"=>"341"}<br>[2026-05-10 14:02:11] User Load (0.4ms) SELECT "users".* WHERE "id" = $1<br>[2026-05-10 14:02:11] Cart Load (0.6ms) SELECT "carts".* WHERE "id" = $1<br>[2026-05-10 14:02:11] (1.1ms) BEGIN<br>[2026-05-10 14:02:11] Order Create (2.3ms) INSERT INTO "orders" (...) RETURNING "id"<br>[2026-05-10 14:02:11] OrderItem Create (1.8ms) INSERT INTO "order_items" ...<br>[2026-05-10 14:02:11] (4.2ms) COMMIT<br>[2026-05-10 14:02:11] [ActiveJob] Enqueued ChargeCardJob (jid=7b3...) to Sidekiq(default)<br>[2026-05-10 14:02:11] Redirected to /orders/1247<br>[2026-05-10 14:02:11] Completed 302 Found in 89ms (ActiveRecord: 9.4ms)<br>[2026-05-10 14:02:12] [Sidekiq] ChargeCardJob start jid=7b3...<br>[2026-05-10 14:02:12] Payment Create (3.1ms) INSERT INTO "payments" ...<br>[2026-05-10 14:02:13] Order Update (1.4ms) UPDATE "orders" SET "status" = $1 ...<br>[2026-05-10 14:02:13] Inventory Update (0.9ms &times; 3) UPDATE "inventories" SET "stock" ...<br>[2026-05-10 14:02:13] [ActionMailer] Delivered confirmation_email to maria.chen@example.com<br>[2026-05-10 14:02:13] [Sidekiq] ChargeCardJob done jid=7b3... 1.2s

Maria placed an order for 3 books totaling &euro;47.20 . Payment cleared on the first attempt, inventory was decremented for all three titles, a confirmation email was queued, and the warehouse was notified to begin packing.

14:02:11 POST /orders — 200, 89 ms

14:02:11 Order #1247 created

14:02:11 Order Item &times;3 created

14:02:12 ChargeCardJob started

14:02:13 Payment #884 — &euro;47.20, succeeded

14:02:13 Order #1247 — pending &rarr; paid

14:02:13 Inventory &times;3 — stock &minus;1 each

14:02:13 Email queued + warehouse notified

Both views describe the exact same order. One is what your server says. The other is what your team actually needs.

02How it works<br>Three sources of truth, stitched into one story.

Every customer action lives at the intersection of these three signals. EZLogs captures all three and links them automatically.

Every request

The intent: who clicked what, from where, with which result.

Every background job

The reaction: every charge, email, restock — linked to the request that started them.

Every database change

The truth: every row your app touched, with before and after values.

Drop in one gem or one npm package. Zero per-route code.

02bTwo readers, one source<br>Humans browse it. Your AI queries it. Same source of truth.

By end of 2026, AI agents will do 30–60% of meaningful work inside production apps. Nobody has a clean way to see that work or explain it to non-technical colleagues. EZLogs is the activity log built for both readers at once.

For your team<br>A live page for everything that matters.

Every customer, every order, every agent — each one has its own page that reads itself. "Here's what Claude did this week. Here's what happened to Order #4300." Send the link to anyone. No training needed.

For your AI<br>Your AI can read the same log, and answer in your words.

Ask in the sidebar, or connect Claude...

order orders chargecardjob ezlogs sidekiq next

Related Articles