I'm writing a bunch of "I hope this email finds you before I do" today.
21.05.2025 16:30 β π 0 π 0 π¬ 0 π 0@kinngh.com.bsky.social
Sikh. Shopify Build Award Winner, 2024. Product @ Shopify All opinions are my own. harshdeephura.com
I'm writing a bunch of "I hope this email finds you before I do" today.
21.05.2025 16:30 β π 0 π 0 π¬ 0 π 0I'm approaching the 30-day mark for afterburnout.co and I can't express how much writing this newsletter has helped me process my burnout.
I'll probably take a couple weeks off this and Modern Leader as I head to France this evening, but I'm excited to keep working on my article for paid subs.
- am I missing something or have we just lost the plot and assumed full stack frameworks are difficult to write?
github.com/kinngh/attayjs
Server: Middlewares, Api routes
Client: client side routing, prefetching, dynamic routes
Even as I build Yakk, a full fledged app, I don't need anymore than this. It's breaking my head right now
So I started writing my own Fullstack framework just as a means to understand what would it take to build one and how they work.
Client: 5kb (unminified)
Server: 3kb (unminified)
Ok yes it misses a lot of features that most other fullstack frameworks provide, but I have:
If you keep devices long term, makes sense to get physical / disc versions. I still have the PS1 that I sometimes boot up and play CTR on and if it was digital, idk if that would even be possible without shady emulators
26.04.2025 10:16 β π 0 π 0 π¬ 0 π 0Get back in soldier. We need you to ship. You've been exempted from touching grass
09.04.2025 23:22 β π 2 π 0 π¬ 1 π 0HAHAHAHAHAHAHAHAHA
09.04.2025 22:35 β π 2 π 0 π¬ 0 π 0Ok this is a pretty bad implementation but it was pretty easy to write a client side router????????? Like hello???????? Why did I think for a minimal implementation Im' gonna have to study a lot of stuff???????
github.com/kinngh/attay...
"An entire app lighter than a React button" WHAT WHAT WHAT WHAT WHAT nuejs.org/blog/large-s...
02.04.2025 22:58 β π 0 π 0 π¬ 0 π 0I will be giving a masterclass on all things (new) Customer Accounts & Login at Shopify Editions.Dev
topics
- what's been shipped
- whats next
- my opinions on the severance season 2 finale
- a hands on in-depth workshop with our best engineers on how you can make the most of everything available
I really like this pattern because I want to define middlewares for each endpoint and treat them like a sequentially running function instead of global middlewares that *ahem ahem*
I also want to dive deeper into Bun and see what other things can be done but I'm happy with how this is shaping out
2. Middlewares.
I don't want to add in a single `middleware.js` file. Instead, a new function called `withMiddleware()` is exposed, that sequentially runs middlewares.
no middlewares -> `export default handler;`
middlewares -> `export default withMiddleware(middleware1, handler);`
--so your structure would be
/pages/api/example/get.js
/pages/api/example/post.js
This would mean that a GET request to /api/example would go to get.js and a POST would hit post.js.
Alright so updates on Attay, the full stack framework I'm writing. This is server side for now because that's a bigger problem I want to deal with first.
1. Routes.
All routes go into `pages/api` folder, and mapped accordingly, except the file names are request methods--
Yeah software engineering is a low stress job. Why do you ask?
24.03.2025 13:02 β π 1 π 0 π¬ 0 π 0I am of the opinion that MCP servers have always existed - it's that OpenAI never did a good job of building them properly. Like go to ChatGPT and create a custom GPT - you'll see it's literally the same baselines for how you create MCP except it's more UI than code for setup^
22.03.2025 22:10 β π 1 π 0 π¬ 1 π 0This also means that AtΔ can be deployed as a Node/Bun application or on Cloudflare without any changes. This is what's roughly in my head.
Also, right now I'm focusing on creating a router - just doing itself is so much fun because enow I get to work with browser APIs that I never cared about
-chasing trends, while focusing in on basics and familiarity that I want. I don't care about making it a commercially viable framework, and I want to stick to core baselines wherever possible instead of creating abstractions over everything.
22.03.2025 22:09 β π 3 π 0 π¬ 1 π 0OK I've decided to just post all things about atΔ here.
AtΔ means "and" in Punjabi.
I wanted to start creating my own web framework not only to learn how things work but to also get out of Nextjs, while also picking up things I like from every other framework and something that's away from-
Ye like I need a trend-free SPA React based framework that picks up Nextjs' pages style along with simple / light weight routing with proper client side state management so I can build apps that don't have to worry about SEO and all the other bs
21.03.2025 15:04 β π 2 π 0 π¬ 0 π 0-- but now I feel the need to just write my own React based lib/framework that I can be truly native to React, bring in abstractions that I really like, stick to SPA and bring my own server.
21.03.2025 13:47 β π 0 π 0 π¬ 0 π 0because too often we're moving between, CSR, SSR, Serverful, Serverless and idk what else - feels like almost everyone is about going with trends. My last shot is Honojs, but now I'm just studying client and server frameworks to build my own.
I've already built some insane stuff on Next--
Also, while I'm spending 90% of my time building Yakk on Shopify App Store, I'm spending the rest 10% of my time building my own routing system and light weight framework. I'm at the point where I don't like the trend based setups for most frameworks and I'd rather stick to SPAs and be opinionated
21.03.2025 13:47 β π 3 π 0 π¬ 2 π 0Claude is becoming the next Apple - they're taking their sweet sweet time in building features but whatever they push out is perfect
21.03.2025 13:43 β π 0 π 0 π¬ 0 π 0BDE
14.03.2025 17:52 β π 1 π 0 π¬ 0 π 0If you know someone who wants to sponsor the next season, learn more here:
www.ladybug.dev/sponsor-us
I really forgot about this place :/
03.03.2025 12:02 β π 1 π 0 π¬ 1 π 0