<?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: Anika Jha</title>
    <description>The latest articles on Forem by Anika Jha (@anika_jha_33ae1d9afc69178).</description>
    <link>https://forem.com/anika_jha_33ae1d9afc69178</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%2F3383911%2F3b64e089-ee63-4710-b3fb-1c33e450d6bb.jpg</url>
      <title>Forem: Anika Jha</title>
      <link>https://forem.com/anika_jha_33ae1d9afc69178</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/anika_jha_33ae1d9afc69178"/>
    <language>en</language>
    <item>
      <title>From Skeptic to Builder: My First Two Weeks with Solana</title>
      <dc:creator>Anika Jha</dc:creator>
      <pubDate>Sun, 03 May 2026 09:37:24 +0000</pubDate>
      <link>https://forem.com/anika_jha_33ae1d9afc69178/from-skeptic-to-builder-my-first-two-weeks-with-solana-2ap9</link>
      <guid>https://forem.com/anika_jha_33ae1d9afc69178/from-skeptic-to-builder-my-first-two-weeks-with-solana-2ap9</guid>
      <description>&lt;p&gt;Coming into Solana, I expected blockchain development to feel abstract and overly complicated. I assumed everything would revolve around tokens, wallets, and buzzwords that sounded impressive but didn’t translate well into actual engineering. Week 2 changed that perspective completely.&lt;/p&gt;

&lt;p&gt;The biggest shift happened when I started reading on-chain data directly. Querying a wallet balance through RPC and fetching recent transactions felt surprisingly familiar. It reminded me of calling APIs in traditional development, except the source of truth wasn’t a private backend server; it was a public network anyone could inspect. That was probably the first moment blockchain started to feel real to me.&lt;/p&gt;

&lt;p&gt;Another concept that clicked was Solana’s account model. At first, hearing “everything is an account” sounded vague. But comparing it to databases helped a lot. Wallets, programs, and stored state all exist as accounts with owners, permissions, and data. Instead of rows in tables controlled by one company, the data lives on a distributed ledger. Once I looked at it through that lens, it became much easier to understand.&lt;/p&gt;

&lt;p&gt;I was also surprised by how developer-friendly some of the tooling felt. Using JavaScript to connect to devnet, fetch balances, and build a small browser dashboard made Solana feel less intimidating. It wasn’t some unreachable ecosystem; it was something I could interact with using tools I already know.&lt;/p&gt;

&lt;p&gt;What’s still confusing? Smart contracts/program architecture at scale, Program Derived Addresses, and how advanced apps structure state efficiently. I understand the basics now, but I know there’s another layer of depth ahead.&lt;/p&gt;

&lt;p&gt;What I want to learn next is the write side of blockchain development: sending transactions, interacting with programs, and eventually building full dApps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two weeks in, my biggest takeaway is this: blockchain stopped feeling like hype and started feeling like infrastructure.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>solana</category>
      <category>web3</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>No Logins, No Passwords: How Identity Actually Works on Solana</title>
      <dc:creator>Anika Jha</dc:creator>
      <pubDate>Sun, 26 Apr 2026 16:25:34 +0000</pubDate>
      <link>https://forem.com/anika_jha_33ae1d9afc69178/no-logins-no-passwords-how-identity-actually-works-on-solana-16kb</link>
      <guid>https://forem.com/anika_jha_33ae1d9afc69178/no-logins-no-passwords-how-identity-actually-works-on-solana-16kb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomc66vwg0vuajwv0fapp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomc66vwg0vuajwv0fapp.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re coming from &lt;strong&gt;Web2&lt;/strong&gt;, identity typically refers to &lt;strong&gt;usernames, email addresses, and passwords stored in a database&lt;/strong&gt;. You sign up, log in, and a platform tells the system who you are.&lt;/p&gt;

&lt;p&gt;On &lt;strong&gt;Solana (and blockchains in general)&lt;/strong&gt;, that model doesn’t exist.&lt;/p&gt;

&lt;p&gt;There are &lt;strong&gt;no usernames&lt;/strong&gt;.&lt;br&gt;
There are &lt;strong&gt;no accounts owned by platforms&lt;/strong&gt;.&lt;br&gt;
There is &lt;strong&gt;no central authority verifying identity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;your identity is your keypair.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Identity = A Digital Signature
&lt;/h2&gt;

&lt;p&gt;The way this clicked for me was thinking about real-world signatures.&lt;/p&gt;

&lt;p&gt;When you sign a document:&lt;br&gt;
&lt;strong&gt;Anyone can see your signature&lt;br&gt;
But only you can create it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s what proves you authorised something.&lt;/p&gt;

&lt;p&gt;Solana works the same way, just digitally.&lt;/p&gt;

&lt;p&gt;Your &lt;em&gt;private key&lt;/em&gt; = your ability to sign&lt;br&gt;
Your &lt;em&gt;public key&lt;/em&gt; = what others use to verify that signature&lt;/p&gt;

&lt;p&gt;You don’t log into Solana.&lt;br&gt;
You sign things, and the network verifies that signature.&lt;/p&gt;
&lt;h2&gt;
  
  
  No Usernames, Just Public Keys
&lt;/h2&gt;

&lt;p&gt;Instead of usernames, you get something 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;14grJpemFaf88c8tiVb77W7TYg2W3ir6pfkKz3YjhhZ5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This public key:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is globally unique&lt;/li&gt;
&lt;li&gt;Doesn’t require registration&lt;/li&gt;
&lt;li&gt;Isn’t stored in someone else’s database
You generate it locally, and from that moment on:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That &lt;strong&gt;key represents you everywhere on-chain&lt;/strong&gt;.&lt;br&gt;
No one issues it.&lt;br&gt;
No one can take it away.&lt;/p&gt;

&lt;p&gt;In Web2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Platforms control your account&lt;/li&gt;
&lt;li&gt;They can lock you out&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On Solana:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only your private key can authorise actions&lt;/li&gt;
&lt;li&gt;No company sits in the middle&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ownership is cryptographic, not permission-based.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But there’s a tradeoff:&lt;br&gt;
&lt;strong&gt;Lose your key → lose access&lt;/strong&gt;&lt;br&gt;
No recovery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every Action Is a Signature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send SOL&lt;/li&gt;
&lt;li&gt;Interact with a program&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’re doing one thing: Signing a transaction&lt;br&gt;
The network verifies it and executes the action.&lt;br&gt;
No sessions. No cookies. Just signatures.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Apps Recognise You
&lt;/h2&gt;

&lt;p&gt;Instead of “Sign in,” dApps use:&lt;br&gt;
&lt;strong&gt;“Connect Wallet”&lt;/strong&gt;&lt;br&gt;
They read your public key and use that as your identity.&lt;br&gt;
If needed, you sign a message to prove ownership.&lt;/p&gt;

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

&lt;p&gt;The biggest shift is this:&lt;br&gt;
In Web2, platforms give you identity.&lt;br&gt;
In Solana, you own it.&lt;/p&gt;

&lt;p&gt;Your wallet isn’t just a tool.&lt;br&gt;
It’s your identity and your ability to prove it.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>solana</category>
      <category>web3</category>
      <category>mlh</category>
    </item>
    <item>
      <title>gh-excavate: Unearthing Code with GitHub Copilot</title>
      <dc:creator>Anika Jha</dc:creator>
      <pubDate>Sat, 07 Feb 2026 17:16:59 +0000</pubDate>
      <link>https://forem.com/anika_jha_33ae1d9afc69178/gh-excavate-unearthing-code-with-github-copilot-3cml</link>
      <guid>https://forem.com/anika_jha_33ae1d9afc69178/gh-excavate-unearthing-code-with-github-copilot-3cml</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Stuck with an unknown repository at 2 AM?&lt;br&gt;
Accidentally deleted production code and trying to figure out what it even did?&lt;br&gt;
Inherited a codebase with zero documentation?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We’ve all been there.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;gh-excavate — an AI-powered GitHub CLI extension&lt;/strong&gt; designed for code archaeology.&lt;/p&gt;

&lt;p&gt;It’s a &lt;strong&gt;terminal-native assistant&lt;/strong&gt; that helps you understand not just what code does, but why it exists.&lt;/p&gt;

&lt;p&gt;Instead of manually browsing commits, scanning files, and piecing together context, you run a single command and gh-excavate digs through the repository for you.&lt;/p&gt;

&lt;p&gt;It can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyse a repository or folder to explain its purpose, architecture, and risks&lt;/li&gt;
&lt;li&gt;Trace the life of a file from creation to deletion&lt;/li&gt;
&lt;li&gt;Detect likely dead or forgotten code&lt;/li&gt;
&lt;li&gt;Help investigate “why does this exist?” moments&lt;/li&gt;
&lt;li&gt;Work on both local paths and remote GitHub repositories&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CLI handles the structure.&lt;br&gt;
Git handles the history.&lt;br&gt;
GitHub Copilot is the brain and soul of the operation, aka &lt;strong&gt;the reasoning engine&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Copilot synthesises context, interprets intent, and transforms raw code and git history into &lt;strong&gt;human-level explanations directly in the terminal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;gh-excavate&lt;/em&gt; &lt;strong&gt;doesn’t just read code.It interprets it&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Repository:&lt;br&gt;
&lt;strong&gt;[gh-excavate]&lt;/strong&gt;(&lt;a href="https://github.com/Anika-Jha/gh-excavate" rel="noopener noreferrer"&gt;https://github.com/Anika-Jha/gh-excavate&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;gh-excavate is a GitHub CLI extension. Once installed, it runs directly inside your terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe4916ca8rzc5iq89yj7f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe4916ca8rzc5iq89yj7f.png" alt=" " width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw62mmy1d5xqg5fblo1bf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw62mmy1d5xqg5fblo1bf.png" alt=" " width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commands&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi1nuj4zjp6ceru2i16s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi1nuj4zjp6ceru2i16s.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example runs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faisoei2eq8xj5kg80k53.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faisoei2eq8xj5kg80k53.png" alt=" " width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnh08gckt9pd2gwrbcjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnh08gckt9pd2gwrbcjt.png" alt=" " width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49cx14rgyxf5ckq9lpjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49cx14rgyxf5ckq9lpjv.png" alt=" " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42onvg8dhmma82292mej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42onvg8dhmma82292mej.png" alt=" " width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot CLI fundamentally changed how I approached building this project.&lt;/p&gt;

&lt;p&gt;Instead of relying on brittle heuristics and heavy parsing logic alone, I focused on designing meaningful prompts, extracting the right context from Git history, and structuring the CLI intelligently — while Copilot handled deeper reasoning.&lt;/p&gt;

&lt;p&gt;Copilot became:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The interpretation engine&lt;/li&gt;
&lt;li&gt;The architectural analyst&lt;/li&gt;
&lt;li&gt;The technical historian&lt;/li&gt;
&lt;li&gt;The context synthesiser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;gh-excavate gathers the evidence&lt;/strong&gt; — commit logs, file history, structural context. &lt;strong&gt;Copilot CLI connects the dots&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The most important realisation during development was this: the real problem isn’t accessing code — it’s understanding intent. &lt;strong&gt;Git tells you what changed. Copilot helps reason about why&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Working directly in the terminal with Copilot felt natural and developer-native. I could validate Git commands, reason about edge cases like file deletions, and refine workflows without leaving the CLI.&lt;/p&gt;

&lt;p&gt;This project isn’t just about automation.&lt;br&gt;
It’s about augmenting developer cognition.&lt;/p&gt;

&lt;p&gt;Because when you're lost in a codebase, you don’t need autocomplete.&lt;/p&gt;

&lt;p&gt;You need understanding.&lt;/p&gt;

&lt;p&gt;Code ages. Context fades.&lt;br&gt;
gh-excavate helps bring it back.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;** When the git log gets cryptic, and production is on fire — excavate. Because “Who wrote this?” is not a strategy.**&lt;br&gt;
**&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
