<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ceptor Labs</title>
    <description>The latest articles on DEV Community by Ceptor Labs (ceptorlabs).</description>
    <link>https://dev.to/ceptorlabs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F15143%2Ff4e2588f-59d5-406f-8db8-cba50a94dfc7.png</url>
      <title>DEV Community: Ceptor Labs</title>
      <link>https://dev.to/ceptorlabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ceptorlabs"/>
    <language>en</language>
    <item>
      <title>Introducing ReMOAT: Remote Debugging Without the Headache</title>
      <dc:creator>Arun</dc:creator>
      <pubDate>Wed, 07 Oct 2026 11:52:41 +0000</pubDate>
      <link>https://dev.to/ceptorlabs/introducing-remoat-remote-debugging-without-the-headache-49n</link>
      <guid>https://dev.to/ceptorlabs/introducing-remoat-remote-debugging-without-the-headache-49n</guid>
      <description>&lt;p&gt;Ever tried debugging a website that isn't running on your machine?&lt;/p&gt;

&lt;p&gt;Maybe it's on a client's browser.&lt;/p&gt;

&lt;p&gt;Maybe it's running on a Smart TV.&lt;/p&gt;

&lt;p&gt;Maybe the bug only happens in a specific environment that you can't easily reproduce.&lt;/p&gt;

&lt;p&gt;And then comes the usual process:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can you send me a screenshot?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can you open DevTools?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What does the console say?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can you try it again?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Five minutes later, you're still trying to figure out what actually went wrong.&lt;/p&gt;

&lt;p&gt;That's the problem ReMOAT is trying to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ReMOAT?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://remoat.dev/" rel="noopener noreferrer"&gt;ReMOAT&lt;/a&gt; is a remote debugging tool that lets developers &lt;strong&gt;debug browser-based applications remotely in real time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of asking someone to explain what they're seeing, you can connect to the browser and investigate the problem yourself.&lt;/p&gt;

&lt;p&gt;You can inspect what's happening, check console errors, look at network activity, interact with the page, and troubleshoot issues while the problem is actually happening.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debug the actual environment
&lt;/h2&gt;

&lt;p&gt;One of the frustrating parts of debugging is that:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It works on my machine."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The application might work perfectly in your local browser but fail on another device or environment.&lt;/p&gt;

&lt;p&gt;ReMOAT is designed to let you debug the &lt;strong&gt;actual browser session&lt;/strong&gt; instead of trying to recreate the problem from screenshots and descriptions.&lt;/p&gt;

&lt;p&gt;The workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User encounters a bug
        ↓
Connect to the browser
        ↓
Inspect the actual environment
        ↓
Find the problem
        ↓
Fix it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Much less guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  No more screenshot debugging
&lt;/h2&gt;

&lt;p&gt;Screenshots are useful, but they rarely tell the whole story.&lt;/p&gt;

&lt;p&gt;A screenshot can't show you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What happened in the console&lt;/li&gt;
&lt;li&gt;Which network request failed&lt;/li&gt;
&lt;li&gt;What the page state was&lt;/li&gt;
&lt;li&gt;What the browser was actually doing&lt;/li&gt;
&lt;li&gt;Whether the issue is reproducible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With remote debugging, you can investigate the problem directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for real-world debugging
&lt;/h2&gt;

&lt;p&gt;ReMOAT is useful for more than just normal websites.&lt;/p&gt;

&lt;p&gt;It can help with browser-based applications and environments where reproducing the exact issue locally can be difficult.&lt;/p&gt;

&lt;p&gt;You can use it for things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remote browser debugging&lt;/li&gt;
&lt;li&gt;Console error investigation&lt;/li&gt;
&lt;li&gt;Network debugging&lt;/li&gt;
&lt;li&gt;Local storage inspection&lt;/li&gt;
&lt;li&gt;Reproducing frontend issues&lt;/li&gt;
&lt;li&gt;Real-time collaboration&lt;/li&gt;
&lt;li&gt;Debugging applications on remote devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See the problem. Don't just hear about it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why ReMOAT?
&lt;/h2&gt;

&lt;p&gt;Tools like browser DevTools are excellent when the browser is right in front of you.&lt;/p&gt;

&lt;p&gt;The problem starts when the browser is somewhere else.&lt;/p&gt;

&lt;p&gt;That's where remote debugging becomes useful.&lt;/p&gt;

&lt;p&gt;Instead of sending instructions back and forth, ReMOAT gives developers a way to get closer to the actual environment where the bug is happening.&lt;/p&gt;

&lt;p&gt;You can check out ReMOAT here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://remoat.dev/" rel="noopener noreferrer"&gt;https://remoat.dev/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And I'd genuinely like to hear from other developers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the most painful remote debugging problem you've had to deal with?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Was it a browser issue, a Smart TV, a client's device, or simply a bug that refused to reproduce locally?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>webrtc</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Introducing ProxyCeptor: A Simpler Way to Handle APIs</title>
      <dc:creator>Arun</dc:creator>
      <pubDate>Wed, 07 Oct 2026 11:41:53 +0000</pubDate>
      <link>https://dev.to/ceptorlabs/introducing-proxyceptor-a-simpler-way-to-handle-apis-3bgj</link>
      <guid>https://dev.to/ceptorlabs/introducing-proxyceptor-a-simpler-way-to-handle-apis-3bgj</guid>
      <description>&lt;p&gt;_Have you ever wanted to test one small API change, but ended up spending more time setting up the environment than actually testing it?&lt;br&gt;
_&lt;br&gt;
Maybe you want an API to return a &lt;code&gt;500&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Maybe you want to change one field in a response.&lt;/p&gt;

&lt;p&gt;Maybe you want to redirect a request to staging.&lt;/p&gt;

&lt;p&gt;Or maybe you just want to see what happens when an API takes 3 seconds to respond.&lt;/p&gt;

&lt;p&gt;Usually, you end up changing backend code, creating temporary mocks, deploying something to staging, or setting up a proxy and dealing with certificates.&lt;/p&gt;

&lt;p&gt;That is where &lt;strong&gt;ProxyCeptor&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://proxyceptor.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Try ProxyCeptor&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is ProxyCeptor?
&lt;/h2&gt;

&lt;p&gt;ProxyCeptor is a developer tool for &lt;strong&gt;intercepting and modifying API traffic while your application is running&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of changing your backend just to test a frontend scenario, you can intercept the request and change what happens to it.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
     ↓
  API Request
     ↓
 ProxyCeptor
     ↓
Modify / Mock / Delay / Block
     ↓
    API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can modify requests, change responses, mock APIs, redirect URLs, inject headers, simulate errors, and introduce network delays.&lt;/p&gt;

&lt;p&gt;The idea is pretty simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't change your application just to test a different API scenario. Change the traffic instead.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple example
&lt;/h2&gt;

&lt;p&gt;Imagine your API normally returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You want to see how your frontend behaves when the API returns an error.&lt;/p&gt;

&lt;p&gt;Instead of modifying the backend, you can make the response behave like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Something went wrong"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also simulate HTTP errors such as &lt;code&gt;401&lt;/code&gt;, &lt;code&gt;404&lt;/code&gt;, &lt;code&gt;500&lt;/code&gt;, or &lt;code&gt;503&lt;/code&gt;, or add artificial latency to see how your UI handles slow networks.&lt;/p&gt;

&lt;p&gt;ProxyCeptor supports these kinds of request and response modifications directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you do with it?
&lt;/h2&gt;

&lt;p&gt;Some of the useful things you can do are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modify request URLs&lt;/li&gt;
&lt;li&gt;Change request payloads&lt;/li&gt;
&lt;li&gt;Inject or modify headers&lt;/li&gt;
&lt;li&gt;Mock complete API responses&lt;/li&gt;
&lt;li&gt;Modify only specific JSON fields&lt;/li&gt;
&lt;li&gt;Redirect requests&lt;/li&gt;
&lt;li&gt;Block network traffic&lt;/li&gt;
&lt;li&gt;Simulate API delays&lt;/li&gt;
&lt;li&gt;Change HTTP status codes&lt;/li&gt;
&lt;li&gt;Transform API responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One feature I particularly like is &lt;strong&gt;JSON Deep Merge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of replacing an entire response, you can change only the field you care about while keeping the rest of the real API response intact.&lt;/p&gt;

&lt;p&gt;That makes testing much less painful.&lt;/p&gt;

&lt;h2&gt;
  
  
  No backend changes
&lt;/h2&gt;

&lt;p&gt;This is probably the biggest reason to use a tool like this.&lt;/p&gt;

&lt;p&gt;Suppose you're working on a frontend feature that needs to handle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What happens when the payment API returns 503?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You shouldn't have to ask the backend team to create a special response, deploy it, test it, and then revert it.&lt;/p&gt;

&lt;p&gt;You can simulate that response locally and continue working.&lt;/p&gt;

&lt;p&gt;That means frontend developers and QA engineers can test edge cases without waiting for backend changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  And it isn't limited to browsers
&lt;/h2&gt;

&lt;p&gt;ProxyCeptor can also work with Smart TV environments such as Android TV, Fire TV, Samsung Tizen, and LG webOS.&lt;/p&gt;

&lt;p&gt;For environments where installing a root SSL certificate or configuring a traditional system proxy is painful, ProxyCeptor provides an SDK-based approach that intercepts traffic inside the application runtime.&lt;/p&gt;

&lt;p&gt;That makes it useful for testing things that are otherwise surprisingly difficult to reproduce on real devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea behind ProxyCeptor
&lt;/h2&gt;

&lt;p&gt;The goal isn't to replace your existing testing framework.&lt;/p&gt;

&lt;p&gt;Unit tests still have their place.&lt;/p&gt;

&lt;p&gt;Integration tests still have their place.&lt;/p&gt;

&lt;p&gt;Mock servers still have their place.&lt;/p&gt;

&lt;p&gt;ProxyCeptor is useful for that layer in between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I'm running the real application, making real requests, but I want to control what happens to those requests."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where API interception becomes really useful.&lt;/p&gt;

&lt;p&gt;You can inspect the traffic, change it, reproduce an edge case, and see how your actual application reacts.&lt;/p&gt;

&lt;p&gt;No temporary backend endpoint.&lt;/p&gt;

&lt;p&gt;No waiting for another deployment.&lt;/p&gt;

&lt;p&gt;Just change the traffic and test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give it a try
&lt;/h2&gt;

&lt;p&gt;If you're working with APIs, frontend applications, QA testing, or Smart TV applications, you can try ProxyCeptor here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://proxyceptor.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;https://proxyceptor.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also a live sandbox where you can experiment with API interception without setting up a project first.&lt;/p&gt;

&lt;p&gt;I'd be interested to know how other developers handle this today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you use Charles, Burp, Postman, browser DevTools, mock servers, or something else when you need to change API behavior during development?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>qa</category>
      <category>testing</category>
      <category>debugging</category>
    </item>
  </channel>
</rss>
