Stefan Skorpen
banner
skorpen.com
Stefan Skorpen
@skorpen.com
Fullstack Dev 🇳🇴 ❯ http://saasprices.nethttps://affill.iohttps://blog.skorpen.com ❯ Building in panic
Added more LLM API prices to the SaaSprices calculator

Deepseek R1
Google Gemini Flash 2.0
Grok 2
Claude Sonnet 3.7
OpenAI GPT 4.5 and o3

Check it out at saasprices.net/llm
March 25, 2025 at 6:44 PM
Added the serverless function hosting category to SaaS Prices

Now comparing prices for theses providers:
Google, AWS Lambda, Microsoft, @cloudflare.social, Genezio, @digitalocean.com, @vercel.com and @netlify.com

Image is showing very high traffic, but it really shows the difference in providers
December 8, 2024 at 9:38 PM
LLM Price Calculator added to SaaS Prices! 🤖

Added @anthropic.com Claude , Google Gemini, OpenAI, AI21, @cohere.com in the first batch.

saasprices.net/llm
December 3, 2024 at 9:38 PM
Added categories to the frontpage of SaaS Prices

Preparing for adding more categories, S3 compatible storage was the latest one added.
December 1, 2024 at 5:45 PM
Finally started implementing the design for my latest indie project saasprices.net?utm_source=bs

This is a tool for devs to find the best prices for SaaS tools we often use, and to compare and find alternatives.

Hopefully people find this useful

Made with SvelteKit and Svelte 5

Give it a try!
November 24, 2024 at 4:38 PM
Secure your API endpoints from abuse by adding a ratelimiter that prevents excessive use.

This can be done by saving the ip addresses in redis and checking with the Ratelimit library Upstash
November 20, 2024 at 10:28 AM
Capturing events are crucial to know how your users are using your webapp.

I like to use PostHog for both events and web analytics.

This is how you capture backend events, it's really easy.

And you get a nice dashboard with graphs for all your events!
November 19, 2024 at 10:34 AM
Numbers in JavaScript can be written in code with _ as a separator

This makes reading big numbers easier!
November 18, 2024 at 12:12 PM
In SvelteKit the form element is used to send data to actions as formData. And the checkbox input type behaves kinda weird, if its checked its sent as the string “on” to the action, and if its unchecked it gets omitted from the formData object.

This is how I do it:
November 17, 2024 at 10:22 AM
Had to enable opening files with a single click
November 16, 2024 at 9:03 PM
Keeping track of errors in prod is essential to have a healthy app.

Use @sentry.io to gather all your error reports in one place.

It's really easy with JavaScript apps, just configure sentry in your app and capture the exceptions like this:
November 14, 2024 at 4:49 PM
Mahiro the shikoku just turned 3 years old, he's the bestest of all good dogs 😍

#dogs #DogsOfBluesky #shikoku #nihonken
November 14, 2024 at 3:26 PM
SVG images can be used a couple different ways in React, this is my favorite option.

I create a file for the svg, and make it into a JSX component.
Add height and width at 100% so its responsive to its parent.

Change all kebab-case props to camelCase.
Voila!

#React #WebDev
November 13, 2024 at 6:44 PM
Sending transactional emails is pretty easy.

With Postmark I can create templates with dynamic properties in their builder, and then I just send the values along with the fetch call to send it.

No need to manually create email templates with html and css which is a huge pain!
November 12, 2024 at 9:07 PM
Triggers in PostgreSQL are really fun!

I needed to set a column value to the id of the row if its made by a free user.

Or set it to a user generated slug if its made by a paid user.

You can get the id with a trigger that runs BEFORE the insert in the table like this:
November 10, 2024 at 4:09 PM
Try out the new
'npx sv create'
CLI command that the svelte team added along with Svelte 5

It makes it so easy to start new Svelte and Sveltekit projects!
November 10, 2024 at 9:57 AM