<?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>Forem: Arnav Gupta</title>
    <description>The latest articles on Forem by Arnav Gupta (@ag_wizai).</description>
    <link>https://forem.com/ag_wizai</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%2F3813149%2F929c8844-42cc-4d6a-990f-4475ebdc30fd.png</url>
      <title>Forem: Arnav Gupta</title>
      <link>https://forem.com/ag_wizai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ag_wizai"/>
    <language>en</language>
    <item>
      <title>I'm 12 and Built an AI Platform with RAG, Memory &amp; Tools in 52 Hours — Plus a Full Ecosystem (Browser, Mail, Calendar, Chat, Search)</title>
      <dc:creator>Arnav Gupta</dc:creator>
      <pubDate>Sun, 08 Mar 2026 17:05:25 +0000</pubDate>
      <link>https://forem.com/ag_wizai/im-12-and-built-an-ai-platform-in-15-hours-heres-everything-i-learned-34g9</link>
      <guid>https://forem.com/ag_wizai/im-12-and-built-an-ai-platform-in-15-hours-heres-everything-i-learned-34g9</guid>
      <description>&lt;p&gt;By Arnav Gupta&lt;br&gt;
April 2026&lt;/p&gt;

&lt;p&gt;So here's the thing — I keep seeing posts about "I built X in Y hours" and honestly? Most of them are cap.&lt;/p&gt;

&lt;p&gt;So let me be real with you.&lt;/p&gt;

&lt;p&gt;I built Wizard.AI — a full AI platform with RAG, persistent memory, web search, code execution, image generation, 7 personalities, user accounts, cloud sync, custom community personalities, developer hub, multi-agent studio, turbo mode, and more.&lt;/p&gt;

&lt;p&gt;Then I kept building.&lt;/p&gt;

&lt;p&gt;Now there's also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧙 Wizard Browser&lt;/strong&gt; — Electron-based with workspaces, tab groups, ad blocking, password manager, and cloud sync&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📧 Wizard Mail&lt;/strong&gt; — Full email client with alias support (@wizardecosystem.dpdns.org)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📅 Wizard Calendar&lt;/strong&gt; — Event management with Gmail sync&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💬 Wizard Chat&lt;/strong&gt; — Real-time messaging between Wizard users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔍 Wizard Search&lt;/strong&gt; — AI-powered search page at wizardecosystem.dpdns.org/search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;And coming soon:&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🐧 ArcWizOS&lt;/strong&gt; — A Linux distribution built from scratch, designed for users who value privacy and AI workflows (targeting late 2026)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not one marathon session. Not 24 hours straight. Just consistent building when I had time.&lt;/p&gt;

&lt;p&gt;And no, the first version wasn't some masterpiece. It was a terminal bot that took me 1 hour to throw together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wait, What Does It Actually Do?&lt;/strong&gt;&lt;br&gt;
Let me break down what Wizard.AI v13.0 looks like today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧠 7 AI Personalities&lt;/strong&gt;
Switch between JARVIS, ORACLE, Nerd, Fun, Sarcastic, Fast, and Normal modes. Each one has its own system prompt and personality. Talk to JARVIS like Tony Stark's AI, get mystical with ORACLE, or keep it quick with Fast mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎭 Custom Community Personalities&lt;/strong&gt;
Users can create and share their own AI personalities. Want a pirate-themed AI? A math tutor? A coding assistant? Make it, share it, and let others use it. Each personality tracks likes and uses.
**&lt;/li&gt;
&lt;li&gt;📚 RAG (Retrieval-Augmented Generation)**
Upload PDFs, text files, documents — anything. Wizard.AI chunks them, extracts keywords, and stores them. Ask questions about your documents and get answers with context. It's like having a personal knowledge base.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧠 Persistent Memory&lt;/strong&gt;
Here's the thing most chatbots don't do — I actually remember you. Tell me your name once, and I'll remember it forever. Tell me your age, hobbies, preferences — stored in a database and recalled across every conversation. No more repeating yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌐 Web Search&lt;/strong&gt;
Ask about current events, and I'll search the web in real-time using Tavily. The AI automatically decides when to search based on your query — no manual toggle needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💻 Code Execution&lt;/strong&gt;
Write Python code, run it in a sandbox, see the output. Test snippets, learn to code, or just mess around. It's sandboxed so you can't break anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎨 Image Generation&lt;/strong&gt;
Describe what you want, and I'll generate it using Stable Diffusion. Choose from square, landscape, or portrait sizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤖 Multi-Agent Studio&lt;/strong&gt;
Chain specialized AI agents together — Researcher, Writer, Coder, Designer, Data Analyst, Reviewer, Summarizer, Translator, Optimizer. Run pre-built workflows or build your own custom chains.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧙 Wizard Browser&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built on Electron with everything you'd expect:&lt;/li&gt;
&lt;li&gt;Tab groups with drag-and-drop reordering&lt;/li&gt;
&lt;li&gt;Workspaces (Default, Work, School, Media)&lt;/li&gt;
&lt;li&gt;Brave-like settings (ad blocking, private mode, password manager)&lt;/li&gt;
&lt;li&gt;AI-powered search with real summaries&lt;/li&gt;
&lt;li&gt;Cloud sync across devices&lt;/li&gt;
&lt;li&gt;Bookmark management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📧 Wizard Mail&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full email client that connects to any IMAP provider (Gmail, Outlook, Yahoo):&lt;/li&gt;
&lt;li&gt;Alias support — Get @wizardecosystem.dpdns.org email addresses that forward to your real inbox&lt;/li&gt;
&lt;li&gt;Rich text composer with AI enhancement&lt;/li&gt;
&lt;li&gt;Image upload and file attachments&lt;/li&gt;
&lt;li&gt;Reply threading with proper headers&lt;/li&gt;
&lt;li&gt;Folder management (Inbox, Sent, Starred, Spam, Trash)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📅 Wizard Calendar&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schedule management with clean month/week views:&lt;/li&gt;
&lt;li&gt;Create, edit, delete events&lt;/li&gt;
&lt;li&gt;Color-coded categories&lt;/li&gt;
&lt;li&gt;Mini calendar with event indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💬 Wizard Chat&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time messaging between Wizard users:&lt;/li&gt;
&lt;li&gt;Search for users by email&lt;/li&gt;
&lt;li&gt;Instant message delivery&lt;/li&gt;
&lt;li&gt;Typing indicators&lt;/li&gt;
&lt;li&gt;Read receipts&lt;/li&gt;
&lt;li&gt;Persistent conversation history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🔍 Wizard Search&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google-like search page at wizardecosystem.dpdns.org/search:&lt;/li&gt;
&lt;li&gt;AI-powered summaries&lt;/li&gt;
&lt;li&gt;Search suggestions&lt;/li&gt;
&lt;li&gt;Direct result navigation (no redirects)&lt;/li&gt;
&lt;li&gt;DuckDuckGo + Wizard.AI backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- 📊 Stats Dashboard&lt;/strong&gt;&lt;br&gt;
Track your usage — messages sent, files uploaded, images generated, searches performed, memories stored. See your average response time and daily activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- ⚡ Turbo Mode&lt;/strong&gt;&lt;br&gt;
Flip the switch and get responses up to 2x faster. Uses optimized models and higher token limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 🔐 User Accounts&lt;/strong&gt;&lt;br&gt;
Sign up with email verification, log in, and your chats sync across devices. Everything saves to the cloud. Guest mode works too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 🎤 Voice Input&lt;/strong&gt;&lt;br&gt;
Click the microphone and speak your message. Works in all modes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 💬 Multi-Chat&lt;/strong&gt;&lt;br&gt;
Create multiple conversations, rename them, delete them, switch between them. Each chat keeps its own history and personality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 📱 PWA + Mobile Ready&lt;/strong&gt;&lt;br&gt;
Install it on your phone like a native app. Works offline, loads instantly, feels native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Ecosystem at a Glance&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            Service URL                    What it does
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Wizard AI   wizardai.dpdns.org           Main AI platform&lt;br&gt;
Wizard Browser  (Electron app)                 AI-powered browser&lt;br&gt;
Wizard Mail wizardecosystem.dpdns.org/mail       Email client&lt;br&gt;
Wizard Calendar wizardecosystem.dpdns.org/calendar    Event management&lt;br&gt;
Wizard Chat wizardecosystem.dpdns.org/chat        Messaging&lt;br&gt;
Wizard Search   wizardecosystem.dpdns.org/search    AI search page&lt;br&gt;
ArcWizOS    (Coming 2026)   Linux distro&lt;br&gt;
&lt;strong&gt;The Tech Stack&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML, CSS, JavaScript (vanilla, no frameworks)&lt;/li&gt;
&lt;li&gt;Custom purple theme with glass morphism&lt;/li&gt;
&lt;li&gt;Electron for desktop browser&lt;/li&gt;
&lt;li&gt;PWA with service worker for offline support&lt;/li&gt;
&lt;li&gt;Custom domain: wizardai.dpdns.org / wizardecosystem.dpdns.org&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python + Flask&lt;/li&gt;
&lt;li&gt;SQLAlchemy + SQLite&lt;/li&gt;
&lt;li&gt;Groq API (Llama 3.1 8B and 3.3 70B)&lt;/li&gt;
&lt;li&gt;Custom RAG with keyword search&lt;/li&gt;
&lt;li&gt;Tavily API for web search&lt;/li&gt;
&lt;li&gt;Hugging Face for image generation&lt;/li&gt;
&lt;li&gt;IMAP/SMTP for email (no Google OAuth required)&lt;/li&gt;
&lt;li&gt;Cloudflare API for email aliases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session auth with 30-day persistence&lt;/li&gt;
&lt;li&gt;Memory extraction using regex&lt;/li&gt;
&lt;li&gt;File upload with duplicate detection&lt;/li&gt;
&lt;li&gt;Stats tracking per user&lt;/li&gt;
&lt;li&gt;Streaming responses (token-by-token)&lt;/li&gt;
&lt;li&gt;Auto web search detection&lt;/li&gt;
&lt;li&gt;Community personalities browser&lt;/li&gt;
&lt;li&gt;Real-time chat with polling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Code That Makes It Work&lt;/strong&gt;&lt;br&gt;
Here's the streaming endpoint that ties everything together:&lt;/p&gt;

&lt;p&gt;python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/api/chat/stream&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;POST&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;stream_chat&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;full_prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;build_prompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mode&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

        &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Groq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;GROQ_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;llama-3.1-8b-instant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;full_prompt&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
            &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;token&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;stream_with_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt; &lt;span class="n"&gt;mimetype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text/event-stream&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the custom personality system:&lt;/p&gt;

&lt;p&gt;python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Personality&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Model&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;primary_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ForeignKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;user.id&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;nullable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;emoji&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;🤖&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;system_prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nullable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;is_public&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;likes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;uses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Start ugly&lt;br&gt;
My first version was a terminal script. Embarrassing to show anyone. But it worked, and that's what matters. You can't polish something that doesn't exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Databases aren't scary&lt;br&gt;
I was terrified of SQLAlchemy at first. Then I just started typing and Googling errors. Now it's fine. Most things are like this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Memory changes everything&lt;br&gt;
The moment the AI remembered my name across conversations, it stopped feeling like a chatbot and started feeling like an assistant. That one feature gets more positive feedback than anything else.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;50 hours is enough to build something real&lt;br&gt;
You don't need months. You don't need a team. Just consistent time and actually finishing things.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom personalities unlock community&lt;br&gt;
The feature I spent the least time on (custom personalities) got the most excitement. People love creating and sharing their own AIs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An ecosystem &amp;gt; a single app&lt;br&gt;
Adding email, calendar, chat, and search created a complete workspace. Users stay within the ecosystem instead of jumping between Google services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Age doesn't matter&lt;br&gt;
Nobody cares that I'm 12 when they're using the product. They just care if it works. The internet is a meritocracy — build something useful and people will use it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Try It Yourself&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;Wizard AI&lt;/strong&gt;: &lt;a href="https://www.wizardai.dpdns.org" rel="noopener noreferrer"&gt;https://www.wizardai.dpdns.org&lt;/a&gt;&lt;br&gt;
👉 &lt;strong&gt;Wizard Ecosystem&lt;/strong&gt;: &lt;a href="https://wizardecosystem.dpdns.org" rel="noopener noreferrer"&gt;https://wizardecosystem.dpdns.org&lt;/a&gt;&lt;br&gt;
👉 &lt;strong&gt;Github&lt;/strong&gt;: &lt;a href="https://github.com/AG-Ultima" rel="noopener noreferrer"&gt;https://github.com/AG-Ultima&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sign up with email, everything's free!&lt;/p&gt;

&lt;p&gt;Desktop App: Download from github — workspaces, tab groups, ad blocking, password manager, cloud sync.&lt;/p&gt;

&lt;p&gt;If you find bugs (you will), have ideas, or just want to say hi — drop a comment or reach out on Twitter.&lt;/p&gt;

&lt;p&gt;What's Next&lt;br&gt;
I'm keeping going. v13.0 is live, but v14.0 is already in my head:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🐧 ArcWizOS — A Linux distribution built from scratch. Think Arch Linux meets AI workstation. Custom kernel, Wayland compositor, and deep Wizard.AI integration. Target release: late 2026. Tryna make ChromeOS cry here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise features — Outlook/Teams integration, SSO, audit logs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile app — React Native for iOS/Android&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Plugin system — So users can add custom tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fine-tuned models — For each personality&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built by Arnav, age 12, in about 52 hours spread over a month (plus the ecosystem in another 20 hours).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Probably should have done homework. Worth it. 🧙&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
