<?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: Mariam Tariq</title>
    <description>The latest articles on DEV Community by Mariam Tariq (@buildsby_mariam).</description>
    <link>https://dev.to/buildsby_mariam</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%2F4057543%2Fd94cfe1b-50b1-4825-b2b0-82777c46620a.jpg</url>
      <title>DEV Community: Mariam Tariq</title>
      <link>https://dev.to/buildsby_mariam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buildsby_mariam"/>
    <language>en</language>
    <item>
      <title>I Turned Your GitHub Profile Into a Detective Case File (And the Verdict Might Hurt)</title>
      <dc:creator>Mariam Tariq</dc:creator>
      <pubDate>Sat, 01 Aug 2026 12:36:07 +0000</pubDate>
      <link>https://dev.to/buildsby_mariam/i-turned-your-github-profile-into-a-detective-case-file-and-the-verdict-might-hurt-2o1k</link>
      <guid>https://dev.to/buildsby_mariam/i-turned-your-github-profile-into-a-detective-case-file-and-the-verdict-might-hurt-2o1k</guid>
      <description>&lt;p&gt;Your GitHub profile is a public confession booth.&lt;/p&gt;

&lt;p&gt;Repos count. Followers. That bio you wrote at 1 a.m. and never fixed. Languages you claim to "love" while secretly opening node_modules like a crime scene every Tuesday.&lt;/p&gt;

&lt;p&gt;I kept staring at those numbers and thinking: this shouldn't look like a résumé. It should look like a case file.&lt;/p&gt;

&lt;p&gt;So I built Commit Crime Scene — a free, silly little tool that takes a GitHub username and stamps out a detective dossier: charges, a chaos score, a verdict class, and a downloadable PNG you can drop into Slack like evidence.&lt;/p&gt;

&lt;p&gt;No login. No OAuth. No "connect your account so we can harvest your soul." Just a username and the public GitHub API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The setup&lt;/strong&gt;&lt;br&gt;
You type a handle. The precinct goes to work.&lt;/p&gt;

&lt;p&gt;Behind the yellow tape, the page:&lt;/p&gt;

&lt;p&gt;Fetches the public user profile&lt;br&gt;
Pulls recent public repos (up to 100)&lt;br&gt;
Skims languages, forks, archive dust, follower ratios, account age&lt;br&gt;
Invents a completely unserious legal case against you&lt;br&gt;
Thirty seconds later you've got a paper-looking dossier: mugshot (your avatar), case ID, "charges," chaos score, languages of interest, and a rubber-stamp verdict that either says CASE CLOSED or — worse — STILL AT LARGE.&lt;/p&gt;

&lt;p&gt;It's theater. Delightful theater. But it's theater powered by your actual public stats, so the jokes land a little too close to home.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample charges (yes, these are real outputs)&lt;/strong&gt;&lt;br&gt;
Depending on the profile, you might get hit with things like:&lt;/p&gt;

&lt;p&gt;Operating with TypeScript, JavaScript, Python in broad daylight&lt;br&gt;
Flooding the evidence locker with 87 public repos&lt;br&gt;
Recruiting 240 witnesses (followers) — possible cult&lt;br&gt;
No bio. Classic. Denies everything.&lt;br&gt;
Suspected collaboration with non-human accomplices (looking at you, AI repo names)&lt;br&gt;
If your bio contains TODO, WIP, hack, or broken… the tool notices. The statute of limitations does not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict classes (prepare your ego)&lt;/strong&gt;&lt;br&gt;
The classification system is not peer-reviewed. It is, however, emotionally accurate:&lt;/p&gt;

&lt;p&gt;Serial Shipper — you open repos the way other people open tabs&lt;br&gt;
PR Ghost — many eyes, few commits in the public square&lt;br&gt;
Weekend Bandit — high chaos, midweek alibis thin&lt;br&gt;
Dependency Hoarder — forks everywhere; originals unclear&lt;br&gt;
AI Co-Conspirator — your bio/repos scream LLM energy&lt;br&gt;
Cold Case Committer — years on the beat, suspiciously calm chaos score&lt;br&gt;
Package Deal Felon — JS/TS/Python + elevated chaos = indictment&lt;br&gt;
Suspect at Large — light paper trail; detective raises an eyebrow&lt;br&gt;
There are a few more in the pool — Commit Scrawler, Branch Burglar, Merge Conflict Artist — because sometimes the algorithm just wants you roasted gently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chaos score: the fake science section&lt;/strong&gt;&lt;br&gt;
There's a 7–99 "chaos" number. It's not ML. It's not astrology. It's a cheeky blend of:&lt;/p&gt;

&lt;p&gt;repos-per-year velocity&lt;br&gt;
language variety&lt;br&gt;
forks + archived repos&lt;br&gt;
follower weight&lt;br&gt;
whether you bothered to write a bio (no bio = slightly more suspicious, obviously)&lt;br&gt;
Is it rigorous? Absolutely not.&lt;br&gt;
Is it fun to compare with your teammates? Dangerously yes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it actually works (for the curious)&lt;/strong&gt;&lt;br&gt;
Stack-wise it's intentionally boring — in a good way:&lt;/p&gt;

&lt;p&gt;Plain HTML / Tailwind / a little vanilla JS&lt;br&gt;
GitHub REST API from the browser (/users/{login} + /users/{login}/repos)&lt;br&gt;
Deterministic-ish hashing for case IDs and a couple of fallback verdicts&lt;br&gt;
html2canvas to export the dossier as a PNG&lt;br&gt;
Everything runs client-side. Your token never leaves your machine because… there is no token. Unauthenticated public API only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate limits (the plot twist)&lt;/strong&gt;&lt;br&gt;
GitHub's unauthenticated rate limit is the one real villain in this story. If the precinct gets rate-limited (403/429), the tool doesn't die quietly — it offers a demo case so you can still screenshot, share, and keep the bit alive.&lt;/p&gt;

&lt;p&gt;There's also a shareable URL shape (?u=yourhandle) so you can send someone a deep link and make them face their own verdict in public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why build a toy like this?&lt;/strong&gt;&lt;br&gt;
Because shipping doesn't have to be solemn.&lt;/p&gt;

&lt;p&gt;Developers already live inside dashboards, CI red builds, and "just one more dependency." A weekend project that turns contribution graphs into noir stationery is a palate cleanser — and a surprisingly good conversation starter in Discord / team chats.&lt;/p&gt;

&lt;p&gt;Also: if a tool makes someone laugh and click "download PNG," you've accidentally designed a viral loop. Yellow crime-scene tape helps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it on yourself (and then on your manager)&lt;/strong&gt;&lt;br&gt;
Open Commit Crime Scene&lt;br&gt;
Enter a GitHub username&lt;br&gt;
Read the charges out loud for maximum courtroom energy&lt;br&gt;
Download the PNG&lt;br&gt;
Drop it in a channel with zero context&lt;br&gt;
If you get Serial Shipper, wear it.&lt;br&gt;
If you get PR Ghost, we both know what you did.&lt;br&gt;
If you get AI Co-Conspirator, welcome to 2026.&lt;/p&gt;

&lt;p&gt;👉 Investigate a profile: shipnative-landing.vercel.app/crime-scene&lt;/p&gt;

&lt;p&gt;Built for fun under the ShipNative umbrella (an Expo / React Native AI starter kit + free setup checklist for people who actually want to ship apps). The crime scene tool is free, standalone, and not affiliated with GitHub — just a silly dossier generator for public profiles.&lt;/p&gt;

&lt;p&gt;Now go file a case. The evidence locker is open.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>github</category>
      <category>webdev</category>
      <category>fun</category>
    </item>
    <item>
      <title>How I stopped rebuilding the same Expo AI app foundation every time</title>
      <dc:creator>Mariam Tariq</dc:creator>
      <pubDate>Sat, 01 Aug 2026 06:36:01 +0000</pubDate>
      <link>https://dev.to/buildsby_mariam/how-i-stopped-rebuilding-the-same-expo-ai-app-foundation-every-time-535p</link>
      <guid>https://dev.to/buildsby_mariam/how-i-stopped-rebuilding-the-same-expo-ai-app-foundation-every-time-535p</guid>
      <description>&lt;p&gt;Every time I started a new Expo AI app, I ran into the same problem.&lt;/p&gt;

&lt;p&gt;I wanted to build the product… but I spent the first week rebuilding the foundation instead.&lt;/p&gt;

&lt;p&gt;Auth. Navigation. Chat UI. Theme. Paywall. Styling config.&lt;br&gt;
Again and again.&lt;/p&gt;

&lt;p&gt;The real bottleneck wasn’t the idea&lt;br&gt;
The idea was usually clear.&lt;br&gt;
The slow part was everything around it:&lt;/p&gt;

&lt;p&gt;Setting up Expo Router the right way&lt;br&gt;
Wiring Supabase auth with persistent sessions&lt;br&gt;
Building a chat UI that supports streaming responses&lt;br&gt;
Adding light/dark mode that actually saves&lt;br&gt;
Creating a paywall that can later connect to real in-app purchases&lt;br&gt;
That setup can easily take 40+ hours — before you ship a single real feature.&lt;/p&gt;

&lt;p&gt;What I decided to do&lt;br&gt;
I stopped treating boilerplate as disposable.&lt;/p&gt;

&lt;p&gt;I packaged the stack I kept rebuilding into a reusable starter called ShipNative.&lt;/p&gt;

&lt;p&gt;It’s a TypeScript Expo kit with:&lt;/p&gt;

&lt;p&gt;Expo Router (file-based routing + auth redirects)&lt;br&gt;
NativeWind v4 for styling&lt;br&gt;
Supabase authentication with Secure Store&lt;br&gt;
Gemini-powered AI chat with streaming UI&lt;br&gt;
RevenueCat-ready paywall (monthly/annual + restore)&lt;br&gt;
Demo mode so you can explore without API keys&lt;br&gt;
Persisted light/dark theme&lt;br&gt;
A .cursorrules file for cleaner AI-assisted development&lt;br&gt;
Why demo mode matters&lt;br&gt;
I didn’t want a starter that only works after you configure five services.&lt;/p&gt;

&lt;p&gt;With demo mode, you can open the app and immediately test:&lt;/p&gt;

&lt;p&gt;login/register screens&lt;br&gt;
AI chat streaming behavior&lt;br&gt;
paywall upgrade/restore flow&lt;br&gt;
Then add your Supabase, Gemini, and RevenueCat keys when you’re ready for production.&lt;/p&gt;

&lt;p&gt;Who it’s for&lt;br&gt;
ShipNative is for builders who want to move faster:&lt;/p&gt;

&lt;p&gt;indie hackers launching AI mobile apps&lt;br&gt;
freelancers who don’t want to bill clients for setup week&lt;br&gt;
developers who want a clean architecture they can customize&lt;br&gt;
It’s not a no-code builder, and it’s not a finished consumer app.&lt;br&gt;
It’s the foundation — so you can focus on your product.&lt;/p&gt;

&lt;p&gt;Quick start&lt;br&gt;
npm install&lt;br&gt;
cp .env.example .env&lt;br&gt;
npx expo start&lt;br&gt;
If you want the full kit&lt;br&gt;
I published it here:&lt;/p&gt;

&lt;p&gt;Product: &lt;a href="https://mariamtariq72.gumroad.com/l/shipnative" rel="noopener noreferrer"&gt;https://mariamtariq72.gumroad.com/l/shipnative&lt;/a&gt;&lt;br&gt;
Landing page: &lt;a href="https://shipnative-landing.vercel.app" rel="noopener noreferrer"&gt;https://shipnative-landing.vercel.app&lt;/a&gt;&lt;br&gt;
Quick question&lt;br&gt;
What slows you down most when starting a new Expo app?&lt;/p&gt;

&lt;p&gt;Auth, navigation, AI chat UI, paywall/IAP, or styling setup?&lt;/p&gt;

&lt;p&gt;I’d love to hear what you’re stuck on — I’m improving the starter based on real feedback.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>typescript</category>
      <category>saas</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
