<?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: Raven</title>
    <description>The latest articles on DEV Community by Raven (@ravvdevv).</description>
    <link>https://dev.to/ravvdevv</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%2F1876533%2Fcb4fe731-afe0-4789-830a-943fb0ff81d7.jpg</url>
      <title>DEV Community: Raven</title>
      <link>https://dev.to/ravvdevv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ravvdevv"/>
    <language>en</language>
    <item>
      <title>I Wanted a Workout Tracker That Respected My Data, So I Built KOVA</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Sun, 01 Nov 2026 14:02:51 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-wanted-a-workout-tracker-that-respected-my-data-so-i-built-kova-3125</link>
      <guid>https://dev.to/ravvdevv/i-wanted-a-workout-tracker-that-respected-my-data-so-i-built-kova-3125</guid>
      <description>&lt;p&gt;&lt;em&gt;Building an offline-first fitness application focused on privacy, personal training history, and putting users in control of their own data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fitness applications have an interesting business model.&lt;/p&gt;

&lt;p&gt;You track your workouts, record your progress, build routines, and gradually accumulate months or even years of personal training data.&lt;/p&gt;

&lt;p&gt;But where does all that information actually live?&lt;/p&gt;

&lt;p&gt;For many applications, your training history depends on an account, a cloud service, or a subscription.&lt;/p&gt;

&lt;p&gt;I started thinking about a different approach.&lt;/p&gt;

&lt;p&gt;What if a workout tracker could be genuinely useful without requiring users to depend on a remote service?&lt;/p&gt;

&lt;p&gt;That idea became &lt;strong&gt;KOVA&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kova-app.site/" rel="noopener noreferrer"&gt;Explore KOVA&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your training history should belong to you
&lt;/h2&gt;

&lt;p&gt;A workout tracker should be relatively simple in principle.&lt;/p&gt;

&lt;p&gt;You perform an exercise, record your sets and repetitions, track your progress, and use that information to make better training decisions.&lt;/p&gt;

&lt;p&gt;Yet, over time, these records become something more valuable than individual workout entries.&lt;/p&gt;

&lt;p&gt;They become your training history.&lt;/p&gt;

&lt;p&gt;Your personal records, routines, measurements, exercise preferences, and progress represent actual effort accumulated over months or years.&lt;/p&gt;

&lt;p&gt;I believe that information should remain under the user's control.&lt;/p&gt;

&lt;p&gt;That's the philosophy behind KOVA.&lt;/p&gt;

&lt;h2&gt;
  
  
  More than recording sets and repetitions
&lt;/h2&gt;

&lt;p&gt;KOVA is designed as a broader training companion rather than a basic exercise logging application.&lt;/p&gt;

&lt;p&gt;Here are some of the areas it brings together.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Workout tracking
&lt;/h3&gt;

&lt;p&gt;Record exercises, sets, repetitions, and training sessions.&lt;/p&gt;

&lt;p&gt;The objective is to make logging straightforward enough that tracking doesn't become more annoying than the workout itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Workout planning and routines
&lt;/h3&gt;

&lt;p&gt;Organize training sessions and create routines around your training preferences.&lt;/p&gt;

&lt;p&gt;Having a structured plan makes it easier to stay consistent and understand what you're working toward.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Exercise library
&lt;/h3&gt;

&lt;p&gt;Browse exercises and use an organized exercise library when planning workouts.&lt;/p&gt;

&lt;p&gt;A good exercise library is more than a list of names. It helps make workout planning and tracking easier to navigate.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Progress tracking
&lt;/h3&gt;

&lt;p&gt;Track your training history, personal records, measurements, and progress over time.&lt;/p&gt;

&lt;p&gt;Instead of relying entirely on memory, you have a record of what you've actually accomplished.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Training journal
&lt;/h3&gt;

&lt;p&gt;Keep notes and additional context around your training.&lt;/p&gt;

&lt;p&gt;Numbers tell part of the story. Sometimes you also want to remember how a session felt or what you changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offline-first is a design decision
&lt;/h2&gt;

&lt;p&gt;One of the central ideas behind KOVA is that a workout tracker shouldn't need a permanent internet connection to remain useful.&lt;/p&gt;

&lt;p&gt;An offline-first approach changes how an application is designed.&lt;/p&gt;

&lt;p&gt;Instead of treating a remote server as the only source of truth, the application prioritizes local data availability.&lt;/p&gt;

&lt;p&gt;This has practical advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your workouts remain accessible without an internet connection.&lt;/li&gt;
&lt;li&gt;Logging doesn't need to depend on network availability.&lt;/li&gt;
&lt;li&gt;Your training experience isn't built around a cloud service being online.&lt;/li&gt;
&lt;li&gt;Your personal records remain part of your own application experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Offline-first doesn't automatically guarantee perfect privacy or data security. Those still require deliberate engineering decisions.&lt;/p&gt;

&lt;p&gt;But it creates a foundation where the user doesn't have to depend on a remote service for every interaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing around the actual workout experience
&lt;/h2&gt;

&lt;p&gt;A fitness application has a different usability problem from most productivity applications.&lt;/p&gt;

&lt;p&gt;People don't necessarily want to spend several minutes navigating menus between sets.&lt;/p&gt;

&lt;p&gt;The interface needs to make common actions easy to reach.&lt;/p&gt;

&lt;p&gt;That's why KOVA brings together workout sessions, routines, exercise browsing, progress, notes, and personal training information into one application.&lt;/p&gt;

&lt;p&gt;The design direction is intentionally restrained, with a dark, minimal visual language rather than overwhelming dashboards and unnecessary decoration.&lt;/p&gt;

&lt;p&gt;The application should support the training experience, not compete with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building KOVA
&lt;/h2&gt;

&lt;p&gt;KOVA has also been an interesting software engineering project because of the number of interconnected features involved.&lt;/p&gt;

&lt;p&gt;Workout tracking, exercise libraries, routines, measurements, and progress statistics all depend on consistent underlying data.&lt;/p&gt;

&lt;p&gt;Changing one part of the application shouldn't accidentally break another.&lt;/p&gt;

&lt;p&gt;This makes architecture and data integrity particularly important.&lt;/p&gt;

&lt;p&gt;The project has involved working through challenges around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing structured exercise and workout data.&lt;/li&gt;
&lt;li&gt;Keeping training records consistent.&lt;/li&gt;
&lt;li&gt;Designing reusable exercise and workout experiences.&lt;/li&gt;
&lt;li&gt;Supporting offline-first workflows.&lt;/li&gt;
&lt;li&gt;Making progress information understandable.&lt;/li&gt;
&lt;li&gt;Maintaining a cohesive mobile experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted to approach it as a proper training platform rather than a collection of disconnected screens.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger idea: your training, your data
&lt;/h2&gt;

&lt;p&gt;Technology should make personal progress easier to understand, not create unnecessary dependencies.&lt;/p&gt;

&lt;p&gt;A workout tracker shouldn't make you feel like you're borrowing your own training history.&lt;/p&gt;

&lt;p&gt;KOVA is built around a simple principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your training. Your data. Yours.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's an ongoing project, and there's still room to improve the experience, expand its capabilities, and refine how people interact with their training history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try KOVA
&lt;/h2&gt;

&lt;p&gt;If you're looking for a more private, offline-first approach to workout tracking, explore KOVA:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://kova-app.site/" rel="noopener noreferrer"&gt;Visit KOVA&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm interested in hearing from people who care about fitness tracking, offline-first applications, privacy-focused software, and building products that give users more control over their data.&lt;/p&gt;

&lt;p&gt;Because at the end of the day, your progress should belong to you.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>showdev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>I Built an Android AI Assistant That Doesn't Need the Cloud</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Sun, 01 Nov 2026 14:01:35 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-built-an-android-ai-assistant-that-doesnt-need-the-cloud-25g1</link>
      <guid>https://dev.to/ravvdevv/i-built-an-android-ai-assistant-that-doesnt-need-the-cloud-25g1</guid>
      <description>&lt;p&gt;&lt;em&gt;Running language models locally on Android, keeping conversations on-device, and exploring what happens when AI doesn't depend on a server.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most AI applications have something in common.&lt;/p&gt;

&lt;p&gt;You type a message, send it somewhere, wait for a server to process it, and receive a response.&lt;/p&gt;

&lt;p&gt;It's convenient. It's also an architecture we've become so accustomed to that we rarely question it.&lt;/p&gt;

&lt;p&gt;What if the model didn't need to run on someone else's infrastructure?&lt;/p&gt;

&lt;p&gt;What if your phone could handle the inference itself?&lt;/p&gt;

&lt;p&gt;That question is what led me to build &lt;strong&gt;Snor&lt;/strong&gt;, an Android application designed around local AI inference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snor.site/" rel="noopener noreferrer"&gt;Explore Snor&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea: AI without the usual cloud dependency
&lt;/h2&gt;

&lt;p&gt;I wanted to experiment with something different from the typical AI chatbot architecture.&lt;/p&gt;

&lt;p&gt;Instead of making a remote API the center of the application, I wanted the phone itself to be capable of running language models.&lt;/p&gt;

&lt;p&gt;That introduces an entirely different set of engineering problems.&lt;/p&gt;

&lt;p&gt;You're no longer just building a chat interface around an API.&lt;/p&gt;

&lt;p&gt;You're dealing with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model loading and memory consumption.&lt;/li&gt;
&lt;li&gt;CPU and GPU inference.&lt;/li&gt;
&lt;li&gt;Context window management.&lt;/li&gt;
&lt;li&gt;Native Android integration.&lt;/li&gt;
&lt;li&gt;Generation latency.&lt;/li&gt;
&lt;li&gt;Device-specific performance limitations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part is that all these constraints become part of the application design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running LLMs directly on Android
&lt;/h2&gt;

&lt;p&gt;Snor is built around local model inference.&lt;/p&gt;

&lt;p&gt;One of the technologies involved is &lt;strong&gt;llama.cpp&lt;/strong&gt;, which makes it possible to run compatible quantized language models using GGUF files.&lt;/p&gt;

&lt;p&gt;The application also explores LiteRT-LM for on-device inference.&lt;/p&gt;

&lt;p&gt;This means model execution can happen directly on the device rather than requiring every prompt to be sent to an external AI provider.&lt;/p&gt;

&lt;p&gt;For smaller devices, this distinction matters.&lt;/p&gt;

&lt;p&gt;A model that works comfortably on a desktop might be completely impractical on a phone with limited available memory.&lt;/p&gt;

&lt;p&gt;That's why model selection, quantization, and resource management are important parts of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why smaller models?
&lt;/h2&gt;

&lt;p&gt;One of the more interesting directions I've been exploring is lightweight models.&lt;/p&gt;

&lt;p&gt;Instead of assuming that bigger models are always better, I've been focusing on the SmolLM2 family, particularly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SmolLM2 135M&lt;/li&gt;
&lt;li&gt;SmolLM2 360M&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These models aren't intended to compete with large frontier models.&lt;/p&gt;

&lt;p&gt;Their value is in exploring what can be accomplished with relatively small models under mobile hardware constraints.&lt;/p&gt;

&lt;p&gt;There are trade-offs, obviously.&lt;/p&gt;

&lt;p&gt;Smaller models have limited reasoning capabilities, and they aren't suitable for every task. They can also produce incorrect or incomplete answers.&lt;/p&gt;

&lt;p&gt;But that limitation is part of the engineering problem.&lt;/p&gt;

&lt;p&gt;A useful local AI application shouldn't pretend that a tiny model can do everything.&lt;/p&gt;

&lt;p&gt;It should manage expectations, handle output carefully, and acknowledge when it cannot provide a reliable answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy is an architectural decision
&lt;/h2&gt;

&lt;p&gt;One of the main reasons for building Snor around local inference is data control.&lt;/p&gt;

&lt;p&gt;When inference happens locally, conversations don't need to be transmitted to a remote model provider.&lt;/p&gt;

&lt;p&gt;Snor is designed around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local-first AI inference.&lt;/li&gt;
&lt;li&gt;No account requirement.&lt;/li&gt;
&lt;li&gt;No default cloud dependency.&lt;/li&gt;
&lt;li&gt;On-device conversation storage.&lt;/li&gt;
&lt;li&gt;Optional cloud AI integrations when users explicitly choose them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This distinction is important.&lt;/p&gt;

&lt;p&gt;Privacy shouldn't just be a marketing statement added to an application description. It should influence how the software is architected.&lt;/p&gt;

&lt;p&gt;Local inference provides a different relationship between the user, the application, and the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The engineering challenges are more interesting than the chat interface
&lt;/h2&gt;

&lt;p&gt;The UI is only one part of the project.&lt;/p&gt;

&lt;p&gt;The difficult work happens underneath it.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Native model integration
&lt;/h3&gt;

&lt;p&gt;Running native inference engines inside a Flutter application requires communication between Dart and native code.&lt;/p&gt;

&lt;p&gt;Snor uses native integration to connect its application layer with the inference engines.&lt;/p&gt;

&lt;p&gt;This creates additional responsibilities around model lifecycle management, memory handling, and safe execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Model lifecycle and concurrency
&lt;/h3&gt;

&lt;p&gt;Native inference isn't something you want to manage casually.&lt;/p&gt;

&lt;p&gt;Loading a model, generating a response, clearing context, and disposing of native resources need predictable execution.&lt;/p&gt;

&lt;p&gt;Concurrent operations can cause serious problems if the underlying native resources aren't protected.&lt;/p&gt;

&lt;p&gt;This is why synchronization and controlled model lifecycle management are important parts of the implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Working within mobile hardware limitations
&lt;/h3&gt;

&lt;p&gt;Android devices don't have unlimited memory or desktop-class cooling systems.&lt;/p&gt;

&lt;p&gt;Model size, available RAM, context length, and inference settings all affect the experience.&lt;/p&gt;

&lt;p&gt;A mobile AI application needs to account for those constraints rather than assuming every device behaves the same way.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Making smaller models useful
&lt;/h3&gt;

&lt;p&gt;A smaller model shouldn't be given an unlimited conversation history and expected to perform like a much larger model.&lt;/p&gt;

&lt;p&gt;Snor explores bounded conversation history, model-specific context limits, and output constraints to keep interactions manageable.&lt;/p&gt;

&lt;p&gt;The goal is to build a more predictable experience around the capabilities of the model actually running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local-first doesn't have to mean cloud-never
&lt;/h2&gt;

&lt;p&gt;I don't think local AI and cloud AI need to be competing philosophies.&lt;/p&gt;

&lt;p&gt;They solve different problems.&lt;/p&gt;

&lt;p&gt;Local models offer more control over data and can work without an internet connection.&lt;/p&gt;

&lt;p&gt;Cloud models offer access to significantly larger models and more demanding capabilities.&lt;/p&gt;

&lt;p&gt;Snor explores a local-first approach while allowing optional cloud integrations.&lt;/p&gt;

&lt;p&gt;The important distinction is that cloud usage should be a deliberate choice rather than an invisible requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm exploring next
&lt;/h2&gt;

&lt;p&gt;Snor is an ongoing experiment in making local AI practical on Android.&lt;/p&gt;

&lt;p&gt;Some areas I'm interested in improving include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better inference performance across different Android devices.&lt;/li&gt;
&lt;li&gt;More reliable model downloads and loading.&lt;/li&gt;
&lt;li&gt;Improved handling of partial generation and interrupted inference.&lt;/li&gt;
&lt;li&gt;Smarter context management.&lt;/li&gt;
&lt;li&gt;Better lightweight model selection.&lt;/li&gt;
&lt;li&gt;A more polished mobile AI experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I find this space particularly interesting because mobile hardware keeps evolving, while efficient inference techniques and smaller models continue to make local AI more practical.&lt;/p&gt;

&lt;p&gt;There's still a lot to figure out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Snor
&lt;/h2&gt;

&lt;p&gt;If you're interested in running language models locally on Android, you can explore the project here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://snor.site/" rel="noopener noreferrer"&gt;Visit Snor&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm particularly interested in hearing from developers experimenting with llama.cpp, GGUF models, Flutter, and on-device inference.&lt;/p&gt;

&lt;p&gt;The bigger question I'm exploring is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much useful AI can we actually fit inside a phone, without depending on someone else's server?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>android</category>
      <category>llm</category>
      <category>mobile</category>
    </item>
    <item>
      <title>I Got Tired of Making Study Materials Instead of Studying, So I Built Cramio</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Sun, 01 Nov 2026 13:53:48 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-got-tired-of-making-study-materials-instead-of-studying-so-i-built-cramio-30e</link>
      <guid>https://dev.to/ravvdevv/i-got-tired-of-making-study-materials-instead-of-studying-so-i-built-cramio-30e</guid>
      <description>&lt;p&gt;&lt;em&gt;An experiment in building an AI-powered study companion for students, using React, Capacitor, Supabase, and a little frustration with the way we study.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There's a funny problem with studying.&lt;/p&gt;

&lt;p&gt;You sit down because you want to learn something. Three hours later, you've organized your PDFs, highlighted paragraphs, rewritten notes, created a few flashcards, and somehow haven't actually studied that much.&lt;/p&gt;

&lt;p&gt;Congratulations. You've successfully procrastinated using productivity tools.&lt;/p&gt;

&lt;p&gt;I've experienced this enough times to start questioning the workflow itself.&lt;/p&gt;

&lt;p&gt;Why does preparing to study sometimes feel like an entirely separate subject?&lt;/p&gt;

&lt;p&gt;That question eventually turned into &lt;strong&gt;Cramio&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cramio.site/" rel="noopener noreferrer"&gt;Explore Cramio →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The real problem wasn't a lack of study materials
&lt;/h2&gt;

&lt;p&gt;Students already have materials. Plenty of them, actually.&lt;/p&gt;

&lt;p&gt;Lecture slides, PDFs, textbooks, handwritten notes, screenshots, and documents scattered across different folders.&lt;/p&gt;

&lt;p&gt;The problem is what happens next.&lt;/p&gt;

&lt;p&gt;A PDF contains 40 pages of information. You need to understand it, identify the important concepts, create questions, and test whether you've actually retained anything.&lt;/p&gt;

&lt;p&gt;Most of that preparation is repetitive.&lt;/p&gt;

&lt;p&gt;I started thinking: what if the application could handle some of that preparation, while the student focused on understanding the material?&lt;/p&gt;

&lt;p&gt;Not another chatbot with a fancy interface. Not another application that simply summarizes everything and calls it learning.&lt;/p&gt;

&lt;p&gt;I wanted something built around the actual studying workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Cramio: From raw materials to active learning
&lt;/h2&gt;

&lt;p&gt;Cramio is an AI-powered study application that turns existing learning materials into resources students can actively use.&lt;/p&gt;

&lt;p&gt;The central idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your materials should become the starting point of your learning experience, not another thing you have to manually process.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's how that translates into the product.&lt;/p&gt;

&lt;h3&gt;
  
  
  From reading to reviewing
&lt;/h3&gt;

&lt;p&gt;Instead of manually rewriting an entire lecture document, Cramio helps generate organized study notes.&lt;/p&gt;

&lt;p&gt;The goal is to make lengthy learning materials easier to navigate and revisit.&lt;/p&gt;

&lt;h3&gt;
  
  
  From memorizing to active recall
&lt;/h3&gt;

&lt;p&gt;Flashcards are useful because they force you to retrieve information instead of passively rereading it.&lt;/p&gt;

&lt;p&gt;Cramio uses AI to help generate question-and-answer cards from study materials, making it easier to start practicing.&lt;/p&gt;

&lt;h3&gt;
  
  
  From guessing to testing
&lt;/h3&gt;

&lt;p&gt;Reading something five times doesn't necessarily mean you understand it.&lt;/p&gt;

&lt;p&gt;That's why Cramio also includes AI-generated quizzes, allowing students to test their understanding and identify areas that need more attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  When the material gets confusing
&lt;/h3&gt;

&lt;p&gt;Sometimes the problem isn't memorization. It's understanding a concept in the first place.&lt;/p&gt;

&lt;p&gt;Cramio also includes an AI study assistant to help students work through questions and difficult topics.&lt;/p&gt;

&lt;h2&gt;
  
  
  The engineering behind it
&lt;/h2&gt;

&lt;p&gt;I didn't want Cramio to become a collection of disconnected AI features.&lt;/p&gt;

&lt;p&gt;The challenge was creating an application where authentication, study materials, AI generation, and the actual learning experience worked together.&lt;/p&gt;

&lt;p&gt;The current architecture uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; for the application interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capacitor&lt;/strong&gt; to bring the web application into an Android environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; for backend services and data management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clerk&lt;/strong&gt; for authentication.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered workflows&lt;/strong&gt; for generating learning resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One important engineering consideration is that AI-generated content needs structure.&lt;/p&gt;

&lt;p&gt;Generating text is relatively straightforward. Generating useful educational material that students can actually review is a different problem.&lt;/p&gt;

&lt;p&gt;A flashcard should test a meaningful concept. A quiz should assess understanding. Notes should be readable rather than becoming another wall of generated text.&lt;/p&gt;

&lt;p&gt;That's the difference between adding AI to an application and designing an application around a meaningful AI-assisted workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Android first?
&lt;/h2&gt;

&lt;p&gt;I wanted to focus on making the experience accessible through an actual mobile application.&lt;/p&gt;

&lt;p&gt;Students don't always study at a desk with a laptop open. Sometimes they're reviewing materials between classes, commuting, or studying from their phones.&lt;/p&gt;

&lt;p&gt;Building with Capacitor gives Cramio a way to share its React application architecture while delivering an Android experience.&lt;/p&gt;

&lt;p&gt;It also introduces its own challenges: mobile interactions, navigation, authentication flows, responsive layouts, and making sure the application feels native enough to use comfortably.&lt;/p&gt;

&lt;p&gt;These are the kinds of details that don't always show up in a feature announcement, but they matter enormously to the actual product.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'm not trying to replace studying with AI
&lt;/h2&gt;

&lt;p&gt;This is probably the most important distinction.&lt;/p&gt;

&lt;p&gt;AI shouldn't become another shortcut that makes students feel productive without actually learning anything.&lt;/p&gt;

&lt;p&gt;Summarizing a chapter isn't the same as understanding it. Generating flashcards isn't the same as remembering their answers.&lt;/p&gt;

&lt;p&gt;The interesting opportunity is using AI to reduce the friction between receiving learning materials and actively engaging with them.&lt;/p&gt;

&lt;p&gt;Cramio is built around that idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;Cramio is an ongoing project, and there's still plenty to improve.&lt;/p&gt;

&lt;p&gt;Some areas I'm particularly interested in are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving the quality and usefulness of AI-generated study materials.&lt;/li&gt;
&lt;li&gt;Making PDF processing more reliable.&lt;/li&gt;
&lt;li&gt;Refining the mobile learning experience.&lt;/li&gt;
&lt;li&gt;Making studying more engaging without turning the application into a distraction.&lt;/li&gt;
&lt;li&gt;Building a better workflow around active recall and self-assessment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to keep approaching this as an engineering problem: identify friction, understand its cause, and build something that genuinely improves the experience.&lt;/p&gt;

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

&lt;p&gt;If you're a student who spends too much time preparing materials instead of actually studying, Cramio might be worth exploring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://cramio.site/" rel="noopener noreferrer"&gt;Visit Cramio&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if you're a developer interested in building AI-powered applications, I'd be interested in hearing how you're approaching the challenge of making AI genuinely useful beyond a chat interface.&lt;/p&gt;

&lt;p&gt;Because honestly, students already have enough things to memorize. They shouldn't have to memorize an entire workflow just to start studying.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>react</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Built Monbii - A Habit App Where Your Companion Grows With You</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Thu, 30 Apr 2026 02:32:25 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-built-monbii-a-habit-app-where-your-companion-grows-with-you-8a</link>
      <guid>https://dev.to/ravvdevv/i-built-monbii-a-habit-app-where-your-companion-grows-with-you-8a</guid>
      <description>&lt;p&gt;I got tired of habit apps that feel like spreadsheets pretending to be motivation.&lt;/p&gt;

&lt;p&gt;So I built something different: &lt;strong&gt;Monbii&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s a minimalist habit app where your companion evolves based on how consistent you are.&lt;/p&gt;

&lt;p&gt;Not in a “points and badges” way, but in a way where your behavior actually changes what you see and interact with.&lt;/p&gt;

&lt;p&gt;If you stay consistent, your companion grows.&lt;br&gt;&lt;br&gt;
If you don’t, it reflects that.&lt;/p&gt;

&lt;p&gt;There’s also a simple battle system that evaluates your progress every few days based on your habits.&lt;/p&gt;

&lt;p&gt;And reminders are built like a system, not spam. They feel more like a companion checking in than a generic notification.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React + Capacitor JS (mobile-first web app)&lt;/li&gt;
&lt;li&gt;Zustand for state management&lt;/li&gt;
&lt;li&gt;Supabase / Lovable Cloud for syncing data&lt;/li&gt;
&lt;li&gt;Lottie for mascot animations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Most habit apps fail because there’s no emotional attachment&lt;/li&gt;
&lt;li&gt;Users don’t care about features, they care about feedback loops&lt;/li&gt;
&lt;li&gt;If the first 10 seconds don’t feel rewarding, nothing else matters&lt;/li&gt;
&lt;li&gt;Simplicity beats “feature richness” every time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I’m improving next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Making the companion reactions more dynamic&lt;/li&gt;
&lt;li&gt;Refining the progression system&lt;/li&gt;
&lt;li&gt;Improving the battle system so it actually reflects behavior better&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;🔗 Live: &lt;a href="https://monbii.vercel.app/" rel="noopener noreferrer"&gt;https://monbii.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>react</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>I Built an AI CLI That Writes Git Commits So You Don’t Have To</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Thu, 30 Apr 2026 02:20:28 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-built-an-ai-cli-that-writes-git-commits-so-you-dont-have-to-21e6</link>
      <guid>https://dev.to/ravvdevv/i-built-an-ai-cli-that-writes-git-commits-so-you-dont-have-to-21e6</guid>
      <description>&lt;p&gt;Let’s be honest.&lt;/p&gt;

&lt;p&gt;Most commit messages look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fix stuff
update again
final-final-actually-final
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;They’re useless.&lt;/p&gt;

&lt;p&gt;And the worst part? You &lt;em&gt;know&lt;/em&gt; they’re bad, but you still write them because stopping to craft a proper message feels like friction.&lt;/p&gt;

&lt;p&gt;So I built something to remove that friction entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Introducing gac (Git Auto Commit)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;gac&lt;/strong&gt; is an AI-powered CLI that analyzes your Git changes and writes structured, meaningful commit messages for you.&lt;/p&gt;

&lt;p&gt;Not random fluff.&lt;br&gt;
Not generic summaries.&lt;br&gt;
Actual useful commits.&lt;/p&gt;


&lt;h2&gt;
  
  
  💥 The Real Problem
&lt;/h2&gt;

&lt;p&gt;Git isn’t broken.&lt;br&gt;
Our habits are.&lt;/p&gt;

&lt;p&gt;Bad commit messages create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;messy project history&lt;/li&gt;
&lt;li&gt;painful debugging sessions&lt;/li&gt;
&lt;li&gt;confusion in team collaboration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And consistency is hard when you're moving fast.&lt;/p&gt;

&lt;p&gt;So instead of relying on discipline… I automated it.&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚙️ What gac Does
&lt;/h2&gt;
&lt;h3&gt;
  
  
  ✨ AI-Generated Commit Messages
&lt;/h3&gt;

&lt;p&gt;Reads your staged changes (diffs) and generates structured messages using the &lt;strong&gt;Conventional Commits&lt;/strong&gt; format.&lt;/p&gt;


&lt;h3&gt;
  
  
  🔄 Smart Sync Checks
&lt;/h3&gt;

&lt;p&gt;Runs &lt;code&gt;git fetch&lt;/code&gt; and warns you if your branch is behind before committing.&lt;br&gt;
No more surprise merge conflicts later.&lt;/p&gt;


&lt;h3&gt;
  
  
  📦 Interactive Staging
&lt;/h3&gt;

&lt;p&gt;Forgot to stage files?&lt;br&gt;
gac detects that and asks if you want to stage everything.&lt;/p&gt;


&lt;h3&gt;
  
  
  🚀 Post-Commit Actions
&lt;/h3&gt;

&lt;p&gt;After committing, gac can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;push your changes&lt;/li&gt;
&lt;li&gt;open a GitHub PR (for non-main branches)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  🧠 Diff Noise Filtering
&lt;/h3&gt;

&lt;p&gt;Automatically ignores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;package-lock.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bun.lock&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;other low-signal files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the AI focuses on what actually matters.&lt;/p&gt;


&lt;h3&gt;
  
  
  🎨 Custom Styles
&lt;/h3&gt;

&lt;p&gt;Choose how your commits sound:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;conventional&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;minimal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;detailed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;verbose&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vibe&lt;/code&gt; (for when you're feeling chaotic)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  🔌 Extensible by Design
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.gacignore&lt;/code&gt; → exclude files from analysis&lt;/li&gt;
&lt;li&gt;custom prompts → control AI behavior per repo&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠 Installation
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; gac-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Or from source:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/ravvdevv/gac.git
&lt;span class="nb"&gt;cd &lt;/span&gt;gac
bun &lt;span class="nb"&gt;install
&lt;/span&gt;bun &lt;span class="nb"&gt;link&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔑 Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gac &lt;span class="nt"&gt;--key&lt;/span&gt; YOUR_API_KEY
gac &lt;span class="nt"&gt;--model&lt;/span&gt; openrouter/free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧪 Usage
&lt;/h2&gt;

&lt;p&gt;Just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gac
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Useful Flags
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gac &lt;span class="nt"&gt;--amend&lt;/span&gt;     &lt;span class="c"&gt;# regenerate last commit message&lt;/span&gt;
gac &lt;span class="nt"&gt;--dry-run&lt;/span&gt;   &lt;span class="c"&gt;# preview without committing&lt;/span&gt;
gac &lt;span class="nt"&gt;--copy&lt;/span&gt;      &lt;span class="c"&gt;# copy message to clipboard&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🤔 Why This Actually Matters
&lt;/h2&gt;

&lt;p&gt;Good commit messages are leverage.&lt;/p&gt;

&lt;p&gt;They help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debug faster&lt;/li&gt;
&lt;li&gt;collaborate better&lt;/li&gt;
&lt;li&gt;understand your own code months later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But writing them every time is annoying enough that most people don’t.&lt;/p&gt;

&lt;p&gt;So the system breaks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;gac fixes the system, not your motivation.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 What’s Next
&lt;/h2&gt;

&lt;p&gt;This is just the start.&lt;/p&gt;

&lt;p&gt;The goal isn’t just “better commits.”&lt;br&gt;
It’s turning the CLI into a smarter workflow assistant that reduces cognitive load across development.&lt;/p&gt;


&lt;h2&gt;
  
  
  📦 Try It Out
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/ravvdevv/gac" rel="noopener noreferrer"&gt;https://github.com/ravvdevv/gac&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 Final Thought
&lt;/h2&gt;

&lt;p&gt;If your commit history still looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update
fix
pls work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don’t need more discipline.&lt;/p&gt;

&lt;p&gt;You need better tooling.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
      <category>tooling</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Internet Shows What We Do. It Hides How We Feel.</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Sun, 22 Feb 2026 11:17:03 +0000</pubDate>
      <link>https://dev.to/ravvdevv/the-internet-shows-what-we-do-it-hides-how-we-feel-4jbo</link>
      <guid>https://dev.to/ravvdevv/the-internet-shows-what-we-do-it-hides-how-we-feel-4jbo</guid>
      <description>&lt;p&gt;The internet is incredible at visibility.&lt;/p&gt;

&lt;p&gt;It shows what people are building.&lt;br&gt;&lt;br&gt;
Shipping.&lt;br&gt;&lt;br&gt;
Launching.&lt;br&gt;&lt;br&gt;
Scaling.&lt;br&gt;&lt;br&gt;
Winning.&lt;/p&gt;

&lt;p&gt;Polished screenshots.&lt;br&gt;&lt;br&gt;
Milestone posts.&lt;br&gt;&lt;br&gt;
“Big news 🚀” updates.&lt;br&gt;&lt;br&gt;
Perfectly framed productivity.&lt;/p&gt;

&lt;p&gt;But it hides something fundamental.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How people actually feel.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Behind the commits and announcements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anxiety
&lt;/li&gt;
&lt;li&gt;Loneliness
&lt;/li&gt;
&lt;li&gt;Burnout
&lt;/li&gt;
&lt;li&gt;Quiet doubt
&lt;/li&gt;
&lt;li&gt;Silence
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We scroll through highlight reels while quietly falling apart.&lt;/p&gt;

&lt;p&gt;As builders, we’ve optimized for performance, metrics, growth, engagement.&lt;/p&gt;

&lt;p&gt;But we haven’t optimized for emotional honesty.&lt;/p&gt;

&lt;p&gt;So I built something different.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing BULONG
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;BULONG&lt;/strong&gt; is a live, anonymous emotional map.&lt;/p&gt;

&lt;p&gt;It lets people drop a whisper about how they actually feel — right where they are, or tied to a memory of a place.&lt;/p&gt;

&lt;p&gt;No usernames.&lt;br&gt;&lt;br&gt;
No followers.&lt;br&gt;&lt;br&gt;
No profiles.&lt;br&gt;&lt;br&gt;
No metrics.&lt;br&gt;&lt;br&gt;
No performance.&lt;/p&gt;

&lt;p&gt;Just raw emotion, placed on a map.&lt;/p&gt;

&lt;p&gt;When you open it, you don’t see status.&lt;/p&gt;

&lt;p&gt;You see honesty.&lt;/p&gt;

&lt;p&gt;A stranger in your city who feels overwhelmed.&lt;br&gt;&lt;br&gt;
Someone three blocks away who can’t sleep.&lt;br&gt;&lt;br&gt;
Someone across the world whispering, “I’m tired too.”&lt;/p&gt;

&lt;p&gt;“Bulong” means &lt;em&gt;whisper&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And the quiet thoughts we hide are often the loudest ones inside us.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Build This?
&lt;/h2&gt;

&lt;p&gt;Because the current internet rewards visibility without vulnerability.&lt;/p&gt;

&lt;p&gt;We measure everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Followers
&lt;/li&gt;
&lt;li&gt;Likes
&lt;/li&gt;
&lt;li&gt;Shares
&lt;/li&gt;
&lt;li&gt;Views
&lt;/li&gt;
&lt;li&gt;Retention
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there’s no place designed purely for emotional presence.&lt;/p&gt;

&lt;p&gt;Not therapy.&lt;br&gt;&lt;br&gt;
Not advice.&lt;br&gt;&lt;br&gt;
Not fixing.&lt;/p&gt;

&lt;p&gt;Just visibility.&lt;/p&gt;

&lt;p&gt;And sometimes the most powerful thing a person can see is this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You’re not the only one feeling it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  This Isn’t a Mental Health App
&lt;/h2&gt;

&lt;p&gt;It’s not diagnosing.&lt;br&gt;&lt;br&gt;
It’s not coaching.&lt;br&gt;&lt;br&gt;
It’s not moderating your growth journey.&lt;/p&gt;

&lt;p&gt;It’s emotional visibility at scale.&lt;/p&gt;

&lt;p&gt;A quiet layer of the internet where people can exist without performing.&lt;/p&gt;

&lt;p&gt;Because sometimes you don’t need answers.&lt;/p&gt;

&lt;p&gt;You just need to know someone else is carrying something too.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Question
&lt;/h2&gt;

&lt;p&gt;If this existed during your lowest moment…&lt;/p&gt;

&lt;p&gt;Would you have opened it?&lt;/p&gt;




&lt;h2&gt;
  
  
  Explore BULONG
&lt;/h2&gt;

&lt;p&gt;Explore it here: &lt;a href="https://bulong-map.vercel.app" rel="noopener noreferrer"&gt;https://bulong-map.vercel.app&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>mentalhealth</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>I Built My Own Social Media Platform (And Turned It Into a Game)</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Wed, 18 Feb 2026 15:25:36 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-built-my-own-social-media-platform-and-turned-it-into-a-game-3k68</link>
      <guid>https://dev.to/ravvdevv/i-built-my-own-social-media-platform-and-turned-it-into-a-game-3k68</guid>
      <description>&lt;p&gt;Most social platforms reward noise.&lt;/p&gt;

&lt;p&gt;The loudest voices win. The fastest takes spread. The algorithm decides what matters.&lt;/p&gt;

&lt;p&gt;So I decided to build something different.&lt;/p&gt;

&lt;p&gt;I created Hypenote — a community-driven discussion platform where influence isn’t random. It’s earned.&lt;/p&gt;

&lt;p&gt;👉 Check it out here: &lt;a href="https://www.hypenote.online/" rel="noopener noreferrer"&gt;https://www.hypenote.online/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Core Idea: Aura&lt;/p&gt;

&lt;p&gt;On Hypenote, every user has something called Aura.&lt;/p&gt;

&lt;p&gt;Upvotes increase your Aura&lt;/p&gt;

&lt;p&gt;Downvotes decrease it&lt;/p&gt;

&lt;p&gt;High Aura increases your influence&lt;/p&gt;

&lt;p&gt;Low Aura limits your power&lt;/p&gt;

&lt;p&gt;Aura isn’t just a vanity number. It changes how the system treats you.&lt;/p&gt;

&lt;p&gt;High Aura users can:&lt;/p&gt;

&lt;p&gt;Pin posts&lt;/p&gt;

&lt;p&gt;Create “circles” (private communities)&lt;/p&gt;

&lt;p&gt;Have stronger voting weight&lt;/p&gt;

&lt;p&gt;Unlock cosmetic badges&lt;/p&gt;

&lt;p&gt;Low Aura users:&lt;/p&gt;

&lt;p&gt;Have post cooldowns&lt;/p&gt;

&lt;p&gt;Carry less voting weight&lt;/p&gt;

&lt;p&gt;Your influence is directly tied to how the community values your contributions.&lt;/p&gt;

&lt;p&gt;It’s not just content. It’s reputation.&lt;/p&gt;

&lt;p&gt;Making It Feel Like a Game&lt;/p&gt;

&lt;p&gt;I didn’t want another static discussion board. I wanted something dynamic.&lt;/p&gt;

&lt;p&gt;So I added mechanics inspired by game systems:&lt;/p&gt;

&lt;p&gt;Aura decay over time (stay active or lose influence)&lt;/p&gt;

&lt;p&gt;Streak bonuses for consistent participation&lt;/p&gt;

&lt;p&gt;Daily limited posts&lt;/p&gt;

&lt;p&gt;Early community slot limits&lt;/p&gt;

&lt;p&gt;Anonymous confessions&lt;/p&gt;

&lt;p&gt;Unfiltered controversial takes&lt;/p&gt;

&lt;p&gt;Scarcity creates behavior.&lt;br&gt;
Reputation creates tension.&lt;br&gt;
Influence creates competition.&lt;/p&gt;

&lt;p&gt;Now it’s not just posting. It’s strategy.&lt;/p&gt;

&lt;p&gt;Why I Built It&lt;/p&gt;

&lt;p&gt;I’ve always been fascinated by how platforms shape behavior.&lt;/p&gt;

&lt;p&gt;Reddit has karma.&lt;br&gt;
Twitter has followers.&lt;br&gt;
Stack Overflow has reputation.&lt;/p&gt;

&lt;p&gt;But what if influence wasn’t just social proof — what if it actively changed your capabilities?&lt;/p&gt;

&lt;p&gt;Hypenote is an experiment in that idea.&lt;/p&gt;

&lt;p&gt;Can you design a platform where reputation actually matters?&lt;/p&gt;

&lt;p&gt;Can you create a system that rewards quality over noise?&lt;/p&gt;

&lt;p&gt;I don’t know yet.&lt;/p&gt;

&lt;p&gt;That’s the fun part.&lt;/p&gt;

&lt;p&gt;What I Learned Building It&lt;/p&gt;

&lt;p&gt;Gamification changes everything.&lt;/p&gt;

&lt;p&gt;Scarcity drives engagement.&lt;/p&gt;

&lt;p&gt;Moderation isn’t optional — it’s survival.&lt;/p&gt;

&lt;p&gt;Social systems are psychology engines disguised as apps.&lt;/p&gt;

&lt;p&gt;Building a social platform forces you to think about behavior, incentives, and abuse patterns. You’re not just writing code — you’re designing human interaction.&lt;/p&gt;

&lt;p&gt;What’s Next&lt;/p&gt;

&lt;p&gt;Right now, Hypenote is focused on:&lt;/p&gt;

&lt;p&gt;Core posting and threaded discussions&lt;/p&gt;

&lt;p&gt;Aura mechanics&lt;/p&gt;

&lt;p&gt;Basic moderation and rate limiting&lt;/p&gt;

&lt;p&gt;Dark theme and responsive UI&lt;/p&gt;

&lt;p&gt;Next steps:&lt;/p&gt;

&lt;p&gt;Smarter trending algorithms&lt;/p&gt;

&lt;p&gt;Improved moderation tooling&lt;/p&gt;

&lt;p&gt;Expanding the “circle” system&lt;/p&gt;

&lt;p&gt;Refining Aura weight logic&lt;/p&gt;

&lt;p&gt;This is still early. It’s an evolving system.&lt;/p&gt;

&lt;p&gt;But building your own social media platform from scratch?&lt;br&gt;
That changes how you see the internet.&lt;/p&gt;

&lt;p&gt;Hypenote is live, but it’s actively being improved.&lt;/p&gt;

&lt;p&gt;You might encounter small bugs, UI inconsistencies, or experimental mechanics while I continue upgrading and refining the system. That’s part of building in public.&lt;/p&gt;

&lt;p&gt;Feedback is welcome. Iteration is constant.&lt;/p&gt;

&lt;p&gt;If nothing else, I learned one thing:&lt;/p&gt;

&lt;p&gt;Platforms don’t just host conversations.&lt;br&gt;
They shape them.&lt;/p&gt;

&lt;p&gt;And if you can shape behavior, you’re not building an app.&lt;br&gt;
You’re building a system.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>socialmedia</category>
      <category>discuss</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Built an AI Portfolio You Can Actually Talk To</title>
      <dc:creator>Raven</dc:creator>
      <pubDate>Thu, 08 May 2025 14:30:44 +0000</pubDate>
      <link>https://dev.to/ravvdevv/i-built-an-ai-portfolio-you-can-actually-talk-to-14gc</link>
      <guid>https://dev.to/ravvdevv/i-built-an-ai-portfolio-you-can-actually-talk-to-14gc</guid>
      <description>&lt;p&gt;🚀 Just launched my AI-Powered Developer Portfolio — meet my AI Assistant, your virtual guide through my projects and skills. 🤖💬&lt;/p&gt;

&lt;p&gt;Imagine having an assistant that can walk you through all my latest work, explain my tech stack, and even chat with you like it’s me. That’s what this portfolio does — and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Here’s how it works&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub REST API&lt;/strong&gt; – Pulls live data from my GitHub to keep track of my latest commits, projects, and contributions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pollinations AI API&lt;/strong&gt; – The magic behind the assistant. It processes the GitHub data and answers questions like it’s me, in a conversational way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time Q&amp;amp;A&lt;/strong&gt; – Want to know about my latest project, tech choices, or past work? Ask the AI, and it responds like an assistant who knows everything about me (and my code).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s like having me as an assistant — but smarter, faster, and available 24/7. No need to dig through a static portfolio or outdated resume. Just ask, and the AI delivers. 💡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out my AI Portfolio here&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://ravsalt.github.io/ai-portfolio/" rel="noopener noreferrer"&gt;https://ravsalt.github.io/ai-portfolio/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore the code on GitHub&lt;/strong&gt;&lt;br&gt;
📦 &lt;a href="https://github.com/Ravsalt/ai-portfolio" rel="noopener noreferrer"&gt;https://github.com/Ravsalt/ai-portfolio&lt;/a&gt;&lt;br&gt;
 ‎ ‎ ‎ ‎ ‎ &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Did I Build This?&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI Meets Productivity&lt;/strong&gt;: I wanted a portfolio that’s more than just a digital CV. It’s a real-time assistant that keeps track of my projects, answers questions, and interacts as if I were right there with you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Always Up-to-Date&lt;/strong&gt;: No more worrying about outdated info. The assistant always knows what I'm working on and is synced with my live GitHub activity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Source &amp;amp; Customizable:&lt;/strong&gt; This isn’t a one-off project. Feel free to fork it, remix it, and adapt it to create your own &lt;br&gt;
AI assistant-powered portfolio.&lt;br&gt;
                       ‎ &lt;br&gt;
‎ ‎ ‎ ‎ ‎ ‎ &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💬 I’d Love Your Feedback, Ideas, or Contributions!&lt;/strong&gt;&lt;br&gt;
If you’re curious or want to suggest ways to make it better, hit me up! Fork the repo, improve the AI, or use it as a base to build your own AI assistant portfolio.‎ ‎ ‎ &lt;br&gt;
‎ ‎ &lt;/p&gt;

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