<?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: Make-it.run</title>
    <description>The latest articles on DEV Community by Make-it.run (@makeitrun).</description>
    <link>https://dev.to/makeitrun</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%2F3853090%2F36bb8ce0-5402-42f2-bf9c-60bf3f6321d0.jpeg</url>
      <title>DEV Community: Make-it.run</title>
      <link>https://dev.to/makeitrun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/makeitrun"/>
    <language>en</language>
    <item>
      <title>Reduce Expo Monorepo CI Build Time</title>
      <dc:creator>Make-it.run</dc:creator>
      <pubDate>Thu, 17 Sep 2026 10:14:54 +0000</pubDate>
      <link>https://dev.to/makeitrun/reduce-expo-monorepo-ci-build-time-2hna</link>
      <guid>https://dev.to/makeitrun/reduce-expo-monorepo-ci-build-time-2hna</guid>
      <description>&lt;p&gt;Expo monorepo CI gets slow and flaky for the same reason: we treat all caches as one thing. Then builds run from the repo root, one app reuses another app’s Metro state, or native cache is blamed for a problem in dependency install. The result is a pipeline that looks fast until it starts failing in ways you cannot trust.&lt;/p&gt;

&lt;p&gt;The fix is to give each layer a clear boundary. Run EAS commands from the app directory, not the monorepo root, so the build uses the right app config and the right scope. Restore the pnpm store before &lt;code&gt;pnpm install&lt;/code&gt;, because that cache is about dependency content, not app behavior. Keep Metro cache separate for each app with an explicit &lt;code&gt;cacheVersion&lt;/code&gt;, because shared transform cache can leak across apps in a monorepo. Then treat EAS cache as a separate native layer, with restore and save controls that you can turn on or off without disturbing pnpm or Metro.&lt;/p&gt;

&lt;p&gt;The useful mental model is simple: every cache needs both a boundary and an owner. If you know what defines the cache and who is allowed to write it, build failures become easier to locate and cache speedups stay safe.&lt;/p&gt;

&lt;p&gt;The cost is more explicit setup. You must version keys on purpose, and you cannot share cache state loosely across apps or untrusted CI jobs.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://make-it.run/blog/reduce-expo-monorepo-ci-build-time?utm_source=dev.to"&gt;Read the full article on make-it.run →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>expo</category>
      <category>monorepo</category>
      <category>cibuildtime</category>
      <category>pnpm</category>
    </item>
    <item>
      <title>Why we built an offline study app generator instead of another course platform</title>
      <dc:creator>Make-it.run</dc:creator>
      <pubDate>Mon, 10 Aug 2026 09:21:57 +0000</pubDate>
      <link>https://dev.to/makeitrun/why-we-built-an-offline-study-app-generator-instead-of-another-course-platform-403i</link>
      <guid>https://dev.to/makeitrun/why-we-built-an-offline-study-app-generator-instead-of-another-course-platform-403i</guid>
      <description>&lt;p&gt;Study materials often fail for a simple reason: they stop at content. A PDF or note set can explain a subject, but it cannot react when someone gets a topic wrong, forgets it a day later, or needs practice shaped around weak spots. For technical learning, that means people end up reviewing passively and building their own study loop by hand.&lt;/p&gt;

&lt;p&gt;The useful shift here is to treat the output as software, not as a document. Instead of generating notes, the generator produces a small study app with topic guides, quizzes, practice exams, instant feedback, and a record of mistakes. That matters because the learning plan is built into the artifact itself. The app can branch, score, revisit weak areas, and make progress feel continuous rather than linear.&lt;/p&gt;

&lt;p&gt;The other key choice is keeping that progress local. Streaks, quiz history, and weak spots are stored in browser-side SQLite, so the app still works offline and does not depend on accounts or a hosted backend. That makes the result portable and easier to own: it is just a static app folder, not a course platform someone is trapped inside.&lt;/p&gt;

&lt;p&gt;The trade-off is that offline-first asks for stricter design. You avoid sync problems by avoiding sync, and using SQLite in the browser is more structured than throwing JSON into storage.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://make-it.run/blog/launching-learn-anything-on-make-it-run?utm_source=dev.to"&gt;Read the full article on make-it.run →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>offlinestudyapp</category>
      <category>studyappgenerator</category>
      <category>spacedrepetition</category>
      <category>adaptivelearning</category>
    </item>
  </channel>
</rss>
