<?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: Liza</title>
    <description>The latest articles on DEV Community by Liza (@liza_18827c15bdd387c4cd9c).</description>
    <link>https://dev.to/liza_18827c15bdd387c4cd9c</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3949224%2Fa0cb398f-4ca4-4ace-83aa-82774af61cef.jpg</url>
      <title>DEV Community: Liza</title>
      <link>https://dev.to/liza_18827c15bdd387c4cd9c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/liza_18827c15bdd387c4cd9c"/>
    <language>en</language>
    <item>
      <title>Building Aries AI: A Solo-Built AI Abacus Tutor on OpenAI + Supabase + Render + Razorpay</title>
      <dc:creator>Liza</dc:creator>
      <pubDate>Sun, 24 May 2026 17:08:19 +0000</pubDate>
      <link>https://dev.to/liza_18827c15bdd387c4cd9c/building-aries-ai-a-solo-built-ai-abacus-tutor-on-openai-supabase-render-razorpay-5bp3</link>
      <guid>https://dev.to/liza_18827c15bdd387c4cd9c/building-aries-ai-a-solo-built-ai-abacus-tutor-on-openai-supabase-render-razorpay-5bp3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Live: &lt;a href="https://aries-a.netlify.app" rel="noopener noreferrer"&gt;https://aries-a.netlify.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a short build-in-public post about &lt;strong&gt;Aries AI&lt;/strong&gt;, an AI abacus tutor I shipped solo. Stack notes, what worked, what didn't, and a link if you want to poke at it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The product, in one paragraph
&lt;/h2&gt;

&lt;p&gt;Aries AI teaches mental arithmetic through the abacus method. It has four modes: an interactive visual abacus, oral drills (TTS reads a sequence of numbers, user types the running total), structured formula lessons (three families of abacus shortcuts — Big Friends, Small Friends, and Combination formulas), and a conversational AI tutor that re-explains and generates custom practice. Free tier + paid plans.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend  -&amp;gt; Netlify (static deploy, free tier)
AI model  -&amp;gt; OpenAI API
Backend   -&amp;gt; Render
Database  -&amp;gt; Supabase (Postgres + Auth + RLS)
Payments  -&amp;gt; Razorpay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Honest take on each piece:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Netlify&lt;/strong&gt; for the frontend was the obvious call. Free tier is generous, CI from git, instant rollbacks. Deploy times under a minute. The only friction I hit was function cold starts when I briefly tried to use Netlify Functions for one endpoint — moved that to Render instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenAI&lt;/strong&gt; powers the tutor. The interesting work here was not the model — it was the prompt scaffolding to keep the tutor consistent with the in-app curriculum. The Big/Small/Combination formula explanations had to be pinned in the system prompt so the model would not drift to generic abacus explanations from its training data, which often contradict the specific mnemonics I teach with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Render&lt;/strong&gt; for the backend was a quality-of-life upgrade over trying to glue serverless functions together. One service, one deploy, sane logs. Free tier sleeps after inactivity, which is a known tax but fine for the current traffic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supabase&lt;/strong&gt; carried more weight than anything else in the stack. Postgres + auth + row-level security + a usable dashboard, all in one place, with a generous free tier. The RLS policies took a couple of hours to get right but once they were in place, I stopped worrying about auth almost entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Razorpay&lt;/strong&gt; for payments — non-negotiable if you are targeting Indian users, because UPI is how most people actually want to pay. International cards work too, so I get global users without having to plug in a second payment provider.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build oral practice earlier.&lt;/strong&gt; It is the feature users come back for, and I almost cut it from v1 to ship faster. Mistake.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin the AI tutor's curriculum harder from day one.&lt;/strong&gt; Early users got generic abacus explanations from the model that contradicted my lessons. Took two iterations of the system prompt to fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up an analytics event for "user finishes a formula lesson"&lt;/strong&gt; from day one, not week three. Without it I had no idea which formula was the drop-off point.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's working
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Netlify + Supabase + Render is a genuinely cheap stack to run a small EdTech product on. Monthly infrastructure cost is still essentially zero at current usage.&lt;/li&gt;
&lt;li&gt;A single, focused AI tutor inside a structured curriculum performs &lt;em&gt;much&lt;/em&gt; better than dropping users into an open-ended chat. The structure does most of the teaching; the AI handles the long tail of "wait, I don't get this part."&lt;/li&gt;
&lt;li&gt;Razorpay's checkout works on the first try, which is rare for payment integrations.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;a href="https://aries-a.netlify.app" rel="noopener noreferrer"&gt;&lt;strong&gt;aries-a.netlify.app&lt;/strong&gt;&lt;/a&gt; — happy to take feedback, especially from anyone who has shipped EdTech before, or anyone with strong opinions about OpenAI prompt design for tutoring.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
