<?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: gmazzeigraf</title>
    <description>The latest articles on DEV Community by gmazzeigraf (@gmazzeigraf).</description>
    <link>https://dev.to/gmazzeigraf</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%2Fuser%2Fprofile_image%2F4108900%2Fe4a40403-827c-4e7a-a0a1-61bcba2f0e36.jpg</url>
      <title>DEV Community: gmazzeigraf</title>
      <link>https://dev.to/gmazzeigraf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gmazzeigraf"/>
    <language>en</language>
    <item>
      <title>MockMe: Instant Mock APIs When the Backend Is Not Ready Yet</title>
      <dc:creator>gmazzeigraf</dc:creator>
      <pubDate>Sat, 05 Sep 2026 02:09:23 +0000</pubDate>
      <link>https://dev.to/gmazzeigraf/mockme-instant-mock-apis-when-the-backend-is-not-ready-yet-439d</link>
      <guid>https://dev.to/gmazzeigraf/mockme-instant-mock-apis-when-the-backend-is-not-ready-yet-439d</guid>
      <description>&lt;p&gt;The frontend is ready. The mobile app is waiting. The contract is agreed. And the real API is still "next sprint."&lt;/p&gt;

&lt;p&gt;You have seen this movie. You either hard-code fixtures, spin up a local JSON server, or wait. None of those options is great when you just need a URL that returns the right status code, the right body, and CORS headers that do not fight you.&lt;/p&gt;

&lt;p&gt;That is why I built &lt;strong&gt;&lt;a href="https://mockme.fyi" rel="noopener noreferrer"&gt;MockMe&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;MockMe is a hosted mock API service. You describe an HTTP method, a path, a status code, and a JSON body. Seconds later you have a live URL you can call from the browser, Postman, curl, or your test suite.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Playground first.&lt;/strong&gt; No account required. Create a temporary endpoint and start calling it immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistent when you need it.&lt;/strong&gt; Sign up and keep endpoints that do not expire after a coffee break.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable URLs.&lt;/strong&gt; &lt;code&gt;https://mockme.fyi/m/your-team/users&lt;/code&gt; instead of a UUID soup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conditional responses.&lt;/strong&gt; Return 400 when a field is missing, 403 for a bad header, or a different payload for &lt;code&gt;?role=admin&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI import.&lt;/strong&gt; Drop a spec and generate a pile of endpoints instead of clicking through them one by one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A real management API.&lt;/strong&gt; Create, update, and inspect mocks from a script or CI pipeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CORS is on by default. GET, POST, PUT, PATCH, and DELETE all work. Custom headers and response delays are first-class.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it in sixty seconds
&lt;/h2&gt;

&lt;p&gt;Open the &lt;a href="https://mockme.fyi/playground" rel="noopener noreferrer"&gt;playground&lt;/a&gt;. No registration.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick a method, for example &lt;code&gt;GET&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set a path, for example &lt;code&gt;/users&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Paste a response body:
&lt;/li&gt;
&lt;/ol&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&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;"Ada"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"admin"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&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;"Grace"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"engineer"&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;ol&gt;
&lt;li&gt;Create the endpoint and copy the URL.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then call it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://mockme.fyi/api/mock/temp/&lt;span class="o"&gt;{&lt;/span&gt;session-id&lt;span class="o"&gt;}&lt;/span&gt;/users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Playground endpoints last 30 minutes of inactivity. That is enough to unblock a UI spike, a demo, or a failing integration test. When you need the URL to survive the weekend, create a free account and promote the mock to a persistent endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Persistent mocks with readable URLs
&lt;/h2&gt;

&lt;p&gt;Registered endpoints live under your account slug:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mockme.fyi/m/{account-slug}/users
https://mockme.fyi/api/mock/user/{user-id}/users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both forms serve the same mock. The slug form is the one you want in a README or a frontend &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A free account includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 persistent endpoints&lt;/li&gt;
&lt;li&gt;All HTTP methods&lt;/li&gt;
&lt;li&gt;CORS&lt;/li&gt;
&lt;li&gt;Custom response headers and delays&lt;/li&gt;
&lt;li&gt;Request history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pro adds 50 endpoints, OpenAPI import, higher limits, and longer history. Enterprise is there when a team needs unlimited endpoints, collaboration, and an SLA.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conditional rules: one path, many realities
&lt;/h2&gt;

&lt;p&gt;A static 200 with a happy-path JSON is useful. Real clients also need the unhappy path.&lt;/p&gt;

&lt;p&gt;MockMe lets you attach &lt;strong&gt;dynamic rules&lt;/strong&gt; to an endpoint. Each rule looks at the query string, the body, or a header, extracts a value with XPath, and decides whether to fire. The first matching rule (by priority) wins.&lt;/p&gt;

&lt;p&gt;Examples that show up in every frontend I have shipped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing &lt;code&gt;email&lt;/code&gt; in the body → &lt;code&gt;400&lt;/code&gt; with a validation error&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;X-Role: guest&lt;/code&gt; → &lt;code&gt;403&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;?status=archived&lt;/code&gt; → an empty list&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;amount&lt;/code&gt; greater than &lt;code&gt;100&lt;/code&gt; → a slower response, so you can test loading states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can change the status code, body, headers, and delay per rule. The default response is the fallback when nothing matches.&lt;/p&gt;

&lt;p&gt;That means one mock URL can drive success, validation, auth, and empty-state screens without a forest of &lt;code&gt;/users-ok&lt;/code&gt; and &lt;code&gt;/users-error&lt;/code&gt; paths.&lt;/p&gt;

&lt;h2&gt;
  
  
  Import an OpenAPI spec, skip the busywork
&lt;/h2&gt;

&lt;p&gt;If you already have an OpenAPI document, do not retype every path.&lt;/p&gt;

&lt;p&gt;On Pro and Enterprise you can upload JSON or YAML. MockMe parses the operations, suggests response bodies, and can create the endpoints in bulk — including a first pass at dynamic rules from the spec. You pick what to keep, then hit create.&lt;/p&gt;

&lt;p&gt;This is the fastest path from "here is the contract" to "the app can call something that looks like production."&lt;/p&gt;

&lt;h2&gt;
  
  
  Drive it from CI
&lt;/h2&gt;

&lt;p&gt;The dashboard is convenient. The &lt;a href="https://mockme.fyi/docs" rel="noopener noreferrer"&gt;management API&lt;/a&gt; is what you want in a pipeline.&lt;/p&gt;

&lt;p&gt;Mint an API key in the dashboard, then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://mockme.fyi/api/v1/endpoints &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer mk_live_your_key_here"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "name": "List users",
    "method": "GET",
    "path": "/users",
    "status_code": 200,
    "response_body": [{ "id": 1, "name": "Ada" }]
  }'&lt;/span&gt;

curl https://mockme.fyi/m/your-account/users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same API lists endpoints, attaches rules, reads request logs, and reports plan usage. Errors return a stable &lt;code&gt;code&lt;/code&gt; you can branch on, plus a &lt;code&gt;docs_url&lt;/code&gt;:&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;"error"&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;"code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"endpoint_limit_reached"&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;"The free plan allows 3 persistent endpoints. Upgrade to create more."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"docs_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mockme.fyi/docs#endpoint_limit_reached"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"details"&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;"plan"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"free"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"current"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"max"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&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;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;The machine-readable spec lives at &lt;a href="https://mockme.fyi/api/v1/openapi.json" rel="noopener noreferrer"&gt;&lt;code&gt;/api/v1/openapi.json&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is this for?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Frontend and mobile developers waiting on a backend that is not deployed yet&lt;/li&gt;
&lt;li&gt;QA folks who need predictable 404s, 500s, and slow responses&lt;/li&gt;
&lt;li&gt;Anyone writing contract tests who does not want to stand up a whole stack&lt;/li&gt;
&lt;li&gt;Teams that already have an OpenAPI file and want a mock in minutes, not a sprint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have ever pasted a fake &lt;code&gt;fetch&lt;/code&gt; wrapper "just for now" and shipped it by accident, this is for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://mockme.fyi/playground" rel="noopener noreferrer"&gt;Playground&lt;/a&gt; — no account, 30-second setup&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mockme.fyi/register" rel="noopener noreferrer"&gt;Create a free account&lt;/a&gt; — 3 persistent endpoints&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mockme.fyi/docs" rel="noopener noreferrer"&gt;Docs&lt;/a&gt; — management API and error codes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mockme.fyi/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt; — Free, Pro, and Enterprise&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I would love to hear what you mock first, and what is still missing. Drop a comment, or reach out from the &lt;a href="https://mockme.fyi/contact" rel="noopener noreferrer"&gt;contact page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy mocking.&lt;/p&gt;

</description>
      <category>api</category>
      <category>webdev</category>
      <category>testing</category>
      <category>javascript</category>
    </item>
    <item>
      <title>MockMe vs Beeceptor: which mock API should you use?</title>
      <dc:creator>gmazzeigraf</dc:creator>
      <pubDate>Fri, 04 Sep 2026 02:23:44 +0000</pubDate>
      <link>https://dev.to/gmazzeigraf/mockme-vs-beeceptor-which-mock-api-should-you-use-30bl</link>
      <guid>https://dev.to/gmazzeigraf/mockme-vs-beeceptor-which-mock-api-should-you-use-30bl</guid>
      <description>&lt;p&gt;If you need a quick HTTP mock to unblock a frontend, webhook, or API client, Beeceptor and &lt;a href="https://mockme.fyi" rel="noopener noreferrer"&gt;MockMe&lt;/a&gt; are two common options. Here's a straight comparison.&lt;/p&gt;

&lt;h2&gt;
  
  
  Price
&lt;/h2&gt;

&lt;p&gt;Beeceptor's paid plans are often in the &lt;strong&gt;$10 / $25 / $99 per endpoint / month&lt;/strong&gt; range, depending on the tier. MockMe is aimed at indie and small-team use: &lt;strong&gt;free with 3 persistent endpoints&lt;/strong&gt;, &lt;strong&gt;Pro $5/month&lt;/strong&gt;, &lt;strong&gt;Enterprise $20/month&lt;/strong&gt; (subscribe on the site).&lt;/p&gt;

&lt;p&gt;If you only need a few stable endpoints, MockMe is usually cheaper. If your team already lives in Beeceptor and needs their higher per-endpoint tiers, stick with what you know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Signup friction and expiry
&lt;/h2&gt;

&lt;p&gt;MockMe's playground needs &lt;strong&gt;no account&lt;/strong&gt;. Temporary mocks &lt;strong&gt;expire after 30 minutes&lt;/strong&gt;. After you sign up, you can &lt;strong&gt;keep a playground mock&lt;/strong&gt; as a persistent endpoint (up to 3 on Free). Shareable URLs use &lt;code&gt;/m/{slug}&lt;/code&gt;. The UI is available in &lt;strong&gt;English and Portuguese&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One-click starters: &lt;code&gt;GET /users&lt;/code&gt;, &lt;code&gt;/posts&lt;/code&gt;, &lt;code&gt;/orders&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Beeceptor is mature and widely known. The tradeoff is usually pricing model and how much ceremony you want before the first request. MockMe optimizes for "open and try."&lt;/p&gt;

&lt;h2&gt;
  
  
  When to pick which
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MockMe&lt;/strong&gt; — prototype now, low friction, 3 free persistent endpoints, low price, EN/PT UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beeceptor&lt;/strong&gt; — already standard on your team, or you need their specific plan/features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built for people shipping integrations — not interview prep.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it without signing up
&lt;/h2&gt;

&lt;p&gt;Open the playground, pick a template, copy the URL:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mockme.fyi" rel="noopener noreferrer"&gt;https://mockme.fyi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your team already uses Beeceptor, what's the one thing that would make you switch (or stay)? Drop it in the comments.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>api</category>
      <category>testing</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
