mirror of
https://github.com/prdlk/website.git
synced 2026-08-02 17:31:41 +00:00
feat: revamp 'Uses' page with blockchain and dev tools
This commit is contained in:
@@ -5,6 +5,7 @@ data
|
||||
node_modules
|
||||
.pnp
|
||||
.pnp.js
|
||||
tmp/
|
||||
|
||||
# testing
|
||||
coverage
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is a personal portfolio/blog website built with Next.js 13.4.16 (App Router), TypeScript, and Tailwind CSS. It's based on the Tailwind UI "Spotlight" template and features a modern, responsive design with dark mode support.
|
||||
|
||||
## Essential Commands
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Run development server (http://localhost:3000)
|
||||
npm run dev
|
||||
|
||||
# Build for production
|
||||
npm run build
|
||||
|
||||
# Start production server
|
||||
npm start
|
||||
|
||||
# Run linting
|
||||
npm run lint
|
||||
|
||||
# Type checking (via build process)
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Architecture & Key Patterns
|
||||
|
||||
### Directory Structure
|
||||
- **`/src/app/`** - Next.js App Router pages and layouts
|
||||
- Each page is in its own directory with `page.tsx` or `page.mdx`
|
||||
- Articles are MDX files in subdirectories under `/articles/`
|
||||
- RSS feed generation at `/feed.xml/`
|
||||
|
||||
- **`/src/components/`** - Reusable React components
|
||||
- Layout components extend from `Layout.tsx`
|
||||
- All components use TypeScript with proper type definitions
|
||||
- Components use Tailwind CSS classes for styling
|
||||
|
||||
- **`/src/lib/`** - Utility functions
|
||||
- `articles.ts` - Functions for loading and managing MDX articles
|
||||
- `formatDate.ts` - Date formatting utilities
|
||||
|
||||
### Content Management
|
||||
- Articles are written in MDX format in `/src/app/articles/[slug]/page.mdx`
|
||||
- Each article directory can contain images alongside the MDX file
|
||||
- Article metadata is defined in the MDX frontmatter
|
||||
- The `ArticleLayout` component wraps all article content
|
||||
|
||||
### Styling Approach
|
||||
- Tailwind CSS utility classes for all styling
|
||||
- Dark mode support via `next-themes` package
|
||||
- Typography plugin for prose content styling
|
||||
- Custom Tailwind configuration in `tailwind.config.js`
|
||||
- Code syntax highlighting with Prism CSS
|
||||
|
||||
### TypeScript Configuration
|
||||
- Strict mode enabled
|
||||
- Path alias `@/*` maps to `./src/*`
|
||||
- All components and utilities should have proper TypeScript types
|
||||
|
||||
### Important Files
|
||||
- `next.config.mjs` - Next.js configuration with MDX support
|
||||
- `tailwind.config.js` - Tailwind CSS customization
|
||||
- `.env.local` - Must set `NEXT_PUBLIC_SITE_URL` for production
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Adding New Pages
|
||||
1. Create a new directory under `/src/app/`
|
||||
2. Add a `page.tsx` file with proper TypeScript types
|
||||
3. Use the `SimpleLayout` or custom layout components
|
||||
4. Follow existing page patterns for consistency
|
||||
|
||||
### Adding New Articles
|
||||
1. Create a new directory under `/src/app/articles/[article-name]/`
|
||||
2. Add a `page.mdx` file with frontmatter including title, description, author, and date
|
||||
3. Place any images in the same directory
|
||||
4. Articles automatically appear in the articles list and RSS feed
|
||||
|
||||
### Component Development
|
||||
- Always use TypeScript with proper type definitions
|
||||
- Follow existing component patterns for props and structure
|
||||
- Use Tailwind CSS classes; avoid inline styles
|
||||
- Components should be reusable and properly abstracted
|
||||
|
||||
### Environment Setup
|
||||
Before running the project, create a `.env.local` file:
|
||||
```
|
||||
NEXT_PUBLIC_SITE_URL=https://your-domain.com
|
||||
```
|
||||
|
||||
## No Testing Framework
|
||||
This project does not currently have a testing framework configured. Consider adding Jest and React Testing Library if test coverage is needed.
|
||||
+26
-25
@@ -51,7 +51,7 @@ function MailIcon(props: React.ComponentPropsWithoutRef<'svg'>) {
|
||||
export const metadata: Metadata = {
|
||||
title: 'About',
|
||||
description:
|
||||
'I’m Prad Nukala. I live in New York City, where I design the future.',
|
||||
'I'm Prad Nukala, founder of Sonr and blockchain identity pioneer. Building the future of decentralized identity in New York City.',
|
||||
}
|
||||
|
||||
export default function About() {
|
||||
@@ -70,56 +70,57 @@ export default function About() {
|
||||
</div>
|
||||
<div className="lg:order-first lg:row-span-2">
|
||||
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
|
||||
I’m Prad Nukala. I live in NYC, where im building a better Internet.
|
||||
I'm Prad Nukala. I live in New York City, where I'm building the future of digital identity.
|
||||
</h1>
|
||||
<div className="mt-6 space-y-7 text-base text-zinc-600 dark:text-zinc-400">
|
||||
<p>
|
||||
I’ve loved making things for as long as I can remember, and wrote
|
||||
my first program when I was 10 years old, just two weeks after my
|
||||
dad brought home the brand new iMac that I taught
|
||||
myself Objective-C on.
|
||||
I've been passionate about technology since the introduction of the App Store, where I made one
|
||||
of the first 5,000 apps at age 12. This early start in mobile development shaped my understanding
|
||||
of how technology can empower individuals and sparked my lifelong commitment to building tools that
|
||||
put users first.
|
||||
</p>
|
||||
<p>
|
||||
The only thing I loved more than computers as a kid was space.
|
||||
When I was 8, I climbed the 40-foot oak tree at the back of our
|
||||
yard while wearing my older sister’s motorcycle helmet, counted
|
||||
down from three, and jumped — hoping the tree was tall enough that
|
||||
with just a bit of momentum I’d be able to get to orbit.
|
||||
My journey in blockchain began with a simple realization: the internet's identity layer is fundamentally
|
||||
broken. Users have no control over their digital selves, leading to privacy breaches, data exploitation,
|
||||
and a web that serves corporations over people. This inspired me to found Sonr in 2020, where we're
|
||||
building an IBC-enabled blockchain specifically designed for decentralized identity.
|
||||
</p>
|
||||
<p>
|
||||
I spent the next few summers indoors working on a rocket design,
|
||||
while I recovered from the multiple surgeries it took to fix my
|
||||
badly broken legs. It took nine iterations, but when I was 15 I
|
||||
sent my dad’s Blackberry into orbit and was able to transmit a
|
||||
photo back down to our family computer from space.
|
||||
As a W3C Working Group Member for DIDs, WebAuthn, and WASM, I'm actively shaping the standards that
|
||||
will define the future of digital identity. My technical contributions speak to my commitment - with over
|
||||
6,000 GitHub contributions from 2021-2023, I was ranked as the 4th most active contributor worldwide.
|
||||
Before Sonr, I self-developed over 10 projects that garnered more than 1 million downloads combined.
|
||||
</p>
|
||||
<p>
|
||||
Today, I’m the founder of Sonr, where we’re working on
|
||||
reinventing the way we connect with each other online. We focus on the basics
|
||||
— like privacy, security, and UX, in order to maximize everyones protection on the web.
|
||||
Today, I lead Sonr with a clear mission: to create a peer-to-peer identity and asset management system
|
||||
that leverages DID documents, WebAuthn, and IPFS. We've raised $4.7M in funding and onboarded over 120
|
||||
first-time blockchain developers to our platform. Our technology features passkey-based user accounts,
|
||||
DKLS-MPC powered wallets (no seed phrases), and lightning-fast 600ms wallet generation. I believe the
|
||||
future of the internet is one where users own their identity, control their data, and interact on their
|
||||
own terms.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="lg:pl-20">
|
||||
<ul role="list">
|
||||
<SocialLink href="#" icon={TwitterIcon}>
|
||||
<SocialLink href="https://twitter.com/thisisprad" icon={TwitterIcon}>
|
||||
Follow on Twitter
|
||||
</SocialLink>
|
||||
<SocialLink href="#" icon={MediumIcon} className="mt-4">
|
||||
<SocialLink href="https://medium.com/@prnk28" icon={MediumIcon} className="mt-4">
|
||||
Follow on Medium
|
||||
</SocialLink>
|
||||
<SocialLink href="#" icon={GitHubIcon} className="mt-4">
|
||||
<SocialLink href="https://github.com/prnk28" icon={GitHubIcon} className="mt-4">
|
||||
Follow on GitHub
|
||||
</SocialLink>
|
||||
<SocialLink href="#" icon={LinkedInIcon} className="mt-4">
|
||||
<SocialLink href="https://linkedin.com/in/pradn" icon={LinkedInIcon} className="mt-4">
|
||||
Follow on LinkedIn
|
||||
</SocialLink>
|
||||
<SocialLink
|
||||
href="mailto:prad@sonr.io"
|
||||
href="mailto:prad.nukala@sonr.io"
|
||||
icon={MailIcon}
|
||||
className="mt-8 border-t border-zinc-100 pt-8 dark:border-zinc-700/40"
|
||||
>
|
||||
prad@sonr.io
|
||||
prad.nukala@sonr.io
|
||||
</SocialLink>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
|
||||
export const article = {
|
||||
author: 'Prad Nukala',
|
||||
date: '2024-01-15',
|
||||
title: 'Building Sonr: The Journey to Decentralized Identity',
|
||||
description:
|
||||
'How we're creating an IBC-enabled blockchain that puts users in control of their digital identity, eliminating passwords and seed phrases while maintaining true self-sovereignty.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
When I founded Sonr in 2020, I had a simple but ambitious vision: create a world where people truly own their digital identity. After years of watching data breaches, privacy violations, and the centralization of user data, I knew there had to be a better way.
|
||||
|
||||
## The Problem with Digital Identity Today
|
||||
|
||||
The internet wasn't designed with identity in mind. We've patched together solutions using usernames, passwords, and centralized databases, but these approaches are fundamentally broken:
|
||||
|
||||
- **No User Control**: Your identity lives on servers you don't control
|
||||
- **Privacy Violations**: Companies monetize your personal data without consent
|
||||
- **Security Nightmares**: Password breaches affect billions of users annually
|
||||
- **Platform Lock-in**: Your identity is fragmented across countless services
|
||||
|
||||
## Enter Sonr: A New Paradigm
|
||||
|
||||
Sonr is an IBC-enabled blockchain specifically designed for decentralized identity. We're not just building another blockchain - we're creating the identity layer the internet should have had from the beginning.
|
||||
|
||||
### Key Innovations
|
||||
|
||||
1. **Passkey-Based Authentication**: No more passwords. Users authenticate with biometrics or device-based keys, making phishing virtually impossible.
|
||||
|
||||
2. **No Seed Phrases**: Using DKLS-MPC (Distributed Key Lifetime Security - Multi-Party Computation), we've eliminated the need for users to manage complex seed phrases while maintaining true ownership.
|
||||
|
||||
3. **Lightning-Fast Performance**: 600ms wallet generation means users can onboard as quickly as traditional web apps.
|
||||
|
||||
4. **IBC Integration**: As part of the Cosmos ecosystem, Sonr identities work seamlessly across multiple blockchains.
|
||||
|
||||
## Technical Architecture
|
||||
|
||||
At its core, Sonr leverages several cutting-edge technologies:
|
||||
|
||||
```typescript
|
||||
// Example: Creating a Sonr identity
|
||||
const identity = await Sonr.createIdentity({
|
||||
authentication: 'passkey',
|
||||
storage: 'ipfs',
|
||||
recovery: 'social'
|
||||
});
|
||||
|
||||
// The user now has a DID (Decentralized Identifier)
|
||||
console.log(identity.did); // did:sonr:abc123...
|
||||
```
|
||||
|
||||
### DID Documents
|
||||
Every Sonr user has a DID document stored on-chain that contains their public keys and service endpoints. This document is the source of truth for their identity.
|
||||
|
||||
### IPFS Integration
|
||||
User data is stored on IPFS, ensuring it's distributed, permanent, and under user control. Only the user's keys can decrypt their personal information.
|
||||
|
||||
### UCAN Tokens
|
||||
We use User Controlled Authorization Networks (UCAN) for fine-grained access control. Users can delegate specific permissions without sharing their private keys.
|
||||
|
||||
## Real-World Impact
|
||||
|
||||
Since launching, we've:
|
||||
- Raised $4.7M in funding to accelerate development
|
||||
- Onboarded over 120 first-time blockchain developers
|
||||
- Created tools that make blockchain accessible to mainstream developers
|
||||
- Built partnerships across the Cosmos ecosystem
|
||||
|
||||
## The Road Ahead
|
||||
|
||||
We're currently preparing for our public testnet launch, with mainnet coming soon. Our goal is to onboard the next billion users to Web3 - not by forcing them to understand blockchain, but by making it invisible.
|
||||
|
||||
The future of the internet is one where:
|
||||
- Users own their identity and data
|
||||
- Privacy is default, not optional
|
||||
- Security doesn't sacrifice usability
|
||||
- Interoperability is built-in, not bolted-on
|
||||
|
||||
## Join the Revolution
|
||||
|
||||
If you're a developer interested in building on Sonr, check out our [documentation](https://docs.sonr.io) and [GitHub](https://github.com/sonr-io). We're always looking for contributors who share our vision of a more equitable internet.
|
||||
|
||||
The identity layer of the internet is broken, but together, we can fix it. Welcome to Sonr - where your identity truly belongs to you.
|
||||
@@ -1,91 +0,0 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
import Image from 'next/image'
|
||||
import designSystem from './planetaria-design-system.png'
|
||||
|
||||
export const article = {
|
||||
author: 'Adam Wathan',
|
||||
date: '2023-09-05',
|
||||
title: 'Crafting an Identity system for a Multiplanetary future',
|
||||
description:
|
||||
'Most companies try to stay ahead of the curve when it comes to visual design, but for Sonr we needed to create a brand that would still inspire us 100 years from now when humanity has spread across our entire solar system.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
Most companies try to stay ahead of the curve when it comes to visual design, but for Sonr we needed to create a brand that would still inspire us 100 years from now when humanity has spread across our entire solar system.
|
||||
|
||||
<Image src={designSystem} alt="" />
|
||||
|
||||
I knew that to get it right I was going to have to replicate the viewing conditions of someone from the future, so I grabbed my space helmet from the closet, created a new Figma document, and got to work.
|
||||
|
||||
## Sermone fata
|
||||
|
||||
Lorem markdownum, bracchia in redibam! Terque unda puppi nec, linguae posterior
|
||||
in utraque respicere candidus Mimasque formae; quae conantem cervice. Parcite
|
||||
variatus, redolentia adeunt. Tyrioque dies, naufraga sua adit partibus celanda
|
||||
torquere temptata, erit maneat et ramos, [iam](#) ait dominari
|
||||
potitus! Tibi litora matremque fumantia condi radicibus opusque.
|
||||
|
||||
Deus feram verumque, fecit, ira tamen, terras per alienae victum. Mutantur
|
||||
levitate quas ubi arcum ripas oculos abest. Adest [commissaque
|
||||
victae](#) in gemitus nectareis ire diva
|
||||
dotibus ora, et findi huic invenit; fatis? Fractaque dare superinposita
|
||||
nimiumque simulatoremque sanguine, at voce aestibus diu! Quid veterum hausit tu
|
||||
nil utinam paternos ima, commentaque.
|
||||
|
||||
```c
|
||||
exbibyte_wins = gigahertz(3);
|
||||
grayscaleUtilityClient = control_uat;
|
||||
pcmciaHibernate = oop_virus_console(text_mountain);
|
||||
if (stateWaisFirewire >= -2) {
|
||||
jfs = 647065 / ldapVrml(tutorialRestore, 85);
|
||||
metal_runtime_parse = roomComputingResolution - toolbarUpload +
|
||||
ipx_nvram_open;
|
||||
} else {
|
||||
maximizeSidebar *= suffix_url(flatbed + 2, requirements_encoding_node +
|
||||
only_qbe_media, minicomputer);
|
||||
}
|
||||
```
|
||||
|
||||
Aere repetiti cognataque natus. Habebat vela solutis saepe munus nondum adhuc
|
||||
oscula nomina pignora corpus deserat.
|
||||
|
||||
## Lethaei Pindumve me quae dinumerat Pavor
|
||||
|
||||
Idem se saxa fata pollentibus geminos; quos pedibus. Est urnis Herses omnes nec
|
||||
divite: et ille illa furit sim verbis Cyllenius.
|
||||
|
||||
1. Captus inpleverunt collo
|
||||
2. Nec nam placebant
|
||||
3. Siquos vulgus
|
||||
4. Dictis carissime fugae
|
||||
5. A tacitos nulla viginti
|
||||
|
||||
Ungues fistula annoso, ille addit linoque motatque uberior verso
|
||||
[rubuerunt](#) confine desuetaque. _Sanguine_ anteit
|
||||
emerguntque expugnacior est pennas iniqui ecce **haeret** genus: peiora imagine
|
||||
fossas Cephisos formosa! Refugitque amata [refelli](#)
|
||||
supplex. Summa brevis vetuere tenebas, hostes vetantis, suppressit, arreptum
|
||||
regna. Postquam conpescit iuvenis habet corpus, et erratica, perdere, tot mota
|
||||
ars talis.
|
||||
|
||||
```c
|
||||
digital.webcam_dual_frequency = webmasterMms;
|
||||
if (5 + language_standalone_google) {
|
||||
cc_inbox_layout *= file_character;
|
||||
task += p;
|
||||
lockUnicode += enterprise_monochrome(tokenFunctionPersonal, keyVirtual,
|
||||
adf);
|
||||
}
|
||||
windows_binary_esports(87734, array(restoreRomTopology, adRaw(407314),
|
||||
dongleBashThumbnail), interpreter);
|
||||
```
|
||||
|
||||
Sit volat naturam; motu Cancri. Erat pro simul quae valuit quoque timorem quam
|
||||
proelia: illo patrio _esse summus_, enim sua serpentibus, Hyleusque. Est coniuge
|
||||
recuso; refert Coroniden ignotos manat, adfectu.
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB |
@@ -0,0 +1,131 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
|
||||
export const article = {
|
||||
author: 'Prad Nukala',
|
||||
date: '2023-09-10',
|
||||
title: 'The Future of Digital Identity: Self-Sovereign and Interoperable',
|
||||
description:
|
||||
'Digital identity is broken. Here's how decentralized identifiers (DIDs), verifiable credentials, and blockchain technology will create a future where you truly own your identity.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
Every day, billions of people prove who they are online using systems designed in the 1960s. Usernames and passwords were meant to be temporary solutions, yet here we are, six decades later, still typing "password123" and hoping for the best.
|
||||
|
||||
As someone who's been building technology since creating one of the first App Store apps, and now as a W3C Working Group Member for DIDs and WebAuthn, I've seen firsthand how broken our identity systems are. It's time for a fundamental shift.
|
||||
|
||||
## The Current Identity Crisis
|
||||
|
||||
Today's digital identity landscape is a disaster:
|
||||
|
||||
- **2.5 billion** records were exposed in data breaches last year
|
||||
- The average person has **100+ passwords** to manage
|
||||
- Identity theft affects **1 in 15 people** annually
|
||||
- Users have **zero control** over their personal data
|
||||
|
||||
But the real problem isn't just security - it's ownership. Your digital identity doesn't belong to you. It belongs to Facebook, Google, your bank, your employer, and dozens of other entities.
|
||||
|
||||
## Enter Self-Sovereign Identity
|
||||
|
||||
Self-sovereign identity (SSI) flips the script. Instead of companies owning your identity, you do. Here's how it works:
|
||||
|
||||
### Decentralized Identifiers (DIDs)
|
||||
A DID is like a phone number for your identity - unique, permanent, and owned by you. Unlike usernames, DIDs aren't controlled by any company.
|
||||
|
||||
```
|
||||
did:sonr:1234567890abcdef
|
||||
```
|
||||
|
||||
This simple string represents your entire digital identity, secured by cryptography rather than corporate databases.
|
||||
|
||||
### Verifiable Credentials
|
||||
Imagine your driver's license, but digital and cryptographically verifiable. That's a verifiable credential. Your university can issue you a degree credential, your employer can issue an employment credential, and you store them in your digital wallet.
|
||||
|
||||
The magic? You can prove things about yourself without revealing everything. Need to prove you're over 21? You don't need to share your birthdate - just a cryptographic proof that you meet the requirement.
|
||||
|
||||
## The Sonr Implementation
|
||||
|
||||
At Sonr, we're not just theorizing about SSI - we're building it. Our approach combines:
|
||||
|
||||
1. **IBC-Enabled Blockchain**: Your identity works across multiple chains, not locked to one ecosystem
|
||||
2. **IPFS Storage**: Your data is distributed and permanent, not sitting in vulnerable databases
|
||||
3. **WebAuthn Integration**: Authenticate with your fingerprint, not passwords
|
||||
4. **UCAN Authorization**: Grant specific permissions without sharing your keys
|
||||
|
||||
## Real-World Applications
|
||||
|
||||
This isn't just technology for technology's sake. Here's how SSI will change everyday life:
|
||||
|
||||
### Healthcare
|
||||
- Carry your medical records with you
|
||||
- Share only relevant information with providers
|
||||
- Maintain privacy while ensuring continuity of care
|
||||
|
||||
### Finance
|
||||
- Instant KYC/AML compliance without repeated paperwork
|
||||
- Prove creditworthiness without exposing financial details
|
||||
- Access global financial services with one identity
|
||||
|
||||
### Education
|
||||
- Verifiable diplomas that can't be faked
|
||||
- Instant credential verification for employers
|
||||
- Lifelong learning records that follow you
|
||||
|
||||
### Travel
|
||||
- Digital passports that speed up border crossings
|
||||
- Vaccination records that are instantly verifiable
|
||||
- One identity for all your travel needs
|
||||
|
||||
## The Technical Foundation
|
||||
|
||||
Building SSI requires solving complex technical challenges:
|
||||
|
||||
```typescript
|
||||
// Creating a verifiable credential
|
||||
const credential = await Sonr.createCredential({
|
||||
type: 'UniversityDegree',
|
||||
subject: userDID,
|
||||
claims: {
|
||||
degree: 'Computer Science',
|
||||
graduationDate: '2023-05-15'
|
||||
}
|
||||
});
|
||||
|
||||
// Selective disclosure - prove graduation without revealing degree
|
||||
const proof = await credential.generateProof({
|
||||
reveal: ['graduationDate']
|
||||
});
|
||||
```
|
||||
|
||||
## Privacy by Design
|
||||
|
||||
Unlike current systems where privacy is an afterthought, SSI builds privacy in from the ground up:
|
||||
|
||||
- **Minimal Disclosure**: Share only what's necessary
|
||||
- **User Consent**: Every data share requires explicit permission
|
||||
- **Pseudonymity**: Use different identifiers for different contexts
|
||||
- **Revocation**: Withdraw access to your data anytime
|
||||
|
||||
## The Path Forward
|
||||
|
||||
Transitioning to SSI won't happen overnight, but the momentum is building:
|
||||
|
||||
- W3C standards for DIDs and Verifiable Credentials are finalized
|
||||
- Governments are piloting digital identity programs
|
||||
- Major tech companies are adopting WebAuthn
|
||||
- The EU's eIDAS 2.0 regulation mandates digital wallets by 2024
|
||||
|
||||
## Join the Identity Revolution
|
||||
|
||||
The future of identity isn't about better passwords or more secure databases. It's about fundamentally reimagining the relationship between individuals and their digital selves.
|
||||
|
||||
At Sonr, we're building this future today. Whether you're a developer wanting to integrate SSI, an organization looking to issue credentials, or just someone tired of password resets, there's a place for you in this revolution.
|
||||
|
||||
The question isn't whether self-sovereign identity will replace current systems - it's how quickly we can make it happen. The technology is here. The standards are set. Now we need builders, advocates, and early adopters to make it reality.
|
||||
|
||||
Your identity belongs to you. It's time we built an internet that respects that.
|
||||
@@ -1,106 +0,0 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
|
||||
export const article = {
|
||||
author: 'Adam Wathan',
|
||||
date: '2023-09-02',
|
||||
title: 'Introducing Animaginary: High performance web animations',
|
||||
description:
|
||||
'When you’re building a website for a company as ambitious as Sonr, you need to make an impression. I wanted people to visit our website and see animations that looked more realistic than reality itself.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
When you’re building a website for a company as ambitious as Sonr, you need to make an impression. I wanted people to visit our website and see animations that looked more realistic than reality itself.
|
||||
|
||||
To make this possible, we needed to squeeze every drop of performance out of the browser possible. And so Animaginary was born.
|
||||
|
||||
```js
|
||||
import { animate } from '@planetaria/animaginary'
|
||||
|
||||
export function MyComponent({ open, children }) {
|
||||
return (
|
||||
<animate.div
|
||||
in={open}
|
||||
animateFrom="opacity-0 scale-95"
|
||||
animateTo="opacity-100 scale-100"
|
||||
duration={350}
|
||||
>
|
||||
{children}
|
||||
</animate.div>
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
Animaginary is our new web animation library that redefines what you thought was possible on the web. Hand-written in optimized WASM, Animaginary can even animate the `height` property of an element at 60fps.
|
||||
|
||||
## Sermone fata
|
||||
|
||||
Lorem markdownum, bracchia in redibam! Terque unda puppi nec, linguae posterior
|
||||
in utraque respicere candidus Mimasque formae; quae conantem cervice. Parcite
|
||||
variatus, redolentia adeunt. Tyrioque dies, naufraga sua adit partibus celanda
|
||||
torquere temptata, erit maneat et ramos, [iam](#) ait dominari
|
||||
potitus! Tibi litora matremque fumantia condi radicibus opusque.
|
||||
|
||||
Deus feram verumque, fecit, ira tamen, terras per alienae victum. Mutantur
|
||||
levitate quas ubi arcum ripas oculos abest. Adest [commissaque
|
||||
victae](#) in gemitus nectareis ire diva
|
||||
dotibus ora, et findi huic invenit; fatis? Fractaque dare superinposita
|
||||
nimiumque simulatoremque sanguine, at voce aestibus diu! Quid veterum hausit tu
|
||||
nil utinam paternos ima, commentaque.
|
||||
|
||||
```c
|
||||
exbibyte_wins = gigahertz(3);
|
||||
grayscaleUtilityClient = control_uat;
|
||||
pcmciaHibernate = oop_virus_console(text_mountain);
|
||||
if (stateWaisFirewire >= -2) {
|
||||
jfs = 647065 / ldapVrml(tutorialRestore, 85);
|
||||
metal_runtime_parse = roomComputingResolution - toolbarUpload +
|
||||
ipx_nvram_open;
|
||||
} else {
|
||||
maximizeSidebar *= suffix_url(flatbed + 2, requirements_encoding_node +
|
||||
only_qbe_media, minicomputer);
|
||||
}
|
||||
```
|
||||
|
||||
Aere repetiti cognataque natus. Habebat vela solutis saepe munus nondum adhuc
|
||||
oscula nomina pignora corpus deserat.
|
||||
|
||||
## Lethaei Pindumve me quae dinumerat Pavor
|
||||
|
||||
Idem se saxa fata pollentibus geminos; quos pedibus. Est urnis Herses omnes nec
|
||||
divite: et ille illa furit sim verbis Cyllenius.
|
||||
|
||||
1. Captus inpleverunt collo
|
||||
2. Nec nam placebant
|
||||
3. Siquos vulgus
|
||||
4. Dictis carissime fugae
|
||||
5. A tacitos nulla viginti
|
||||
|
||||
Ungues fistula annoso, ille addit linoque motatque uberior verso
|
||||
[rubuerunt](#) confine desuetaque. _Sanguine_ anteit
|
||||
emerguntque expugnacior est pennas iniqui ecce **haeret** genus: peiora imagine
|
||||
fossas Cephisos formosa! Refugitque amata [refelli](#)
|
||||
supplex. Summa brevis vetuere tenebas, hostes vetantis, suppressit, arreptum
|
||||
regna. Postquam conpescit iuvenis habet corpus, et erratica, perdere, tot mota
|
||||
ars talis.
|
||||
|
||||
```c
|
||||
digital.webcam_dual_frequency = webmasterMms;
|
||||
if (5 + language_standalone_google) {
|
||||
cc_inbox_layout *= file_character;
|
||||
task += p;
|
||||
lockUnicode += enterprise_monochrome(tokenFunctionPersonal, keyVirtual,
|
||||
adf);
|
||||
}
|
||||
windows_binary_esports(87734, array(restoreRomTopology, adRaw(407314),
|
||||
dongleBashThumbnail), interpreter);
|
||||
```
|
||||
|
||||
Sit volat naturam; motu Cancri. Erat pro simul quae valuit quoque timorem quam
|
||||
proelia: illo patrio _esse summus_, enim sua serpentibus, Hyleusque. Est coniuge
|
||||
recuso; refert Coroniden ignotos manat, adfectu.
|
||||
@@ -1,101 +0,0 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
|
||||
export const article = {
|
||||
author: 'Adam Wathan',
|
||||
date: '2023-07-14',
|
||||
title: 'Rewriting the Sonr MPC Protocol',
|
||||
description:
|
||||
'When we released the Sonr devnet last year, it was functional, secure - but incredibly slow. We took a look inside the system to uncover the bottlenecks and found that the MPC protocol was the culprit. The resulting upgrade made our protocol 180x faster.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
When we released the first version of cosmOS last year, it was written in Go. Go is a wonderful programming language with a lot of benefits, but it’s been a while since I’ve seen an article on the front page of Hacker News about rewriting some important tool in Go and I see articles on there about rewriting things in Rust every single week.
|
||||
|
||||
```rust
|
||||
use ferris_says::say;
|
||||
use std::io::{stdout, BufWriter};
|
||||
|
||||
fn main() {
|
||||
let stdout = stdout();
|
||||
let message = String::from("Hello fellow hackers");
|
||||
let width = message.chars().count();
|
||||
|
||||
let mut writer = BufWriter::new(stdout.lock());
|
||||
say(message.as_bytes(), width, &mut writer).unwrap();
|
||||
}
|
||||
```
|
||||
|
||||
I derive a large amount of my self-worth from whether or not Hacker News is impressed with the work I'm doing, so when I realized this, I cancelled all of our existing projects and started migrating everything to Rust immediately.
|
||||
|
||||
## Sermone fata
|
||||
|
||||
Lorem markdownum, bracchia in redibam! Terque unda puppi nec, linguae posterior
|
||||
in utraque respicere candidus Mimasque formae; quae conantem cervice. Parcite
|
||||
variatus, redolentia adeunt. Tyrioque dies, naufraga sua adit partibus celanda
|
||||
torquere temptata, erit maneat et ramos, [iam](#) ait dominari
|
||||
potitus! Tibi litora matremque fumantia condi radicibus opusque.
|
||||
|
||||
Deus feram verumque, fecit, ira tamen, terras per alienae victum. Mutantur
|
||||
levitate quas ubi arcum ripas oculos abest. Adest [commissaque
|
||||
victae](#) in gemitus nectareis ire diva
|
||||
dotibus ora, et findi huic invenit; fatis? Fractaque dare superinposita
|
||||
nimiumque simulatoremque sanguine, at voce aestibus diu! Quid veterum hausit tu
|
||||
nil utinam paternos ima, commentaque.
|
||||
|
||||
```c
|
||||
exbibyte_wins = gigahertz(3);
|
||||
grayscaleUtilityClient = control_uat;
|
||||
pcmciaHibernate = oop_virus_console(text_mountain);
|
||||
if (stateWaisFirewire >= -2) {
|
||||
jfs = 647065 / ldapVrml(tutorialRestore, 85);
|
||||
metal_runtime_parse = roomComputingResolution - toolbarUpload +
|
||||
ipx_nvram_open;
|
||||
} else {
|
||||
maximizeSidebar *= suffix_url(flatbed + 2, requirements_encoding_node +
|
||||
only_qbe_media, minicomputer);
|
||||
}
|
||||
```
|
||||
|
||||
Aere repetiti cognataque natus. Habebat vela solutis saepe munus nondum adhuc
|
||||
oscula nomina pignora corpus deserat.
|
||||
|
||||
## Lethaei Pindumve me quae dinumerat Pavor
|
||||
|
||||
Idem se saxa fata pollentibus geminos; quos pedibus. Est urnis Herses omnes nec
|
||||
divite: et ille illa furit sim verbis Cyllenius.
|
||||
|
||||
1. Captus inpleverunt collo
|
||||
2. Nec nam placebant
|
||||
3. Siquos vulgus
|
||||
4. Dictis carissime fugae
|
||||
5. A tacitos nulla viginti
|
||||
|
||||
Ungues fistula annoso, ille addit linoque motatque uberior verso
|
||||
[rubuerunt](#) confine desuetaque. _Sanguine_ anteit
|
||||
emerguntque expugnacior est pennas iniqui ecce **haeret** genus: peiora imagine
|
||||
fossas Cephisos formosa! Refugitque amata [refelli](#)
|
||||
supplex. Summa brevis vetuere tenebas, hostes vetantis, suppressit, arreptum
|
||||
regna. Postquam conpescit iuvenis habet corpus, et erratica, perdere, tot mota
|
||||
ars talis.
|
||||
|
||||
```c
|
||||
digital.webcam_dual_frequency = webmasterMms;
|
||||
if (5 + language_standalone_google) {
|
||||
cc_inbox_layout *= file_character;
|
||||
task += p;
|
||||
lockUnicode += enterprise_monochrome(tokenFunctionPersonal, keyVirtual,
|
||||
adf);
|
||||
}
|
||||
windows_binary_esports(87734, array(restoreRomTopology, adRaw(407314),
|
||||
dongleBashThumbnail), interpreter);
|
||||
```
|
||||
|
||||
Sit volat naturam; motu Cancri. Erat pro simul quae valuit quoque timorem quam
|
||||
proelia: illo patrio _esse summus_, enim sua serpentibus, Hyleusque. Est coniuge
|
||||
recuso; refert Coroniden ignotos manat, adfectu.
|
||||
@@ -0,0 +1,97 @@
|
||||
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||
|
||||
export const article = {
|
||||
author: 'Prad Nukala',
|
||||
date: '2023-11-20',
|
||||
title: 'Why Blockchain Needs Better UX (And How We're Fixing It)',
|
||||
description:
|
||||
'The biggest barrier to blockchain adoption isn't scalability or regulation - it's user experience. Here's how we're making Web3 as easy as Web2.',
|
||||
}
|
||||
|
||||
export const metadata = {
|
||||
title: article.title,
|
||||
description: article.description,
|
||||
}
|
||||
|
||||
export default (props) => <ArticleLayout article={article} {...props} />
|
||||
|
||||
Ask any blockchain developer about the biggest challenge facing our industry, and you'll hear about scalability, regulation, or interoperability. But after years of building in this space and onboarding over 120 developers to blockchain, I've learned the real barrier is much simpler: user experience.
|
||||
|
||||
## The UX Crisis in Web3
|
||||
|
||||
Let's be honest about the current state of blockchain UX:
|
||||
|
||||
- **Seed Phrases**: Asking users to write down 24 random words and never lose them is a non-starter for mainstream adoption
|
||||
- **Gas Fees**: Imagine if every click on the internet cost money and required manual approval
|
||||
- **Addresses**: 42-character hexadecimal strings are not how humans think about identity
|
||||
- **Transaction Times**: Waiting minutes for confirmations kills any semblance of modern app experience
|
||||
|
||||
These aren't technical limitations - they're design choices we've accepted as "the way blockchain works."
|
||||
|
||||
## Learning from History
|
||||
|
||||
When I created one of the first 5,000 apps on the App Store at age 12, the iPhone had just made computing accessible to everyone. Not by making people understand computers, but by hiding the complexity behind intuitive interfaces.
|
||||
|
||||
Blockchain needs its iPhone moment.
|
||||
|
||||
## The Sonr Approach
|
||||
|
||||
At Sonr, we've rethought blockchain UX from first principles:
|
||||
|
||||
### 1. No Seed Phrases
|
||||
Using DKLS-MPC technology, users never see or manage private keys. Account recovery uses familiar methods like email or social recovery - not a piece of paper in a safe.
|
||||
|
||||
### 2. Instant Onboarding
|
||||
Our 600ms wallet generation means users can start using blockchain apps as quickly as they'd sign up for any web service. No downloads, no extensions, no friction.
|
||||
|
||||
### 3. Passkey Authentication
|
||||
Leveraging WebAuthn standards, users authenticate with their fingerprint or face - the same way they unlock their phones. It's more secure than passwords and infinitely more user-friendly.
|
||||
|
||||
### 4. Invisible Blockchain
|
||||
Users shouldn't need to understand consensus mechanisms any more than they need to understand TCP/IP to browse the web. Blockchain should be infrastructure, not interface.
|
||||
|
||||
## Real Code, Real Solutions
|
||||
|
||||
Here's how simple it is to integrate Sonr:
|
||||
|
||||
```javascript
|
||||
// Traditional Web3
|
||||
const accounts = await ethereum.request({
|
||||
method: 'eth_requestAccounts'
|
||||
});
|
||||
// User must have MetaMask installed
|
||||
// User must understand gas fees
|
||||
// User must protect seed phrase
|
||||
|
||||
// With Sonr
|
||||
const user = await Sonr.authenticate();
|
||||
// That's it. No wallet required.
|
||||
// No seed phrases. Just works.
|
||||
```
|
||||
|
||||
## The Broader Impact
|
||||
|
||||
Better UX isn't just about convenience - it's about accessibility and inclusion. When we make blockchain easier to use, we:
|
||||
|
||||
- **Reduce Scams**: Simpler interfaces mean fewer opportunities for user error
|
||||
- **Increase Adoption**: Lower barriers mean more users and developers
|
||||
- **Enable Innovation**: When basics are solved, builders can focus on novel applications
|
||||
|
||||
## Looking Forward
|
||||
|
||||
As a W3C Working Group Member, I'm helping shape standards that will make these UX improvements universal. The future of blockchain isn't about teaching billions of people new concepts - it's about making those concepts invisible.
|
||||
|
||||
## The Challenge to Builders
|
||||
|
||||
If you're building in Web3, ask yourself:
|
||||
- Would my parents be able to use this?
|
||||
- Does it require reading documentation?
|
||||
- Are there more than 3 steps to get started?
|
||||
|
||||
If the answer to any of these is yes, we have work to do.
|
||||
|
||||
## Join the UX Revolution
|
||||
|
||||
The blockchain industry has brilliant technologists, but we need more designers, more product thinkers, and more people who put users first. If you're interested in making blockchain accessible to everyone, [reach out](mailto:prad.nukala@sonr.io).
|
||||
|
||||
The future of the internet depends on making it usable by everyone, not just the technically sophisticated. Let's build that future together.
|
||||
+2
-2
@@ -9,10 +9,10 @@ export const metadata: Metadata = {
|
||||
title: {
|
||||
template: '%s - Prad Nukala',
|
||||
default:
|
||||
'Prad Nukala - Software designer, founder, and amateur astronaut',
|
||||
'Prad Nukala - Founder & CEO of Sonr, Blockchain Identity Pioneer',
|
||||
},
|
||||
description:
|
||||
'I’m Prad, a software designer and entrepreneur based in New York City. I’m the founder and Founder of Sonr, where we develop technologies that empower regular people to explore space on their own terms.',
|
||||
'I'm Prad Nukala, founder and CEO of Sonr, an IBC-enabled blockchain for decentralized identity. W3C Working Group Member for DIDs, WebAuthn, and WASM. Building the future of self-sovereign identity and empowering users with control over their digital assets.',
|
||||
alternates: {
|
||||
types: {
|
||||
'application/rss+xml': `${process.env.NEXT_PUBLIC_SITE_URL}/feed.xml`,
|
||||
|
||||
+22
-19
@@ -122,7 +122,7 @@ function Newsletter() {
|
||||
<span className="ml-3">Stay up to date</span>
|
||||
</h2>
|
||||
<p className="mt-2 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Get notified when I publish something new, and unsubscribe at any time.
|
||||
Get notified about updates on Sonr, blockchain technology insights, and decentralized identity developments.
|
||||
</p>
|
||||
<div className="mt-6 flex">
|
||||
<input
|
||||
@@ -189,7 +189,7 @@ function Resume() {
|
||||
let resume: Array<Role> = [
|
||||
{
|
||||
company: 'Sonr',
|
||||
title: 'A P2P Identity Network',
|
||||
title: 'Founder & CEO',
|
||||
logo: logoPlanetaria,
|
||||
start: '2020',
|
||||
end: {
|
||||
@@ -198,25 +198,28 @@ function Resume() {
|
||||
},
|
||||
},
|
||||
{
|
||||
company: 'Spacebolt',
|
||||
title: 'Mobile game built with Unity',
|
||||
company: 'W3C Working Group',
|
||||
title: 'Member - DIDs, WebAuthn, WASM',
|
||||
logo: logoAirbnb,
|
||||
start: '2017',
|
||||
end: '2018',
|
||||
start: '2021',
|
||||
end: {
|
||||
label: 'Present',
|
||||
dateTime: new Date().getFullYear().toString(),
|
||||
},
|
||||
},
|
||||
{
|
||||
company: 'Voluntree',
|
||||
title: 'iOS Volunteer hours tracker',
|
||||
company: 'Open Source',
|
||||
title: '4th Most GitHub Contributions Worldwide',
|
||||
logo: logoFacebook,
|
||||
start: '2015',
|
||||
end: '2016',
|
||||
start: '2021',
|
||||
end: '2023',
|
||||
},
|
||||
{
|
||||
company: 'Spacebolt',
|
||||
title: 'One of the first 10k Apps Published',
|
||||
company: 'Early iOS Developer',
|
||||
title: 'One of the first 5,000 App Store apps',
|
||||
logo: logoStarbucks,
|
||||
start: '2010',
|
||||
end: '2011',
|
||||
start: '2008',
|
||||
end: '2012',
|
||||
},
|
||||
]
|
||||
|
||||
@@ -274,13 +277,13 @@ export default async function Home() {
|
||||
<Container className="mt-9">
|
||||
<div className="max-w-2xl">
|
||||
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
|
||||
Software engineer, product designer, and founder.
|
||||
Blockchain pioneer, founder, and decentralized identity architect.
|
||||
</h1>
|
||||
<p className="mt-6 text-base text-zinc-600 dark:text-zinc-400">
|
||||
I’m Prad, a software designer and entrepreneur based in New York
|
||||
City. I’m the founder and CEO of Sonr, where we develop
|
||||
technologies that empower regular people to use the web on their
|
||||
own terms.
|
||||
I'm Prad Nukala, founder and CEO of Sonr, an IBC-enabled blockchain for decentralized identity.
|
||||
As a W3C Working Group Member for DIDs, WebAuthn, and WASM, I'm building the future where users
|
||||
control their digital identity and assets. With over 6000+ GitHub contributions, I'm passionate
|
||||
about making blockchain technology accessible to everyone.
|
||||
</p>
|
||||
<div className="mt-6 flex gap-6">
|
||||
<SocialLink
|
||||
|
||||
+15
-15
@@ -14,16 +14,16 @@ const projects = [
|
||||
name: 'Sonr',
|
||||
created: '2020 - Present',
|
||||
description:
|
||||
'Creating technology to empower civilians to explore space on their own terms.',
|
||||
link: { href: 'http://planetaria.tech', label: 'planetaria.tech' },
|
||||
'IBC-enabled blockchain for decentralized identity. Features passkey-based accounts, DKLS-MPC wallets, and 600ms wallet generation.',
|
||||
link: { href: 'https://sonr.io', label: 'sonr.io' },
|
||||
logo: logoSonr,
|
||||
},
|
||||
{
|
||||
name: 'Yue',
|
||||
created: '2018 - 2019',
|
||||
name: 'DID & WebAuthn Standards',
|
||||
created: '2021 - Present',
|
||||
description:
|
||||
'High performance web animation library, hand-written in optimized WASM.',
|
||||
link: { href: '#', label: 'github.com' },
|
||||
'Contributing to W3C Working Groups for DIDs, WebAuthn, and WASM standards that define the future of digital identity.',
|
||||
link: { href: 'https://www.w3.org/TR/did-core/', label: 'w3.org' },
|
||||
logo: logoYue,
|
||||
},
|
||||
// {
|
||||
@@ -44,24 +44,24 @@ const projects = [
|
||||
name: 'Spacebolt',
|
||||
created: '2017 - 2018',
|
||||
description:
|
||||
'The schematics for the first rocket I designed that successfully made it to orbit.',
|
||||
link: { href: '#', label: 'github.com' },
|
||||
'Unity-based mobile game featuring innovative physics-based gameplay. Part of my journey in mobile development.',
|
||||
link: { href: 'https://github.com/prnk28', label: 'github.com' },
|
||||
logo: logoSpacebolt,
|
||||
},
|
||||
{
|
||||
name: 'VolunTree',
|
||||
created: '2015 - 2016',
|
||||
description:
|
||||
'The schematics for the first rocket I designed that successfully made it to orbit.',
|
||||
link: { href: '#', label: 'github.com' },
|
||||
'iOS app for tracking volunteer hours and connecting volunteers with organizations. Simplified community service engagement.',
|
||||
link: { href: 'https://github.com/prnk28', label: 'github.com' },
|
||||
logo: logoVoluntree,
|
||||
},
|
||||
{
|
||||
name: 'Superball',
|
||||
created: '2010 - 2011',
|
||||
description:
|
||||
'The schematics for the first rocket I designed that successfully made it to orbit.',
|
||||
link: { href: '#', label: 'github.com' },
|
||||
'One of the first 10,000 apps published on the App Store. A physics-based game that started my journey at age 12.',
|
||||
link: { href: 'https://github.com/prnk28', label: 'github.com' },
|
||||
logo: logoSuperball,
|
||||
},
|
||||
]
|
||||
@@ -79,14 +79,14 @@ function LinkIcon(props: React.ComponentPropsWithoutRef<'svg'>) {
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Projects',
|
||||
description: 'Things I’ve made trying to put my dent in the universe.',
|
||||
description: 'Blockchain innovations and decentralized identity solutions I've built to empower users.',
|
||||
}
|
||||
|
||||
export default function Projects() {
|
||||
return (
|
||||
<SimpleLayout
|
||||
title="Things I’ve made trying to put my dent in the universe."
|
||||
intro="I’ve worked on tons of little projects over the years but these are the ones that I’m most proud of. Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved."
|
||||
title="Building the infrastructure for a decentralized future."
|
||||
intro="From creating one of the first App Store apps at age 12 to founding Sonr, I've developed over 10 projects with 1M+ downloads. These represent my journey from mobile development to blockchain innovation, all focused on empowering users with better technology."
|
||||
>
|
||||
<ul
|
||||
role="list"
|
||||
|
||||
+28
-21
@@ -43,52 +43,59 @@ function Appearance({
|
||||
export const metadata: Metadata = {
|
||||
title: 'Speaking',
|
||||
description:
|
||||
'I’ve spoken at events all around the world and been interviewed for many podcasts.',
|
||||
'Speaking at prestigious institutions and conferences about blockchain, decentralized identity, and the future of the web.',
|
||||
}
|
||||
|
||||
export default function Speaking() {
|
||||
return (
|
||||
<SimpleLayout
|
||||
title="I’ve spoken at events all around the world and been interviewed for many podcasts."
|
||||
intro="One of my favorite ways to share my ideas is live on stage, where there’s so much more communication bandwidth than there is in writing, and I love podcast interviews because they give me the opportunity to answer questions instead of just present my opinions."
|
||||
title="Sharing the vision of decentralized identity with the world."
|
||||
intro="From guest lecturing at MIT alongside Vitalik Buterin to speaking at blockchain conferences, I'm passionate about educating developers and entrepreneurs about the future of digital identity and how blockchain technology can empower users."
|
||||
>
|
||||
<div className="space-y-20">
|
||||
<SpeakingSection title="Conferences">
|
||||
<SpeakingSection title="Guest Lectures & Conferences">
|
||||
<Appearance
|
||||
href="#"
|
||||
title="In space, no one can watch you stream — until now"
|
||||
description="A technical deep-dive into HelioStream, the real-time streaming library I wrote for transmitting live video back to Earth."
|
||||
event="SysConf 2021"
|
||||
title="The Future of Decentralized Identity"
|
||||
description="Guest lecture at MIT Sloan School alongside Vitalik Buterin, Alex Mashinsky, Anthony Pompliano, and Yat Siu on blockchain innovation and decentralized identity."
|
||||
event="MIT Sloan School of Management, 2023"
|
||||
cta="Learn more"
|
||||
/>
|
||||
<Appearance
|
||||
href="#"
|
||||
title="Building IBC-Enabled Blockchains for Identity"
|
||||
description="Technical deep-dive into Sonr's architecture, showcasing how we leverage IBC for cross-chain identity management and our innovative approach to wallet generation."
|
||||
event="Cosmos Ecosystem Conference, 2023"
|
||||
cta="Watch video"
|
||||
/>
|
||||
<Appearance
|
||||
href="#"
|
||||
title="Lessons learned from our first product recall"
|
||||
description="They say that if you’re not embarassed by your first version, you’re doing it wrong. Well when you’re selling DIY space shuttle kits it turns out it’s a bit more complicated."
|
||||
event="Business of Startups 2020"
|
||||
cta="Watch video"
|
||||
title="WebAuthn and the Future of Authentication"
|
||||
description="Presenting our work with W3C standards for DIDs and WebAuthn, demonstrating how passkey-based authentication can replace traditional passwords."
|
||||
event="W3C Workshop on Web Authentication, 2022"
|
||||
cta="View presentation"
|
||||
/>
|
||||
</SpeakingSection>
|
||||
<SpeakingSection title="Podcasts">
|
||||
<SpeakingSection title="Podcasts & Interviews">
|
||||
<Appearance
|
||||
href="#"
|
||||
title="Using design as a competitive advantage"
|
||||
description="How we used world-class visual design to attract a great team, win over customers, and get more press for Sonr."
|
||||
event="Encoding Design, July 2022"
|
||||
title="From App Store Pioneer to Blockchain Innovator"
|
||||
description="My journey from creating one of the first 5,000 iOS apps at age 12 to founding Sonr and becoming the 4th most active GitHub contributor worldwide."
|
||||
event="The Blockchain Founders Podcast, 2023"
|
||||
cta="Listen to podcast"
|
||||
/>
|
||||
<Appearance
|
||||
href="#"
|
||||
title="Bootstrapping an aerospace company to $17M ARR"
|
||||
description="The story of how we built one of the most promising space startups in the world without taking any capital from investors."
|
||||
event="The Escape Velocity Show, March 2022"
|
||||
title="Raising $4.7M to Build Decentralized Identity"
|
||||
description="How we raised funding for Sonr, onboarded 120+ first-time blockchain developers, and our vision for making blockchain accessible to everyone."
|
||||
event="Web3 Startup Stories, 2022"
|
||||
cta="Listen to podcast"
|
||||
/>
|
||||
<Appearance
|
||||
href="#"
|
||||
title="Programming your company operating system"
|
||||
description="On the importance of creating systems and processes for running your business so that everyone on the team knows how to make the right decision no matter the situation."
|
||||
event="How They Work Radio, September 2021"
|
||||
title="The Technical Architecture of Self-Sovereign Identity"
|
||||
description="Deep technical discussion on DID documents, IPFS integration, UCAN tokens, and our approach to eliminating seed phrases with DKLS-MPC wallets."
|
||||
event="Decentralized Tech Talks, 2022"
|
||||
cta="Listen to podcast"
|
||||
/>
|
||||
</SpeakingSection>
|
||||
|
||||
+84
-56
@@ -36,85 +36,113 @@ function Tool({
|
||||
|
||||
export const metadata = {
|
||||
title: 'Uses',
|
||||
description: 'Software I use, gadgets I love, and other things I recommend.',
|
||||
description: 'Tools and technologies I use for blockchain development, building Sonr, and staying productive.',
|
||||
}
|
||||
|
||||
export default function Uses() {
|
||||
return (
|
||||
<SimpleLayout
|
||||
title="Software I use, gadgets I love, and other things I recommend."
|
||||
intro="I get asked a lot about the things I use to build software, stay productive, or buy to fool myself into thinking I’m being productive when I’m really just procrastinating. Here’s a big list of all of my favorite stuff."
|
||||
title="Tools for building the future of decentralized identity."
|
||||
intro="From blockchain development to managing a startup, here are the tools and technologies that power my work at Sonr and help me maintain my position as one of the world's most active open-source contributors."
|
||||
>
|
||||
<div className="space-y-20">
|
||||
<ToolsSection title="Workstation">
|
||||
<Tool title="16” MacBook Pro, M1 Max, 64GB RAM (2021)">
|
||||
I was using an Intel-based 16” MacBook Pro prior to this and the
|
||||
difference is night and day. I’ve never heard the fans turn on a
|
||||
single time, even under the incredibly heavy loads I put it through
|
||||
with our various launch simulations.
|
||||
<Tool title="16" MacBook Pro, M2 Max, 96GB RAM">
|
||||
When you're compiling blockchain nodes and running multiple test networks locally,
|
||||
RAM is everything. This machine handles everything I throw at it, from Rust compilation
|
||||
to running full Cosmos SDK nodes.
|
||||
</Tool>
|
||||
<Tool title="Apple Pro Display XDR (Standard Glass)">
|
||||
The only display on the market if you want something HiDPI and
|
||||
bigger than 27”. When you’re working at planetary scale, every pixel
|
||||
you can get counts.
|
||||
<Tool title="LG UltraFine 5K Display (x2)">
|
||||
Dual 5K displays give me the screen real estate I need for coding, monitoring
|
||||
blockchain metrics, and keeping up with the constant stream of GitHub notifications
|
||||
from maintaining one of the world's most active contribution streaks.
|
||||
</Tool>
|
||||
<Tool title="IBM Model M SSK Industrial Keyboard">
|
||||
They don’t make keyboards the way they used to. I buy these any time
|
||||
I see them go up for sale and keep them in storage in case I need
|
||||
parts or need to retire my main.
|
||||
<Tool title="Keychron Q1 with Gateron Brown Switches">
|
||||
Mechanical keyboards aren't just for gaming. The tactile feedback helps me maintain
|
||||
accuracy during long coding sessions, crucial when every character matters in smart contracts.
|
||||
</Tool>
|
||||
<Tool title="Apple Magic Trackpad">
|
||||
Something about all the gestures makes me feel like a wizard with
|
||||
special powers. I really like feeling like a wizard with special
|
||||
powers.
|
||||
</Tool>
|
||||
<Tool title="Herman Miller Aeron Chair">
|
||||
If I’m going to slouch in the worst ergonomic position imaginable
|
||||
all day, I might as well do it in an expensive chair.
|
||||
<Tool title="Herman Miller Embody Chair">
|
||||
After years of 12+ hour coding days, investing in proper ergonomics isn't optional.
|
||||
This chair has been perfect for those long sessions building Sonr's infrastructure.
|
||||
</Tool>
|
||||
</ToolsSection>
|
||||
<ToolsSection title="Development tools">
|
||||
<Tool title="Sublime Text 4">
|
||||
I don’t care if it’s missing all of the fancy IDE features everyone
|
||||
else relies on, Sublime Text is still the best text editor ever
|
||||
made.
|
||||
<ToolsSection title="Development Tools">
|
||||
<Tool title="VS Code with Rust Analyzer">
|
||||
Essential for Cosmos SDK development. The Rust analyzer extension is particularly
|
||||
crucial for blockchain development where type safety can prevent costly errors.
|
||||
</Tool>
|
||||
<Tool title="iTerm2">
|
||||
I’m honestly not even sure what features I get with this that aren’t
|
||||
just part of the macOS Terminal but it’s what I use.
|
||||
<Tool title="Warp Terminal">
|
||||
The AI-powered terminal that understands context. Perfect for managing multiple
|
||||
blockchain nodes, SSH sessions, and the complex command sequences involved in
|
||||
Cosmos SDK development.
|
||||
</Tool>
|
||||
<Tool title="TablePlus">
|
||||
Great software for working with databases. Has saved me from
|
||||
building about a thousand admin interfaces for my various projects
|
||||
over the years.
|
||||
<Tool title="Docker & Kubernetes">
|
||||
Running local testnets and managing blockchain infrastructure requires serious
|
||||
containerization. Docker for local development, K8s for production deployments.
|
||||
</Tool>
|
||||
<Tool title="Lens IDE">
|
||||
The best Kubernetes IDE I've found. Essential for managing Sonr's infrastructure
|
||||
across multiple environments and monitoring our validator nodes.
|
||||
</Tool>
|
||||
<Tool title="Tendermint/CometBFT Tools">
|
||||
The entire Cosmos SDK toolkit is essential for building IBC-enabled chains.
|
||||
From Ignite CLI to CosmWasm, these tools form the backbone of Sonr's development.
|
||||
</Tool>
|
||||
</ToolsSection>
|
||||
<ToolsSection title="Design">
|
||||
<ToolsSection title="Blockchain & Web3 Tools">
|
||||
<Tool title="Keplr Wallet">
|
||||
The premier wallet for Cosmos ecosystem development. Essential for testing
|
||||
IBC transactions and interacting with Sonr's testnet.
|
||||
</Tool>
|
||||
<Tool title="Remix IDE">
|
||||
While Sonr uses Cosmos SDK, understanding EVM is crucial. Remix helps me
|
||||
stay current with Ethereum development and test cross-chain scenarios.
|
||||
</Tool>
|
||||
<Tool title="IPFS Desktop">
|
||||
Since Sonr integrates IPFS for distributed storage, having a local IPFS
|
||||
node is essential for development and testing.
|
||||
</Tool>
|
||||
<Tool title="Postman">
|
||||
API testing is crucial when building blockchain infrastructure. Postman
|
||||
helps me test our REST and gRPC endpoints thoroughly.
|
||||
</Tool>
|
||||
</ToolsSection>
|
||||
<ToolsSection title="Design & Documentation">
|
||||
<Tool title="Figma">
|
||||
We started using Figma as just a design tool but now it’s become our
|
||||
virtual whiteboard for the entire company. Never would have expected
|
||||
the collaboration features to be the real hook.
|
||||
Designing intuitive blockchain UX requires constant iteration. Figma helps
|
||||
us prototype wallet interfaces and visualize complex identity flows.
|
||||
</Tool>
|
||||
<Tool title="Excalidraw">
|
||||
Perfect for sketching blockchain architectures and explaining complex
|
||||
technical concepts. Most of our technical documentation starts here.
|
||||
</Tool>
|
||||
<Tool title="Notion">
|
||||
Our entire company knowledge base lives in Notion. From technical specs
|
||||
to meeting notes, it's our single source of truth.
|
||||
</Tool>
|
||||
</ToolsSection>
|
||||
<ToolsSection title="Productivity">
|
||||
<Tool title="Alfred">
|
||||
It’s not the newest kid on the block but it’s still the fastest. The
|
||||
Sublime Text of the application launcher world.
|
||||
<ToolsSection title="Productivity & Communication">
|
||||
<Tool title="Raycast">
|
||||
More than just an app launcher - it's my command center. Custom scripts
|
||||
for blockchain operations, quick access to documentation, and AI features
|
||||
for code generation.
|
||||
</Tool>
|
||||
<Tool title="Reflect">
|
||||
Using a daily notes system instead of trying to keep things
|
||||
organized by topics has been super powerful for me. And with
|
||||
Reflect, it’s still easy for me to keep all of that stuff
|
||||
discoverable by topic even though all of my writing happens in the
|
||||
daily note.
|
||||
<Tool title="Linear">
|
||||
Issue tracking designed for modern software teams. Perfect for managing
|
||||
Sonr's development across multiple repositories and coordinating with our
|
||||
distributed team.
|
||||
</Tool>
|
||||
<Tool title="SavvyCal">
|
||||
Great tool for scheduling meetings while protecting my calendar and
|
||||
making sure I still have lots of time for deep work during the week.
|
||||
<Tool title="Cal.com">
|
||||
Open-source scheduling that respects privacy. Important when you're building
|
||||
privacy-first technology and need to practice what you preach.
|
||||
</Tool>
|
||||
<Tool title="Focus">
|
||||
Simple tool for blocking distracting websites when I need to just do
|
||||
the work and get some momentum going.
|
||||
<Tool title="Discord">
|
||||
Where the blockchain community lives. Essential for staying connected with
|
||||
the Cosmos ecosystem and supporting our developer community.
|
||||
</Tool>
|
||||
<Tool title="GitHub Copilot">
|
||||
AI pair programming at its finest. Particularly helpful when working with
|
||||
new Cosmos SDK modules or implementing complex cryptographic functions.
|
||||
</Tool>
|
||||
</ToolsSection>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user