chore: add dummy articlwa
@@ -70,15 +70,14 @@ export default function About() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="lg:order-first lg:row-span-2">
|
<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">
|
<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 New York City, where I design the
|
I’m Prad Nukala. I live in New York City, where im building a better Internet.
|
||||||
future.
|
|
||||||
</h1>
|
</h1>
|
||||||
<div className="mt-6 space-y-7 text-base text-zinc-600 dark:text-zinc-400">
|
<div className="mt-6 space-y-7 text-base text-zinc-600 dark:text-zinc-400">
|
||||||
<p>
|
<p>
|
||||||
I’ve loved making things for as long as I can remember, and wrote
|
I’ve loved making things for as long as I can remember, and wrote
|
||||||
my first program when I was 6 years old, just two weeks after my
|
my first program when I was 10 years old, just two weeks after my
|
||||||
mom brought home the brand new Macintosh LC 550 that I taught
|
dad brought home the brand new iMac that I taught
|
||||||
myself to type on.
|
myself Objective-C on.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The only thing I loved more than computers as a kid was space.
|
The only thing I loved more than computers as a kid was space.
|
||||||
@@ -96,9 +95,9 @@ export default function About() {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Today, I’m the founder of Sonr, where we’re working on
|
Today, I’m the founder of Sonr, where we’re working on
|
||||||
civilian space suits and manned shuttle kits you can assemble at
|
reinventing the way we connect with each other online. We focus on the basics
|
||||||
home so that the next generation of kids really <em>can</em> make
|
— like privacy, security, and UX, in order to maximize everyones protection.
|
||||||
it to orbit — from the comfort of their own backyards.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import designSystem from './planetaria-design-system.png'
|
|||||||
|
|
||||||
export const article = {
|
export const article = {
|
||||||
author: 'Adam Wathan',
|
author: 'Adam Wathan',
|
||||||
date: '2022-09-05',
|
date: '2023-09-05',
|
||||||
title: 'Crafting a design system for a multiplanetary future',
|
title: 'Crafting an Identity system for a Multiplanetary future',
|
||||||
description:
|
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.',
|
'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.',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { ArticleLayout } from '@/components/ArticleLayout'
|
|||||||
|
|
||||||
export const article = {
|
export const article = {
|
||||||
author: 'Adam Wathan',
|
author: 'Adam Wathan',
|
||||||
date: '2022-09-02',
|
date: '2023-09-02',
|
||||||
title: 'Introducing Animaginary: High performance web animations',
|
title: 'Introducing Animaginary: High performance web animations',
|
||||||
description:
|
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.',
|
'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.',
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export default async function ArticlesIndex() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<SimpleLayout
|
<SimpleLayout
|
||||||
title="Writing on software design, company building, and the aerospace industry."
|
title="Writing on software design, company building, and the blockchain industry."
|
||||||
intro="All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order."
|
intro="All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order."
|
||||||
>
|
>
|
||||||
<div className="md:border-l md:border-zinc-100 md:pl-6 md:dark:border-zinc-700/40">
|
<div className="md:border-l md:border-zinc-100 md:pl-6 md:dark:border-zinc-700/40">
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { ArticleLayout } from '@/components/ArticleLayout'
|
|||||||
|
|
||||||
export const article = {
|
export const article = {
|
||||||
author: 'Adam Wathan',
|
author: 'Adam Wathan',
|
||||||
date: '2022-07-14',
|
date: '2023-07-14',
|
||||||
title: 'Rewriting the cosmOS kernel in Rust',
|
title: 'Rewriting the Sonr MPC Protocol',
|
||||||
description:
|
description:
|
||||||
'When we released the first version of cosmOS last year, it was written in Go. Go is a wonderful programming language, 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.',
|
'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 = {
|
export const metadata = {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ function Role({ role }: { role: Role }) {
|
|||||||
return (
|
return (
|
||||||
<li className="flex gap-4">
|
<li className="flex gap-4">
|
||||||
<div className="relative mt-1 flex h-10 w-10 flex-none items-center justify-center rounded-full shadow-md shadow-zinc-800/5 ring-1 ring-zinc-900/5 dark:border dark:border-zinc-700/50 dark:bg-zinc-800 dark:ring-0">
|
<div className="relative mt-1 flex h-10 w-10 flex-none items-center justify-center rounded-full shadow-md shadow-zinc-800/5 ring-1 ring-zinc-900/5 dark:border dark:border-zinc-700/50 dark:bg-zinc-800 dark:ring-0">
|
||||||
<Image src={role.logo} alt="" className="h-7 w-7" unoptimized />
|
<Image src={role.logo} alt="" className="h-7 w-7 rounded-full" unoptimized />
|
||||||
</div>
|
</div>
|
||||||
<dl className="flex flex-auto flex-wrap gap-x-2">
|
<dl className="flex flex-auto flex-wrap gap-x-2">
|
||||||
<dt className="sr-only">Company</dt>
|
<dt className="sr-only">Company</dt>
|
||||||
@@ -189,7 +189,7 @@ function Resume() {
|
|||||||
let resume: Array<Role> = [
|
let resume: Array<Role> = [
|
||||||
{
|
{
|
||||||
company: 'Sonr',
|
company: 'Sonr',
|
||||||
title: 'Founder',
|
title: 'A P2P Identity Network',
|
||||||
logo: logoPlanetaria,
|
logo: logoPlanetaria,
|
||||||
start: '2020',
|
start: '2020',
|
||||||
end: {
|
end: {
|
||||||
@@ -198,24 +198,24 @@ function Resume() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
company: 'Airbnb',
|
company: 'Spacebolt',
|
||||||
title: 'Product Designer',
|
title: 'Mobile game built with Unity',
|
||||||
logo: logoAirbnb,
|
logo: logoAirbnb,
|
||||||
start: '2014',
|
start: '2017',
|
||||||
end: '2019',
|
end: '2018',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
company: 'Facebook',
|
company: 'Voluntree',
|
||||||
title: 'iOS Software Engineer',
|
title: 'iOS Volunteer hours tracker',
|
||||||
logo: logoFacebook,
|
logo: logoFacebook,
|
||||||
start: '2011',
|
start: '2015',
|
||||||
end: '2014',
|
end: '2016',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
company: 'Starbucks',
|
company: 'Spacebolt',
|
||||||
title: 'Shift Supervisor',
|
title: 'Shift Supervisor',
|
||||||
logo: logoStarbucks,
|
logo: logoStarbucks,
|
||||||
start: '2008',
|
start: '2010',
|
||||||
end: '2011',
|
end: '2011',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -224,7 +224,7 @@ function Resume() {
|
|||||||
<div className="rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
<div className="rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
||||||
<h2 className="flex text-sm font-semibold text-zinc-900 dark:text-zinc-100">
|
<h2 className="flex text-sm font-semibold text-zinc-900 dark:text-zinc-100">
|
||||||
<BriefcaseIcon className="h-6 w-6 flex-none" />
|
<BriefcaseIcon className="h-6 w-6 flex-none" />
|
||||||
<span className="ml-3">Work</span>
|
<span className="ml-3">Experience</span>
|
||||||
</h2>
|
</h2>
|
||||||
<ol className="mt-6 space-y-4">
|
<ol className="mt-6 space-y-4">
|
||||||
{resume.map((role, roleIndex) => (
|
{resume.map((role, roleIndex) => (
|
||||||
@@ -257,7 +257,7 @@ function Photos() {
|
|||||||
src={image}
|
src={image}
|
||||||
alt=""
|
alt=""
|
||||||
sizes="(min-width: 640px) 18rem, 11rem"
|
sizes="(min-width: 640px) 18rem, 11rem"
|
||||||
className="absolute inset-0 h-full w-full object-cover rounded-full"
|
className="absolute inset-0 h-full w-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
@@ -278,8 +278,8 @@ export default async function Home() {
|
|||||||
</h1>
|
</h1>
|
||||||
<p className="mt-6 text-base text-zinc-600 dark:text-zinc-400">
|
<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
|
I’m Prad, a software designer and entrepreneur based in New York
|
||||||
City. I’m the founder and Founder of Sonr, where we develop
|
City. I’m the founder and CEO of Sonr, where we develop
|
||||||
technologies that empower regular people to explore space on their
|
technologies that empower regular people to use the web on their
|
||||||
own terms.
|
own terms.
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-6 flex gap-6">
|
<div className="mt-6 flex gap-6">
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ export default function Projects() {
|
|||||||
<Image
|
<Image
|
||||||
src={project.logo}
|
src={project.logo}
|
||||||
alt=""
|
alt=""
|
||||||
className="h-8 w-8"
|
className="h-8 w-8 rounded-full"
|
||||||
unoptimized
|
unoptimized
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ function MobileNavigation(
|
|||||||
<nav className="mt-6">
|
<nav className="mt-6">
|
||||||
<ul className="-my-2 divide-y divide-zinc-100 text-base text-zinc-800 dark:divide-zinc-100/5 dark:text-zinc-300">
|
<ul className="-my-2 divide-y divide-zinc-100 text-base text-zinc-800 dark:divide-zinc-100/5 dark:text-zinc-300">
|
||||||
<MobileNavItem href="/about">About</MobileNavItem>
|
<MobileNavItem href="/about">About</MobileNavItem>
|
||||||
<MobileNavItem href="/articles">Articles</MobileNavItem>
|
<MobileNavItem href="/articles">Writing</MobileNavItem>
|
||||||
<MobileNavItem href="/projects">Projects</MobileNavItem>
|
<MobileNavItem href="/projects">Projects</MobileNavItem>
|
||||||
<MobileNavItem href="/speaking">Speaking</MobileNavItem>
|
<MobileNavItem href="/speaking">Speaking</MobileNavItem>
|
||||||
<MobileNavItem href="/uses">Uses</MobileNavItem>
|
<MobileNavItem href="/uses">Uses</MobileNavItem>
|
||||||
@@ -180,7 +180,7 @@ function DesktopNavigation(props: React.ComponentPropsWithoutRef<'nav'>) {
|
|||||||
<nav {...props}>
|
<nav {...props}>
|
||||||
<ul className="flex rounded-full bg-white/90 px-3 text-sm font-medium text-zinc-800 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur dark:bg-zinc-800/90 dark:text-zinc-200 dark:ring-white/10">
|
<ul className="flex rounded-full bg-white/90 px-3 text-sm font-medium text-zinc-800 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur dark:bg-zinc-800/90 dark:text-zinc-200 dark:ring-white/10">
|
||||||
<NavItem href="/about">About</NavItem>
|
<NavItem href="/about">About</NavItem>
|
||||||
<NavItem href="/articles">Articles</NavItem>
|
<NavItem href="/articles">Writing</NavItem>
|
||||||
<NavItem href="/projects">Projects</NavItem>
|
<NavItem href="/projects">Projects</NavItem>
|
||||||
<NavItem href="/speaking">Speaking</NavItem>
|
<NavItem href="/speaking">Speaking</NavItem>
|
||||||
<NavItem href="/uses">Uses</NavItem>
|
<NavItem href="/uses">Uses</NavItem>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.1 MiB |