my lil corner of the internet. lives at tashif.codes.
started as a portfolio, then it ate a blog, a docs site, a url shortener, an analytics api and an f-droid repo. send help.
what even is this#
- projects, every repo i’ve shipped, with search, filters and live github stats. plus a projects/stats so you can watch me check my own analytics
- blog, pulled from blog.tashif.codes, with rss in every flavour you could want (
/rss.xml,/feed.xml,/blog/feed, i got carried away) - docs for my projects at
/docs, for the three people who read docs before opening an issue - github + leetcode, contribution graphs and problem counts. yes the leetcode tab is a cry for help
- resume, and
/resume:pdffor a pdf one. recruiters, this one’s for you - connect, all the places you can find me
- downloads at
/download/<app>, which bounce you to the latest release - f-droid repo at
/fdroidfor my android apps, because the play store wanted $25 and my dignity
features (a subset, it keeps eating more)#
- two whole design skins. simple is the original orange dashboard, studio is warm paper and teal ink borrowed from taf.sh. studio is the default now, simple is there for nostalgia
- light and dark for both, because two skins wasn’t enough decisions
- a settings dock that holds the theme, the skin, haptics and a reduce motion switch
- any path the site doesn’t know gets checked against my shortener at u.tashif.codes. so
tashif.codes/<anything>might take you somewhere. or a 404. live a little - live refresh on the stats, proxied through
/proxy/*so nobody’s ad blocker or cors policy gets a vote - posthog analytics through
/ph/*, same reason - haptics on mobile, because buttons should feel like buttons
- generated og images for every page, so the link previews look like i tried
a cry for help#
this site has been redesigned more times than i’d like to admit.
- portfolio.tashif.codes, the og one, built while i was still learning frontend. it’s still up as a testament to growth or some shit, idk why
- the simple dashboard, orange, tabs everywhere
- the studio skin, which is basically taf.sh moved in and repainted the place
- 550+ commits, a good chunk of which say
fix(theme)
if you see me open a branch called redesign, please stop me.
stack#
- astro 5 + react 19 for the bits that need it
- tailwind v4, radix, lucide
- a fastapi analytics api in
api/that merges old vercel data with live posthog numbers (python on vercel, it works, don’t ask) - vercel for hosting
- an unhealthy number of
*-stats.tashif.codessubdomains
run it#
bun install
bun dev # localhost:4321
bun run build # generates og images first, then builds
bun run og:generate # just the og images
bun run test:analytics # playwright checks for the analytics wiring
the analytics api has its own readme in api/README.md.
f-droid, for the curious#
paste https://tashif.codes/fdroid/repo?fingerprint=568557c435bdf555725de95de596a90d6fa964d4bf0b71874f254cd0be7e94c9 into f-droid (the fingerprint makes f-droid check the repo is really mine) and you get tashifkhan/Paisa, tashifkhan/Patchwork and tashifkhan/delhi-metro. each app’s release workflow pokes publish-fdroid.yml here, which grabs the apk, signs the index and commits it.
secrets, keystore setup and manual re-imports live in public/fdroid/README.md. don’t lose the keystore. i will cry.
roadmap#
- ship more projects so the projects page keeps scrolling
- solve leetcode daily (lol)
- one more subdomain, i swear it’s the last one
say hi#
connect. or just star the repo, parasocial validation accepted.