Launchweek Day 2
@unkeydev
Releasing our serverless cache package for typescript, backed by any storage
- tiered caching
- stale-while-revalidate
- fully typesafe
Blog below
We are excited to announce that
@unkeydev
raised a $1.5 million pre-seed to solve API authentication and authorization for the next generation of developers.
Underrated feature of defining your schema via typescript (or any other language)
@DrizzleORM
makes it really easy to reuse common columns across your tables
Redesigned the form to create new endpoints in
It's now much more compact and easier to navigate
Also switched out a couple of components for
@shadcn
's ui
wdyt?
Today marks my final day at
@upstash
.
In the beginning, I had little to show for myself. Quitting university and having just 6 months of full-time experience under my belt, I'm forever grateful that they took a chance on me.
I've met so many amazing people and learned so much
Weekend update
#2
:
Redesigned the highstorm UI
Sorry for the pixels, but this is real user data :)
@resendlabs
' UI has been inspiring, it's so clean!
As always, this started out as
@tailwindui
+
@shadcn
and I refined it until I was happy.
live at
✨ Introducing Magic UI 🪄
A UI library of animated components to build beautiful landing pages.
Built using
@reactjs
,
@tailwindcss
and
@framer
motion.
100% Free and Open Source.
@justansub
@vercel
@Cloudflare
regarding bandwidth on cf:
cf operate at a much lower infrastructure level, peering directly with other giant network providers
on the other hand, vercel is building on top of (mostly) AWS. AWS itself charges a lot for bandwidth, and vercel add a margin on top.
there was a
Everyone crying about having server and client code in the same file in
@nextjs
nobody is forcing you to do it, you have seen examples which were optimized for brevity to show possibilities on a single slide
we run server actions in prod in separate files and they're really
Introducing Unkey - API key management made easy
100% Open Source
- Create, verify and manage keys to provide your users access to your API
- Built in rate limiting
- Short lived keys
We still have over 1k applications to go through, please don't dm us asking if we read yours already. We're trying hard to keep up 🥲
If you have not yet received an email response, we have not read it yet
How am I supposed to ever render time in the user's locale in
@nextjs
RSC?
I have a client component that uses `toLocaleTimeString()` and it always throws this error
Small weekend project:
I created a working prototype for an event dashboard, cause I'm tired of creating new slack webhooks for each event and then losing track of them.
@shadcn
's components made this so easy and it took only about 3 hours using
@nextjs
and
@tinybirdco
I'm still in awe at how much performance
@planetscaledata
have managed to squeeze out of a single replica.
This (free tier) database is running in frankfurt, yet has a p75 read latency of only 177ms globally from
@vercel
edge functions
👉
Working on a new pricing component, cause I can't think of another reason why the old one didn't convert users... or I got distracted by shiny things, who knows
I spent a day or two tuning our release pipeline for our
@honojs
API on
@CloudflareDev
workers.
Our product is in the critical path of our users, so we really can't accept high latency, regardless of where our user is, but measuring that as part of the CI/CD pipeline is not
@sincethestudy
@vercel
@vercel_support
then you should've built on AWS lambda, the prices were clearly displayed before you built it and before you decided to launch on HN
If you're applying for a job, please don't use the same AI cover letter generator as everyone else.
I get it; it's saving time and - in theory - tailoring your resume to the job description, but it's just off-putting to read the same generic phrases over and over again.
2023
- shipped a ton of cool stuff
@upstash
- 0 -> 4712 followers on
@X
- 3,049 contributions on GitHub
- cofounded
@unkeydev
- raised $1.5mil
- got engaged
- met some awesome people
Everyone always praises
@ClerkDev
's for their components, but the real win imo are the react hooks allowing you to easily build your own UI for the same functionality, pair it with
@shadcn
and you're good to go
🕶️
You might not need an external cache if you're on
@cloudflare
workers
in memory caching + zone cache might be enough.
it certainly is enough for
@unkeydev
read-latencies in millisecond from last 30days
Who else is having a hard time keeping up with all of the shipping happening from
@nutlope
,
@steventey
,
@dom__inic
and other amazing people?
I built a small oss blog template and will use it to keep track of all of them.
Excited to share with you:
We released global ratelimits powered by
@Cloudflare
workers and Durable Objects
- We do not charge for requests if the limit was exceeded, only successful requests
- Try it out here
Underrated feature of
@shadcn
's ui:
I just did a search and replace for `Dialog` -> `Sheet` in my page and everything worked out of the box and I now have a drawer with a form rather than a modal.
Love when the components are this consistent and you can just experiment easily.
The beauty of components, that you "install" by
copying the code to your repo.
You get the best of both worlds:
- beautiful and functional components out of the box, allowing you move super quickly
- full flexibility in styling whenever you want, it's not bootstrap, where
API errors like "Oops something went wrong, try again later" are so useless.
for
@unkeydev
we're returning errors like this:
- a machine readable code
- a human readable message
- link to the docs
- requestId for internal debugging
What else would you include?
Playing around with
@nextjs
server actions after
@leeerob
and team updated the docs and I really missed the typed experience from
@trpcio
fortunately you can build a small utility function pretty easily and now use server actions and get full typesafety
The more I use serverless, the more I want to use servers, it feels like I’m just building fixes to make serverless work
But it’s hard to achieve such low latencies globally like
@cloudflare
workers
Just upgraded to
@nextjs
13.4 with the stable app-router auth from
@ClerkDev
and it's very smooth
Previously there were a few rough edges but those have all been resolved now
Thank you so much for making it possible to build multitenant apps so easily
I open sourced zod-bird, a
@tinybirdco
client, powered by zod
- typesafe tinybird endpoints/datasources
- handles building the url params for you
- easy transformation of resulting data
- built in cache directives for
@nextjs
Why can I not find anything about authentication in
@nextjs
server actions?
am I missing something here? Don't I need to authenticate and authorize the request?
You might have seen me complaining a lot recently about the difficulties of scaling
@cloudflare
workers and
@tinybirdco
beyond 1000 RPS
Well, complaining is good for engagement but doesn't solve my problem, so here's what we did:
👇 blog
💡 Unique IDs are crucial to ensure data integrity, facilitate efficient data retrieval, and prevent conflicts or ambiguities in identifying individual records!
Prisma ORM supports the following ID generation methods out of the box:
✅ cuid
✅ uuid
📚
Some thoughts after creating quite a few forms with the new
@nextjs
server actions:
+ they work well with a validation helper
+ it's clean, I can colocate an action.ts file and have everything in one place
+ The return type experience is surprisingly good, I expected to be
Playing around with
@nextjs
server actions after
@leeerob
and team updated the docs and I really missed the typed experience from
@trpcio
fortunately you can build a small utility function pretty easily and now use server actions and get full typesafety