<?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: CloudHike Team</title>
    <description>The latest articles on DEV Community by CloudHike Team (@cloudhike).</description>
    <link>https://dev.to/cloudhike</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%2F4209416%2F1c12394e-2652-448f-849d-5d5e1fe9be36.png</url>
      <title>DEV Community: CloudHike Team</title>
      <link>https://dev.to/cloudhike</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cloudhike"/>
    <language>en</language>
    <item>
      <title>Build a referral waitlist with your AI agent: Postgres, Auth, Redis and email over one MCP connection</title>
      <dc:creator>CloudHike Team</dc:creator>
      <pubDate>Mon, 26 Oct 2026 21:59:51 +0000</pubDate>
      <link>https://dev.to/cloudhike/build-a-referral-waitlist-with-your-ai-agent-postgres-auth-redis-and-email-over-one-mcp-1o5f</link>
      <guid>https://dev.to/cloudhike/build-a-referral-waitlist-with-your-ai-agent-postgres-auth-redis-and-email-over-one-mcp-1o5f</guid>
      <description>&lt;p&gt;&lt;em&gt;This is week 1 of &lt;strong&gt;Build with CloudHike&lt;/strong&gt;, a weekly series where we build a small, real-world app with an AI coding agent and let the agent set up the backend. Disclosure: I built &lt;a href="https://cloudhike.dev?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;CloudHike&lt;/a&gt;, so keep that in mind.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every side project starts the same way: "I'll put up a waitlist first." Then the waitlist turns into a project of its own. You need a database for the signups, a way to stop bots, a confirmation email, some way to reward people who share it, and a private page where you can see who joined. That's four services before you've written a line of your actual product.&lt;/p&gt;

&lt;p&gt;This week we'll build that waitlist with Cursor or Claude Code, and let the agent provision the whole backend through &lt;strong&gt;one MCP connection&lt;/strong&gt;. Every prompt is below, so you can run it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we're building
&lt;/h2&gt;

&lt;p&gt;A launch waitlist with referrals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A landing page&lt;/strong&gt; with an email form. Each signup gets a personal referral link like &lt;code&gt;/?ref=abc123&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A "you're #N" confirmation email&lt;/strong&gt; with that link in it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A live referral leaderboard&lt;/strong&gt;: every friend who joins with your link moves you up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting&lt;/strong&gt;, so one IP can't flood the list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A private admin page&lt;/strong&gt; behind a login, showing every signup and the top referrers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's how each piece maps to CloudHike, all in one project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Postgres 16&lt;/strong&gt; stores the signups (&lt;code&gt;DATABASE_URL&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redis 7&lt;/strong&gt; runs the leaderboard and the rate limiter (&lt;code&gt;REDIS_URL&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email&lt;/strong&gt; sends the confirmation (&lt;code&gt;EMAIL_API_URL&lt;/code&gt;, &lt;code&gt;EMAIL_API_KEY&lt;/code&gt;, &lt;code&gt;EMAIL_FROM&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth&lt;/strong&gt; protects the admin page (&lt;code&gt;AUTH_URL&lt;/code&gt;, &lt;code&gt;AUTH_PUBLISHABLE_KEY&lt;/code&gt;, &lt;code&gt;AUTH_SECRET_KEY&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normally that's a database host, a Redis provider, an email provider and an auth provider: four accounts, four sets of keys, four bills. Here it's one project, one &lt;code&gt;.env&lt;/code&gt; and one credit balance, and the agent sets it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A CloudHike account. New accounts get &lt;strong&gt;$10 in free credits&lt;/strong&gt; (eligible accounts, once per inbox, valid for 90 days), no card needed. The Free plan allows 2 projects, which is plenty for this.&lt;/li&gt;
&lt;li&gt;Cursor or Claude Code (Codex, VS Code, Windsurf and Gemini CLI work too).&lt;/li&gt;
&lt;li&gt;Node.js, for a Next.js app.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Connect CloudHike to your agent (once)
&lt;/h2&gt;

&lt;p&gt;In the CloudHike dashboard, open &lt;strong&gt;Connect MCP&lt;/strong&gt; in the sidebar, pick your editor and click &lt;strong&gt;Copy with key&lt;/strong&gt;. That creates your workspace API key and gives you a snippet with the key already filled in. The server is remote (Streamable HTTP), so there's nothing to install.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http &lt;span class="nt"&gt;--scope&lt;/span&gt; user cloudhike https://cloudhike.dev/api/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer icu_your_api_key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run &lt;code&gt;/mcp&lt;/code&gt; inside Claude Code to check that it's connected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;~/.cursor/mcp.json&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;"mcpServers"&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;"cloudhike"&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;"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://cloudhike.dev/api/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&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;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer icu_your_api_key"&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;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;Open Cursor Settings → MCP and look for the green dot. Snippets for the other editors are in the &lt;a href="https://cloudhike.dev/docs/mcp?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Treat that key like a password. It lives in your home folder, not in the repo, and you can revoke it from the same page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Scaffold the app
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-next-app@latest waitlist
&lt;span class="nb"&gt;cd &lt;/span&gt;waitlist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open the folder in Cursor, or run &lt;code&gt;claude&lt;/code&gt; in it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Let the agent provision the backend
&lt;/h2&gt;

&lt;p&gt;This is the step that usually takes an evening of dashboards. Paste this prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the cloudhike MCP tools to set up the backend for this app. It's a launch waitlist with referrals.&lt;/p&gt;

&lt;p&gt;Create a CloudHike project called "waitlist" and deploy postgres, redis, email and auth. Wait until they're ready. Put the .env into .env.local, make sure it's git-ignored, and don't show me any secret values. Then read the docs for each service with get_docs so you know how to use them. Don't write app code yet. Just tell me which services are running and which variable names are in .env.local.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Behind the scenes, the agent works through CloudHike's MCP tools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;create_project&lt;/code&gt; makes the project (or &lt;code&gt;list_projects&lt;/code&gt; finds it if it already exists).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deploy_services&lt;/code&gt; deploys Postgres, Redis, Email and Auth, with the same plan and billing checks as the dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wait_for_services&lt;/code&gt; waits until each one reports ready.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_environment&lt;/code&gt; returns the project's &lt;code&gt;.env&lt;/code&gt;, which the agent writes into &lt;code&gt;.env.local&lt;/code&gt;. It can also ask for &lt;code&gt;format: "names"&lt;/code&gt; to list just the variable names with no secrets.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_docs&lt;/code&gt; pulls the Postgres, Redis, Email and Auth pages as Markdown, so the code it writes next follows the real API instead of a guess.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One note: the Email service asks you to accept CloudHike's &lt;a href="https://cloudhike.dev/legal/email-policy?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;email acceptable use policy&lt;/a&gt;, because it's for transactional mail only. If the agent says Email couldn't be deployed, open the project in the dashboard, tick the box on the Email card, click &lt;strong&gt;Deploy&lt;/strong&gt;, and ask the agent to fetch the &lt;code&gt;.env&lt;/code&gt; again.&lt;/p&gt;

&lt;p&gt;In editors that show MCP prompts as slash commands, CloudHike also offers a built-in &lt;code&gt;setup_backend&lt;/code&gt; prompt that does this step in one go.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: The signups table
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Read &lt;a href="https://cloudhike.dev/docs/md/postgres" rel="noopener noreferrer"&gt;https://cloudhike.dev/docs/md/postgres&lt;/a&gt;. Using node-postgres, create a signups table with a migration script in this repo: id, email (unique), referral_code (unique, short and random), referred_by (nullable referral code), ip, and created_at. Create the pool once in lib/db.ts, keep it on globalThis so hot reloads reuse it, and use max 5 connections. Run the migration, then use the cloudhike describe_table tool to show me the table.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why a migration in the repo and not SQL straight through MCP? On the Free plan, CloudHike's database tools are &lt;strong&gt;read-only&lt;/strong&gt;: &lt;code&gt;query_database&lt;/code&gt; always runs one statement in a &lt;code&gt;READ ONLY&lt;/code&gt; transaction. Writing SQL over MCP (&lt;code&gt;execute_sql&lt;/code&gt;) is a Pro-only tool, runs in a single transaction, and is marked destructive, so your editor asks before running it. The docs recommend migrations in your code for schema changes anyway, so they're reviewed and repeatable. And &lt;strong&gt;no MCP tool can delete a project or service&lt;/strong&gt;. Your agent gets enough access to build, and no way to wipe your backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: The signup endpoint, rate limit and leaderboard
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Read &lt;a href="https://cloudhike.dev/docs/md/redis" rel="noopener noreferrer"&gt;https://cloudhike.dev/docs/md/redis&lt;/a&gt;. Add a POST /api/join route that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Rate limits by IP with Redis using INCR and EXPIRE: at most 5 joins per IP per 10 minutes, answering 429 when over.&lt;/li&gt;
&lt;li&gt;Validates the email and inserts it into signups with a new referral_code. If the email already exists, return the existing referral code instead of an error.&lt;/li&gt;
&lt;li&gt;If a valid ?ref code came with the request, saves it as referred_by and runs ZINCRBY on a Redis sorted set called "leaderboard" for that code.&lt;/li&gt;
&lt;li&gt;Returns the user's position in the list and their referral link.
Use one shared ioredis connection from lib/redis.ts, server code only.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;The rate limiter is the same &lt;code&gt;INCR&lt;/code&gt; and &lt;code&gt;EXPIRE&lt;/code&gt; pattern the &lt;a href="https://cloudhike.dev/docs/redis?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;Redis docs&lt;/a&gt; show, and a sorted set is a natural fit for a leaderboard. One thing worth knowing: CloudHike's Redis runs with &lt;code&gt;noeviction&lt;/code&gt; (32 MB on Free), so a full Redis refuses writes instead of silently dropping keys. That's why the rate-limit keys get an expiry and the leaderboard stays small.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: The confirmation email
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Read &lt;a href="https://cloudhike.dev/docs/md/email" rel="noopener noreferrer"&gt;https://cloudhike.dev/docs/md/email&lt;/a&gt;. After a new signup in /api/join, send a confirmation email from server code: POST to EMAIL_API_URL/send with the x-api-key header set to EMAIL_API_KEY, from EMAIL_FROM, with fromName "Waitlist" and replyTo set to my support address from a SUPPORT_EMAIL env variable. Subject "You're on the list (#N)". Include their referral link in both html and text. If the API answers 429, still save the signup and log the error. Don't send anything for duplicate signups.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There's no SMTP to configure and no separate email account. Mail goes out from a CloudHike address straight away, and you can switch to your own domain later by verifying it under &lt;strong&gt;Email → Domains&lt;/strong&gt; in the project. Once it's verified, fetching the &lt;code&gt;.env&lt;/code&gt; again picks the domain up. The Logs tab shows who each message went to and whether it was delivered. Message bodies aren't stored.&lt;/p&gt;

&lt;p&gt;Keep it transactional: a "you're on the list" confirmation is fine, while a launch-day blast to the whole list would be marketing mail, which the Email service doesn't allow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: The admin page
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Read &lt;a href="https://cloudhike.dev/docs/md/auth" rel="noopener noreferrer"&gt;https://cloudhike.dev/docs/md/auth&lt;/a&gt;. Add an admin area with my CloudHike Auth service: a /login page (email and password sign-in), a server route that stores the returned token in an HTTP-only cookie, and a protected /admin page. On /admin, call get-session from server code and allow access only when the user's email matches an ADMIN_EMAIL env variable. Show the total number of signups, the newest 50, and the top 10 referrers from the Redis leaderboard. Add a sign-out button. Never send AUTH_SECRET_KEY to the browser.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sign up once with your admin email (a tiny &lt;code&gt;/signup&lt;/code&gt; page or the &lt;code&gt;sign-up/email&lt;/code&gt; endpoint from the &lt;a href="https://cloudhike.dev/docs/auth?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;Auth docs&lt;/a&gt; works). Because the project already has Postgres, Auth uses its &lt;code&gt;auth&lt;/code&gt; schema by default, so your users sit next to your signups and there's still nothing new to host. If you'd rather sign in with GitHub or Google, the Auth card has a shared OAuth app you can switch on.&lt;/p&gt;

&lt;p&gt;To check the data without leaving the editor, ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the cloudhike query_database tool to show the 10 most recent signups and how many came from a referral.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That runs read-only, so it's safe to let the agent explore. You can also open the &lt;strong&gt;database explorer&lt;/strong&gt; in the dashboard to browse the rows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Deploy to Vercel
&lt;/h2&gt;

&lt;p&gt;CloudHike doesn't host apps yet (app hosting is coming soon), so we deploy the Next.js app to Vercel and keep the backend on CloudHike:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Push the repo to GitHub. Check that &lt;code&gt;.env.local&lt;/code&gt; is &lt;strong&gt;not&lt;/strong&gt; in the commit.&lt;/li&gt;
&lt;li&gt;Import the repo in Vercel.&lt;/li&gt;
&lt;li&gt;Add the variables from &lt;code&gt;.env.local&lt;/code&gt; under the project's Environment Variables, plus &lt;code&gt;ADMIN_EMAIL&lt;/code&gt; and &lt;code&gt;SUPPORT_EMAIL&lt;/code&gt;. In the CloudHike dashboard, &lt;strong&gt;Environment → Copy as .env&lt;/strong&gt; gives you the whole file, so you don't have to retype it.&lt;/li&gt;
&lt;li&gt;Deploy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A few production notes from the docs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep the database pool small.&lt;/strong&gt; &lt;code&gt;DATABASE_URL&lt;/code&gt; already goes through a connection pooler (PgBouncer), but each serverless instance opens its own pool, so &lt;code&gt;max: 5&lt;/code&gt; matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free databases sleep.&lt;/strong&gt; A Free database with no connections for 6 hours is stopped until you click &lt;strong&gt;Wake&lt;/strong&gt; on the card. Pro databases are always on and run in their own container.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email limits.&lt;/strong&gt; Free sends 100 emails a day and 3,000 a month. On Pro there's no daily limit, 3,000 a month are included per project, and more cost $0.40 per 1,000. If your launch goes viral, that's the limit you'll hit first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth return sites.&lt;/strong&gt; If you turn on "Require a verified email" or social sign-in, add your Vercel domain under &lt;strong&gt;Sites users can return to&lt;/strong&gt; on the Auth card.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What CloudHike handled
&lt;/h2&gt;

&lt;p&gt;Look back at what you didn't do: you didn't sign up for a Redis provider, configure SMTP, set up an auth service or copy connection strings between tabs. One MCP connection let the agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create the project and deploy &lt;strong&gt;four services&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;write the &lt;code&gt;.env&lt;/code&gt; without showing secrets in chat,&lt;/li&gt;
&lt;li&gt;read the real docs for each service before writing code,&lt;/li&gt;
&lt;li&gt;inspect the schema and data with read-only tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything shows up in one dashboard and comes out of one credit balance. If you outgrow Free, &lt;strong&gt;Pro is $10/month with $10 of usage credits included every month and unlimited projects&lt;/strong&gt;. The details are on the &lt;a href="https://cloudhike.dev/docs/plans-and-billing?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;plans and billing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;The whole build is the five prompts above, plus the optional query. Run them, tweak them, and see how far your agent gets.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://cloudhike.dev/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=build_series_w1" rel="noopener noreferrer"&gt;Start free at cloudhike.dev&lt;/a&gt;&lt;/strong&gt;. You get $10 in credits, no card required.&lt;/p&gt;

&lt;p&gt;Next week: we put &lt;strong&gt;background jobs&lt;/strong&gt; to work and build an AI app that runs slow work outside the request with retries and webhooks. Follow along so you don't miss it.&lt;/p&gt;

&lt;p&gt;If you try this one, tell me in the comments what your agent built, or where it got stuck. I read every comment.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CloudHike vs Supabase: the backend built for AI coding agents</title>
      <dc:creator>CloudHike Team</dc:creator>
      <pubDate>Mon, 26 Oct 2026 20:17:51 +0000</pubDate>
      <link>https://dev.to/cloudhike/cloudhike-vs-supabase-the-backend-built-for-ai-coding-agents-3pjp</link>
      <guid>https://dev.to/cloudhike/cloudhike-vs-supabase-the-backend-built-for-ai-coding-agents-3pjp</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I built &lt;a href="https://cloudhike.dev" rel="noopener noreferrer"&gt;CloudHike&lt;/a&gt;, so read this with that in mind. Supabase details come from Supabase's own docs and pricing pages and were checked on October 26, 2026.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your coding agent can write a whole app in an afternoon. Then it hits the backend and hands the work back to you: create a database, set up a bucket, find a Redis instance, pick an email provider, wire up a job runner, and paste a dozen secrets into &lt;code&gt;.env.local&lt;/code&gt; without committing them.&lt;/p&gt;

&lt;p&gt;Supabase and CloudHike both have MCP servers now, so in both cases the agent can help. But they were built for different jobs. Supabase is a mature Postgres platform that added MCP. &lt;strong&gt;CloudHike was designed from day one for the agent to set up the whole backend itself, in one prompt, with guardrails that keep it safe.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick CloudHike&lt;/strong&gt; if you build with Cursor, Claude Code or Codex and want your agent to set up Postgres, S3-compatible storage, Redis, auth, transactional email and background jobs in one go, write your &lt;code&gt;.env&lt;/code&gt; for you, and keep it all on one dashboard and one bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick Supabase&lt;/strong&gt; if you need realtime, edge functions, social login, self-hosting or a long track record at scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why CloudHike wins for agent-built apps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. One copy-paste and your agent is connected.&lt;/strong&gt; Open &lt;strong&gt;Connect MCP&lt;/strong&gt; in the dashboard, click &lt;strong&gt;Copy with key&lt;/strong&gt;, paste the snippet into your editor. The server is remote (Streamable HTTP), so there's nothing to install.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The whole backend in one project.&lt;/strong&gt; Every CloudHike project can deploy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Postgres 16&lt;/strong&gt; → &lt;code&gt;DATABASE_URL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3-compatible storage&lt;/strong&gt; (a private bucket with a key scoped to it)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redis 7&lt;/strong&gt; → &lt;code&gt;REDIS_URL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth&lt;/strong&gt; (email and password, users stored in your project's Postgres)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transactional email&lt;/strong&gt; with custom domains and delivery logs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background jobs&lt;/strong&gt; with retries and webhooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Supabase, Redis isn't built in (&lt;a href="https://supabase.com/docs/guides/functions" rel="noopener noreferrer"&gt;its own examples use Upstash&lt;/a&gt;), and production email means &lt;a href="https://supabase.com/docs/guides/auth/auth-smtp" rel="noopener noreferrer"&gt;bringing your own SMTP provider&lt;/a&gt;. That's more accounts, more keys and more bills for your agent (or you) to wire together. On CloudHike it's one project, one dashboard, one credit balance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The agent writes your &lt;code&gt;.env&lt;/code&gt;.&lt;/strong&gt; The &lt;code&gt;get_environment&lt;/code&gt; tool returns the project's env values so the agent can write them straight into your git-ignored env file, without repeating them in chat. No more copying connection strings across five browser tabs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Guardrails that make agent access safe.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;query_database&lt;/code&gt; &lt;strong&gt;always&lt;/strong&gt; runs in a read-only transaction (one statement, 500 rows, 10 s timeout), on every plan.&lt;/li&gt;
&lt;li&gt;Writing SQL (&lt;code&gt;execute_sql&lt;/code&gt;) is Pro-only, runs in a single transaction, and is marked destructive, so your editor asks you first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No MCP tool can delete anything.&lt;/strong&gt; Deleting projects and services only happens in the dashboard.&lt;/li&gt;
&lt;li&gt;Every &lt;code&gt;.env&lt;/code&gt; fetch and every SQL write goes to the audit log, and you can revoke the key with one click.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your agent gets enough power to build, and no way to wipe your data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Pricing you can explain in one line.&lt;/strong&gt; New accounts get &lt;strong&gt;$10 in credits&lt;/strong&gt; (eligible accounts, once per inbox, valid for 90 days), no card needed. &lt;strong&gt;Pro is $10/month with $10 of usage credits included every month and unlimited projects.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From prompt to working backend
&lt;/h2&gt;

&lt;p&gt;Here's the actual flow. Connect the server once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http &lt;span class="nt"&gt;--scope&lt;/span&gt; user cloudhike https://cloudhike.dev/api/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer icu_your_api_key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;~/.cursor/mcp.json&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;"mcpServers"&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;"cloudhike"&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;"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://cloudhike.dev/api/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&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;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer icu_your_api_key"&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;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;Snippets for Codex, VS Code, Windsurf, Gemini CLI and Claude Desktop are in the &lt;a href="https://cloudhike.dev/docs/mcp" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then open your app's folder and paste this prompt (it's straight from the docs):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the cloudhike MCP tools to set up CloudHike.dev as the backend for this app.&lt;/p&gt;

&lt;p&gt;Read the app first and deploy only the services it needs. Put the .env into the app's git-ignored env file without showing me the values, then read the matching docs with get_docs and write the code that connects each service.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What the agent does next:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads your code and works out what the app needs, say Postgres, Auth, Storage and Redis.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;list_projects&lt;/code&gt; or &lt;code&gt;create_project&lt;/code&gt; to get a project.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;deploy_services&lt;/code&gt; for exactly those services, then &lt;code&gt;wait_for_services&lt;/code&gt; until they're ready.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;get_environment&lt;/code&gt; and writes the values to &lt;code&gt;.env.local&lt;/code&gt;, making sure the file is git-ignored.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;get_docs&lt;/code&gt; for each service and writes the connection code, for example a &lt;code&gt;pg&lt;/code&gt; pool for &lt;code&gt;DATABASE_URL&lt;/code&gt; and a Redis client for &lt;code&gt;REDIS_URL&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You review the diff and run the app. One prompt, no dashboards. If your tool doesn't support MCP, there's also a &lt;a href="https://cloudhike.dev/docs/build-with-ai" rel="noopener noreferrer"&gt;one-prompt flow&lt;/a&gt; that points the agent at &lt;code&gt;https://cloudhike.dev/prompt.md&lt;/code&gt; with a token that can only download that project's &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;CloudHike&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Supabase&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agent setup over MCP&lt;/td&gt;
&lt;td&gt;✅ Remote server, one copy-paste snippet with your key filled in&lt;/td&gt;
&lt;td&gt;✅ Remote server with OAuth sign-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Postgres&lt;/td&gt;
&lt;td&gt;✅ Postgres 16 (dedicated container per project on Pro)&lt;/td&gt;
&lt;td&gt;✅ Dedicated Postgres per project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S3-compatible storage&lt;/td&gt;
&lt;td&gt;✅ Private bucket per project&lt;/td&gt;
&lt;td&gt;✅ Storage with CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redis&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;Built in (Redis 7)&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;❌ Not built in (&lt;a href="https://supabase.com/docs/guides/functions" rel="noopener noreferrer"&gt;examples use Upstash&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transactional email&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;Built in&lt;/strong&gt;, custom domains + delivery logs&lt;/td&gt;
&lt;td&gt;⚠️ Auth emails only; &lt;a href="https://supabase.com/docs/guides/auth/auth-smtp" rel="noopener noreferrer"&gt;bring your own SMTP&lt;/a&gt; for production&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Background jobs&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;Jobs service&lt;/strong&gt; with retries and webhooks&lt;/td&gt;
&lt;td&gt;✅ Queues (pgmq) + Cron (pg_cron) + Edge Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;✅ Email + password, users in your Postgres&lt;/td&gt;
&lt;td&gt;✅ Email, magic link, social OAuth, MFA, SSO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read-only SQL over MCP&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;Always&lt;/strong&gt;, on every plan&lt;/td&gt;
&lt;td&gt;Optional (&lt;code&gt;read_only=true&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deletes over MCP&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;None possible&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Some (e.g. &lt;code&gt;delete_branch&lt;/code&gt;, &lt;code&gt;pause_project&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;$10/mo&lt;/strong&gt;, $10 usage credits included, &lt;strong&gt;unlimited projects&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;From &lt;a href="https://supabase.com/pricing" rel="noopener noreferrer"&gt;$25/month&lt;/a&gt; with $10/month compute credits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Realtime&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serverless functions&lt;/td&gt;
&lt;td&gt;❌ (app hosting coming soon)&lt;/td&gt;
&lt;td&gt;✅ Edge Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open source / self-host&lt;/td&gt;
&lt;td&gt;❌ Hosted only&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pricing: one bill instead of four
&lt;/h2&gt;

&lt;p&gt;CloudHike's model is simple: everything (Postgres, storage, Redis, email, jobs) runs from one credit balance, billed by the hour. Sign up and you get &lt;strong&gt;$10 in credits&lt;/strong&gt;, no card. Free covers 2 projects with a 500 MB database, 500 MB of storage, 32 MB of Redis, 100 emails a day and 500 job runs a day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro is $10/month&lt;/strong&gt; and includes &lt;strong&gt;$10 of usage credits every month&lt;/strong&gt;, &lt;strong&gt;unlimited projects&lt;/strong&gt;, a dedicated Postgres container per project, no idle sleep and up to 30 days of backups. Usage beyond the included credits is metered at the rates on the &lt;a href="https://cloudhike.dev/docs/plans-and-billing" rel="noopener noreferrer"&gt;plans and billing page&lt;/a&gt;, and you can set a monthly spend cap. If you hit it, services pause. &lt;strong&gt;Nothing is deleted.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The bigger saving is what you don't have to add. On Supabase (&lt;a href="https://supabase.com/pricing" rel="noopener noreferrer"&gt;pricing&lt;/a&gt;), Pro starts at $25/month, and Redis and production email are separate services with their own accounts, keys and bills. On CloudHike they're already in the project your agent just created.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Supabase is stronger
&lt;/h2&gt;

&lt;p&gt;To be fair, Supabase is excellent and is the better choice if you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Realtime and Edge Functions&lt;/strong&gt;, which CloudHike doesn't offer today.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broader auth&lt;/strong&gt;: social logins, magic links, MFA, SSO.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open source and self-hosting.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maturity and ecosystem&lt;/strong&gt;: compliance options, bigger compute, branching, and a larger MCP toolset (migrations, advisors, type generation).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A quick note
&lt;/h2&gt;

&lt;p&gt;Supabase pricing and MCP tools are from their pages as of October 26, 2026, and both change often. I didn't benchmark performance or latency here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it with your agent
&lt;/h2&gt;

&lt;p&gt;If you build with Cursor, Claude Code or Codex, the fastest way to see the difference is to try it: sign up, copy the MCP snippet, and paste the prompt above into your agent. You start with &lt;strong&gt;$10 in free credits&lt;/strong&gt;, no credit card required.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://cloudhike.dev/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=vs_supabase" rel="noopener noreferrer"&gt;Get started at cloudhike.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CloudHike is new and I'm building it in public. If you try it, tell me in the comments what your agent built, or where it got stuck. I read every comment.&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>mcp</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I built CloudHike: a backend your AI coding agent can set up over MCP</title>
      <dc:creator>CloudHike Team</dc:creator>
      <pubDate>Mon, 26 Oct 2026 19:16:16 +0000</pubDate>
      <link>https://dev.to/cloudhike/i-built-cloudhike-a-backend-your-ai-coding-agent-can-set-up-over-mcp-4lco</link>
      <guid>https://dev.to/cloudhike/i-built-cloudhike-a-backend-your-ai-coding-agent-can-set-up-over-mcp-4lco</guid>
      <description>&lt;p&gt;My AI agent can write a whole Next.js app in an afternoon. Then it stops and hands the hard part back to me: make a Postgres database, set up a storage bucket, find a Redis instance, add auth, pick an email provider, and copy a dozen connection strings into &lt;code&gt;.env.local&lt;/code&gt; without committing any of them.&lt;/p&gt;

&lt;p&gt;That's five dashboards, five sets of keys and five bills, and the agent can't help with any of it. I kept losing my momentum at exactly that point, so I built &lt;strong&gt;CloudHike&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who's writing this
&lt;/h2&gt;

&lt;p&gt;I run the &lt;a href="https://www.youtube.com/@tubeguruji" rel="noopener noreferrer"&gt;TubeGuruji&lt;/a&gt; YouTube channel, where I make full-stack tutorials. A big part of every tutorial is the "now go sign up for these services" section. Lately most of my building happens with Cursor and Claude Code, and the backend setup has become the slowest part of the whole process. CloudHike is my attempt to fix that for myself, and hopefully for you. I'm building it solo.&lt;/p&gt;

&lt;h2&gt;
  
  
  What CloudHike is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cloudhike.dev" rel="noopener noreferrer"&gt;CloudHike&lt;/a&gt; is a backend-as-a-service built for people who code with AI agents. Each project can have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Postgres&lt;/strong&gt; (Postgres 16) → &lt;code&gt;DATABASE_URL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3-compatible storage&lt;/strong&gt; (a private bucket with a key scoped to that bucket) → &lt;code&gt;S3_ENDPOINT&lt;/code&gt;, &lt;code&gt;S3_BUCKET&lt;/code&gt;, …&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redis&lt;/strong&gt; (Redis 7) for caching, queues and rate limits → &lt;code&gt;REDIS_URL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth&lt;/strong&gt;: email and password sign-up and login, with the users stored in your project's Postgres&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transactional email&lt;/strong&gt; with custom domains and delivery logs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background jobs&lt;/strong&gt; with retries and webhooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It all lives in one dashboard and comes out of one credit balance. Each project is isolated, so one project can never reach another. App hosting is coming soon, but it isn't live yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The MCP flow
&lt;/h2&gt;

&lt;p&gt;The part I care about most is the remote MCP server. Once you add it to your editor, your agent can do the backend setup itself.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Server URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://cloudhike.dev/api/mcp&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transport&lt;/td&gt;
&lt;td&gt;Streamable HTTP (remote, nothing to install)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Authorization: Bearer &amp;lt;workspace API key&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You get the workspace API key from &lt;strong&gt;Connect MCP&lt;/strong&gt; in the dashboard sidebar. Click &lt;strong&gt;Copy with key&lt;/strong&gt; and the snippet comes with your key already filled in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http &lt;span class="nt"&gt;--scope&lt;/span&gt; user cloudhike https://cloudhike.dev/api/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer icu_your_api_key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run &lt;code&gt;/mcp&lt;/code&gt; inside Claude Code to check that it's connected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;~/.cursor/mcp.json&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;"mcpServers"&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;"cloudhike"&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;"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://cloudhike.dev/api/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&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;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer icu_your_api_key"&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;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;Open Cursor Settings → MCP and look for the green dot. The &lt;a href="https://cloudhike.dev/docs/mcp" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt; also have snippets for Codex, VS Code, Windsurf, Gemini CLI and Claude Desktop.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the agent can actually do
&lt;/h3&gt;

&lt;p&gt;These are the tools the server exposes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;list_projects&lt;/code&gt;, &lt;code&gt;create_project&lt;/code&gt;, &lt;code&gt;get_project&lt;/code&gt;: find or create a project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deploy_services&lt;/code&gt;: deploy &lt;code&gt;postgres&lt;/code&gt;, &lt;code&gt;auth&lt;/code&gt;, &lt;code&gt;storage&lt;/code&gt;, &lt;code&gt;redis&lt;/code&gt;, &lt;code&gt;jobs&lt;/code&gt; or &lt;code&gt;email&lt;/code&gt;, with the same plan and billing checks as the dashboard&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wait_for_services&lt;/code&gt;: wait until the services are ready before writing any code against them&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_environment&lt;/code&gt;: get the project's &lt;code&gt;.env&lt;/code&gt; so the agent can write it to your git-ignored env file&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_tables&lt;/code&gt;, &lt;code&gt;describe_table&lt;/code&gt;, &lt;code&gt;query_database&lt;/code&gt;: look at your schema and run read-only SQL&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_storage_files&lt;/code&gt;: browse the bucket&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_docs&lt;/code&gt;: read any CloudHike docs page as Markdown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a few guardrails I cared about. &lt;code&gt;query_database&lt;/code&gt; always runs in a read-only transaction. Writing SQL (&lt;code&gt;execute_sql&lt;/code&gt;) is Pro-only, runs in a single transaction, and is marked destructive so your editor asks you first. &lt;strong&gt;Nothing can be deleted through MCP.&lt;/strong&gt; Deleting projects and services only happens in the dashboard. Every &lt;code&gt;.env&lt;/code&gt; fetch and every SQL write goes to the audit log, and you can revoke the key with one click.&lt;/p&gt;

&lt;h2&gt;
  
  
  An example
&lt;/h2&gt;

&lt;p&gt;With the server connected, open your app's folder and paste this prompt (it's from the docs):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the cloudhike MCP tools to set up CloudHike.dev as the backend for this app.&lt;/p&gt;

&lt;p&gt;Read the app first and deploy only the services it needs. Put the .env into the app's git-ignored env file without showing me the values, then read the matching docs with get_docs and write the code that connects each service.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here's what the agent then does:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads your code and works out what the app needs, say Postgres, Auth and Storage.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;list_projects&lt;/code&gt; or &lt;code&gt;create_project&lt;/code&gt; to get a project.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;deploy_services&lt;/code&gt; for those three, then &lt;code&gt;wait_for_services&lt;/code&gt; until they're ready.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;get_environment&lt;/code&gt; and writes the values to &lt;code&gt;.env.local&lt;/code&gt;, making sure the file is git-ignored.&lt;/li&gt;
&lt;li&gt;Calls &lt;code&gt;get_docs&lt;/code&gt; for the matching pages and writes the connection code, for example a &lt;code&gt;pg&lt;/code&gt; pool for &lt;code&gt;DATABASE_URL&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You review the diff and run the app. You still own the code, so read what it changed. The point is that you no longer need five browser tabs.&lt;/p&gt;

&lt;p&gt;If your tool doesn't support MCP, there's also a &lt;a href="https://cloudhike.dev/docs/build-with-ai" rel="noopener noreferrer"&gt;one-prompt flow&lt;/a&gt;. You paste a prompt that points the agent at &lt;code&gt;https://cloudhike.dev/prompt.md&lt;/code&gt;, together with a token that can only download that project's &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;I wanted this to be simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt;: every new account gets &lt;strong&gt;$10 in credits&lt;/strong&gt; at signup, no credit card required. The credits last 90 days, and Free includes 2 projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro&lt;/strong&gt;: &lt;strong&gt;$10/month&lt;/strong&gt;, which includes &lt;strong&gt;$10 in usage credits&lt;/strong&gt; every month and &lt;strong&gt;unlimited projects&lt;/strong&gt;, plus a dedicated Postgres container per project, live-resizable Redis and no database sleep.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Services are billed by the hour from credits. You can set a monthly spend cap in Settings, and if you run out of credits, nothing gets deleted. The full meter rates are on the &lt;a href="https://cloudhike.dev/docs/plans-and-billing" rel="noopener noreferrer"&gt;Plans and billing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next, and what I need from you
&lt;/h2&gt;

&lt;p&gt;App hosting (deploy from GitHub, Docker or a template, with an HTTPS address) is the next big piece. CloudHike is new and I'm building it in public, so I'd really like your feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the MCP flow work in your editor? Where does it break?&lt;/li&gt;
&lt;li&gt;Which tool is missing that your agent keeps asking for?&lt;/li&gt;
&lt;li&gt;Is the pricing clear?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it at &lt;strong&gt;&lt;a href="https://cloudhike.dev" rel="noopener noreferrer"&gt;cloudhike.dev&lt;/a&gt;&lt;/strong&gt; and tell me in the comments what you built, or what got in your way. I read every comment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>postgres</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
