aral, to SmallWeb
@aral@mastodon.ar.al avatar

Folks: So, Aral, you’re building Kitten all by yourself?

Me: Umm, yeah, something like that…

https://codeberg.org/kitten/app/src/branch/main/CONTRIBUTORS.md

#Kitten #SmallWeb #SmallTech #contributors #foss #community

aral, to programming
@aral@mastodon.ar.al avatar

Just released a tiny Node module that parses the attributes from a single tag (any attribute from anything that looks like a tag, not just valid attributes from HTML tags).

https://codeberg.org/small-tech/attribute-parser

(Regular expressions just don’t cut it when you want to support boolean attributes as well as attributes with dashes in the names and unquoted, single-quoted, and double-quoted values.)

#nodeJS #SmallTech #SmallWeb #attributeParser #web #dev

aral, (edited ) to SmallWeb
@aral@mastodon.ar.al avatar

Coming soon to Kitten¹: the drumroll <kitten> tag

You’ll soon be able to specify common <head> attributes, the syntax highlighting theme, and which libraries to include (htmx, alpine, water) declaratively.

(You can still return an object from your routes or use the HEAD slot to add any custom code to the head of your pages. The advantage of the <kitten> tag method is you can use it in pages as well as in fragments/components.)

:kitten: 💕

¹ https://codeberg.org/kitten/app

#Kitten #SmallWeb

viennawriter, to SmallWeb German
@viennawriter@literatur.social avatar

#Kitten stickers have arrived. They're looking great! :kitten: 🎉 Labelled the cat. And the bike. 😸 Thank you, @aral!
#SmallWeb

Photo of a white tiger cat sniffing on a kitten sticker that's been held to her nose.
Photo of the white tiger cat, the kitten sticker lies on her head.

aral, to SmallWeb
@aral@mastodon.ar.al avatar

Just added Water.css¹ support to Kitten².

Water is a CSS stylesheet for semantic HTML that’s responsive, has good typographical defaults, and light/dark mode support.

Useful for demos, teaching, and also as a good base stylesheet for your Small Web places.

Just add WATER (see what I did there?) to your libraries array in your pages.

¹ https://watercss.kognise.dev/
² https://codeberg.org/kitten/app/

#Kitten #SmallWeb #SmallTech #WaterCSS #CSS #web #dev #stylesheet #html #semanticHTML

aral, to SmallWeb
@aral@mastodon.ar.al avatar

Just published Kitten’s¹ new database² commands:

  • kitten db [table name] to see info the database/a specific table
  • kitten db delete [table name] to delete the database/a specific table
  • kitten db tail <table name> to follow a specific table

Full docs: https://codeberg.org/kitten/app#database-commands

¹ https://codeberg.org/kitten/app
² https://codeberg.org/small-tech/jsdb

aral, (edited ) to SmallWeb
@aral@mastodon.ar.al avatar

Sitting at the hotel bar in Paris, sipping some red wine and adding a new database command to the Kitten¹ command-line interface.

You can now tail JavaScript Database (JSDB)² tables with:

kitten db <table name>

(Remember that JSDB writes its tables as append-only JavaScript logs.)

¹ https://codeberg.org/kitten/app
² https://codeberg.org/small-tech/jsdb

#Kitten #SmallWeb #JavaScript #database #JSDB

aral, (edited ) to SmallWeb
@aral@mastodon.ar.al avatar

Well, it might take a few more minutes in front of the mirror but I think I still scrub up well for three years shy of the big five-oh. All dolled up and ready to fly to Paris for my talk on Kitten* and the Small Web tomorrow at #NewCrafts.

Can’t believe this year marks my 40th year of programming.

I owe a lot to my dad bringing home that IBM XT compatible and a BASIC manual when I was 7.

I’m fact, that’s where my talk tomorrow begins…

#Kitten #SmallWeb

aral, to SmallWeb
@aral@mastodon.ar.al avatar

#Kitten now has high-level support for file uploads.

  • Automatically serves uploads by unique ID at /uploads/<unique-id>
  • Makes the list of files available to your POST routes in an array at request.files

This is how simple it is:

https://codeberg.org/kitten/app#multipart-forms-and-file-uploads

Under the hood, I’ve replaced body-parser with express-busboy. That’s a major change so if something breaks for you, please do let me know. Also fixed a few things, including a parse error triggered by some scripts.

#SmallWeb #web #dev

aral, to SmallWeb
@aral@mastodon.ar.al avatar

Me: Now, this time, I’m not going to implement anything big before a talk, just take my time, work on my presentation…

Also me: Hmm, let me see, what if I swap one of the core components in Kitten with this other thing… ah, yes, that should be fine…

#Kitten #SmallWeb

aral,
@aral@mastodon.ar.al avatar

So I just finished implementing file upload support in Kitten and it is very neat (if I say so myself) :kitten: 🎉

Will merge it into main tomorrow after some more testing.

Can’t wait to show it off as part of the personal microblog site example I’m going to be livecoding at NewCrafts Paris on Thursday.

(Just look at how little code there is in the POST route and the main page to work with uploads.)

’Night ’night folks :)

#Kitten #SmallWeb #SmallTech #web #dev

aral, to random
@aral@mastodon.ar.al avatar

Yay, just received my Kitten stickers. If you’re in Paris for NewCrafts this week, make sure you ask me for one :)

:kitten:💕

#SmallWeb #SmallTech #Kitten #NewCrafts #stickers #Paris

aral,
@aral@mastodon.ar.al avatar

Haha, the new Kitten stickers are pretty small so they don’t cover the StarLabs logo on my laptop and so is born the Kitten unicorn :)

(Very different to those other unicorns you hear about.)

#Kitten #unicorn #StarLabs #laptop #sticker #SmallWeb #SmallTech

Photo of black laptop lid with Kitten’s head sticker with one of the points from the original logo sticking out the middle of it, making it look like a unicorn.

ipxfong, to SmallWeb
@ipxfong@mastodon.sdf.org avatar

Hey nerds, is anyone still maintaining any Web Rings? I used to love those. I know they don't serve much purpose in the modern corporate internet but it seems like they'd be a good fit for the handmade web.

indieterminacy,

@ipxfong Not fully answering the question but this #SmallWeb search engine, #MarginaliaSearch may interest you

> The aim of the project is to develop new and alternative discovery methods for the Internet. It's an experimental workshop as much as it is a public service, the overarching goal is to elevate the more human, non-commercial sides of the Internet. A side-goal is to do this without requiring datacenters and expensive enterprise hardware

https://github.com/MarginaliaSearch/MarginaliaSearch

https://search.marginalia.nu/

aral, (edited ) to SmallWeb
@aral@mastodon.ar.al avatar

I do rather love being able to run tail¹ on my database tables² as I work on building Domain³ with Kitten⁴ ;)

(JSDB keeps tables in an append-only JavaScript log which are read fully into memory when the database is opened. And yes, if you noticed the class names, you can store custom objects.)

¹ Actually: tail -f <database path>/table.js | bat --paging=never --language=js
² https://codeberg.org/small-tech/jsdb
³ https://codeberg.org/domain/app
https://codeberg.org/kitten/app

#SmallWeb #JSDB #Domain #Kitten #databases

aral, to random
@aral@mastodon.ar.al avatar

“Honey, I’ve changed”

– Tech billionaires launching their latest “decentralised” projects

aral,
@aral@mastodon.ar.al avatar

@ainmosni Depends what your definition of winning is. I’m not even playing the same game ;)

#SmallWeb

aral, to SmallWeb
@aral@mastodon.ar.al avatar

Anyone here know anyone from Paddle that you can put me in touch with? (Or share your experience with them?)

I’m reconsidering whether Stripe is the right solution for the initial payments option in Domain (https://codeberg.org/domain/app) or whether it makes more sense (and would be easier for folks who want to run their own Domain instances and become Small Web hosts) if I integrated a Merchant of Record (MoR) solution instead.

#SmallWeb #commerce #Domain #merchantOfRecord #MoR #stripe #paddle #tax

aral,
@aral@mastodon.ar.al avatar

Right, so I signed up with Paddle and with FastSpring (also a merchant of record) and I don’t think Paddle is going to work as you can’t create subscription plans via their API. In FastSpring you can so I’m going to continue to looking at that. So, to update my query:

Anyone know anyone at FastSpring they can introduce me to or have any experiences with them they can share with me?

(I may still end up going with #Stripe.)

Thanks!

#Paddle #FastSpring #paymentServices #MoR #SmallWeb #Domain

aral,
@aral@mastodon.ar.al avatar

I’m sure you’re all riveted to hear my next niche micro-update on finding a payment solution to integrate into #Domain¹ but I’m actually reconsidering #Paddle. The more I think about it, the less custom logic there is in Domain to handle payment providers the better. A very lightweight abstraction over embedding a #payment form and handling #webhooks should make it easier to add others in the future at the cost of more setup in the payment provider itself.

¹ https://codeberg.org/domain/app

#SmallWeb

aral,
@aral@mastodon.ar.al avatar

The initial integration of Paddle into Domain is now complete. I’m happy with how it turned out.

Now the only (“only” he says) bit left is reimplementing the provisioning and setup of Small Web servers running Kitten (or Kitten apps).

It‘s getting there…

:kitten: 💕

#Domain #Kitten #SmallWeb #paddle #payment #sustainability #subsisting #capitalism

jwildeboer, to random
@jwildeboer@social.wildeboer.net avatar

I don't really understand the attacks on the mastodon app. There are many apps out there. Nobody is forcing you to use their app or to use mastodon.social. The fediverse is bigger than any one instance or app. Let's build a bigger fediverse and not fall into the trap of infighting, OK?

claudius,

@jwildeboer
This would align with #SmallWeb /cc @aral

accordionpolar, to SmallWeb
aral, to javascript
@aral@mastodon.ar.al avatar

An interesting JavaScript Database (JSDB) edge case I just encountered:

If you’re persisting custom objects, please do NOT use setter methods (set something () {…}).

Use regular methods instead (setSomething () {…}) for predictable behaviour that likely matches your conceptual model of how things should work.

(This is due to how setters interact with proxies.)

Details: https://codeberg.org/small-tech/jsdb#custom-data-types

#JavaScriptDatabase #javascript #database #jsdb #accessors #SmallTech #SmallWeb #web #dev

yuliyan, to SmallWeb
@yuliyan@nahe.social avatar

Digital wellbeing move of the week: I set up an e-mail address for the sole purpose of signing up to newsletters. From idea to action in just 3 years, wow.

What are some rad newsletters to sign up for?

Topics:

'preshy8)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • provamag3
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • JUstTest
  • All magazines