{"id":2629,"date":"2025-09-01T07:26:48","date_gmt":"2025-09-01T14:26:48","guid":{"rendered":"https:\/\/www.danielyerelian.com\/blog\/?p=2629"},"modified":"2025-09-01T07:27:27","modified_gmt":"2025-09-01T14:27:27","slug":"building-elantris-in-a-day-an-experiment-in-ai-powered-app-development","status":"publish","type":"post","link":"https:\/\/www.danielyerelian.com\/blog\/2025\/09\/01\/building-elantris-in-a-day-an-experiment-in-ai-powered-app-development\/","title":{"rendered":"Building Elantris in a Day: An Experiment in AI-Powered App Development"},"content":{"rendered":"\n<p>Earlier this summer, I gave myself a challenge: could I design, scope, and build a minimum viable product (MVP) app in just one day?<\/p>\n\n\n\n<p>With my wife and kids out of town, I had a rare block of uninterrupted time and decided to see how far I could get with some of the new AI-powered developer tools that have been making waves. The result was <strong>Elantris<\/strong> &#8211;  a mobile and web platform designed to help people stay connected with those who matter most through daily outreach prompts, reminders, and nudges.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"522\" src=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1024x522.png\" alt=\"\" class=\"wp-image-2631\" srcset=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1024x522.png 1024w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-300x153.png 300w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-768x391.png 768w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image.png 1499w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>You can check out the landing page here: <a href=\"https:\/\/elantris.me\/\">elantris.me<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Starting With a PRD<\/h2>\n\n\n\n<p>Even though this was meant to be a \u201cvibe code\u201d project, I didn\u2019t want to skip the fundamentals. I started with a lightweight <strong>Product Requirements Document (PRD)<\/strong> to clarify what I was building, who it was for, and why it mattered.<\/p>\n\n\n\n<p>The idea behind Elantris came from a manual system I used for years to maintain connections with friends and family &#8211;  a spreadsheet of birthdays, holidays, and reminders that nudged me to check in. The PRD helped me translate that system into an app that could:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Give daily prompts to reach out to a contact<\/li>\n\n\n\n<li>Remind me of birthdays and key holidays<\/li>\n\n\n\n<li>Keep the flow simple by using SMS instead of building a new chat tool<\/li>\n\n\n\n<li>Add just a touch of gamification (streaks, XP, motivational quotes)<\/li>\n<\/ul>\n\n\n\n<p>You can read the full PRD here:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-5f7046d6-a30f-4d0b-9d30-e9190a5d8a91\" href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/Elantris-PRD-Only.docx\">Elantris-PRD-Only<\/a><a href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/Elantris-PRD-Only.docx\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-5f7046d6-a30f-4d0b-9d30-e9190a5d8a91\">Download<\/a><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Experiment 1: Web App with Lovable.dev<\/h2>\n\n\n\n<p>I started with <a href=\"https:\/\/lovable.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lovable.dev<\/a>, an AI-powered tool for quickly generating full-stack web apps. With just the PRD as input, Lovable spun up a working prototype that let me test core flows in the browser.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Live demo: <a href=\"https:\/\/lovable.dev\/projects\/8898d562-9515-4190-a4c7-8dd9ba097d05?magic_link=mc_4d96a774-0bc9-4166-9757-6f31cfdbe474\" target=\"_blank\" rel=\"noreferrer noopener\">Lovable project link<\/a><\/li>\n\n\n\n<li>Code: <a href=\"https:\/\/github.com\/dyerelian\/elantris-connect-daily\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub repo<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"379\" src=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x379.png\" alt=\"\" class=\"wp-image-2632\" srcset=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x379.png 1024w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-300x111.png 300w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-768x285.png 768w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1536x569.png 1536w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-1.png 1889w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>This got me surprisingly far. The big limitation, though, was when I wanted to move from web to mobile. Lovable relies on <strong><a href=\"https:\/\/capacitorjs.com\/\">Capacitor<\/a><\/strong>, a runtime framework that lets you wrap web code into native shells for iOS and Android. It worked &#8211; I was able to build apps using Android Studio and Xcode (shout-out to my wife for lending me her Mac) &#8211; but every little change required going back to Lovable, regenerating, and then re-exporting. Tedious.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Experiment 2: Native Android App with Kiro<\/h2>\n\n\n\n<p>That\u2019s when I decided to try <strong><a href=\"https:\/\/kiro.dev\/\">Kiro<\/a><\/strong>, Amazon\u2019s AI-powered IDE (similar to Cursor). Instead of relying on code generated elsewhere, I could directly guide the AI within my IDE, iterate faster, and have more control.<\/p>\n\n\n\n<p>Using the same PRD as input, I built a <strong>native Android version<\/strong> of Elantris that was more feature-rich, responsive, and easier to test.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-473x1024.png\" alt=\"\" class=\"wp-image-2635\" style=\"width:195px;height:auto\" srcset=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-473x1024.png 473w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-138x300.png 138w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-768x1664.png 768w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-709x1536.png 709w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4-945x2048.png 945w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-4.png 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Code: <a href=\"https:\/\/github.com\/dyerelian\/elantris-native-android\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub repo<\/a><\/li>\n<\/ul>\n\n\n\n<p>This experience really highlighted the difference between low-friction prototyping tools like Lovable (great for getting started) and AI-assisted IDEs (better for building maintainable, production-ready apps).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping It Up: Landing Page<\/h2>\n\n\n\n<p>Finally, I wanted a simple landing page to capture the spirit of Elantris and allow people to sign up for updates. I went back to Lovable for this, since it excels at quick, clean front-end scaffolding.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Website: <a href=\"https:\/\/elantris.me\" target=\"_blank\" rel=\"noreferrer noopener\">elantris.me<\/a><\/li>\n\n\n\n<li>Code: <a href=\"https:\/\/github.com\/dyerelian\/elantris-website\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub repo<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"607\" src=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5-1024x607.png\" alt=\"\" class=\"wp-image-2636\" srcset=\"https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5-1024x607.png 1024w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5-300x178.png 300w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5-768x456.png 768w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5-1536x911.png 1536w, https:\/\/www.danielyerelian.com\/blog\/wp-content\/uploads\/2025\/09\/image-5.png 1642w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Reflections<\/h2>\n\n\n\n<p>This was as much about the process as the product. In one day, I:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Drafted a PRD that clarified what the MVP should include<\/li>\n\n\n\n<li>Built a working web app prototype with Lovable<\/li>\n\n\n\n<li>Converted it into iOS and Android shells with Capacitor<\/li>\n\n\n\n<li>Created a more polished native Android app using Kiro<\/li>\n\n\n\n<li>Spun up a landing page to share the vision<\/li>\n<\/ul>\n\n\n\n<p>Will Elantris become a full-fledged product? I\u2019m not sure yet. But the exercise showed me just how far you can push with today\u2019s AI tools &#8211; and how important it still is to start with a clear product vision before writing a single line of code.<\/p>\n\n\n\n<p>At its core, Elantris is about something deeply human: reconnecting with people we care about. Whether this MVP becomes a long-term project or just a fun experiment, I\u2019m glad I spent the day building it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Earlier this summer, I gave myself a challenge: could I design, scope, and build a minimum viable product (MVP) app in just one day? With my wife and kids out of town, I had a rare block of uninterrupted time &hellip; <a href=\"https:\/\/www.danielyerelian.com\/blog\/2025\/09\/01\/building-elantris-in-a-day-an-experiment-in-ai-powered-app-development\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[323,281,43,40],"tags":[],"class_list":["post-2629","post","type-post","status-publish","format-standard","hentry","category-ai","category-hobby","category-internet","category-iphone-2"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/posts\/2629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/comments?post=2629"}],"version-history":[{"count":0,"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/posts\/2629\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/media?parent=2629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/categories?post=2629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.danielyerelian.com\/blog\/wp-json\/wp\/v2\/tags?post=2629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}