If you want the bells and whistles for the UI, fine, React/Vue/Svelte will help.
If you just want something that achieves the goal, without bringing new skills or dependencies, HTMX is the way.
I've used HTMX with Alpine for a backend application, and they help on making the application more dynamic, along with Tailwindcss a lot of the frontend effort is complete.
I'm building Singlebase.Cloud[1], the next generation BaaS, that will provide a NoSQL Datastore, Authentication, Storage, Search, Image processing, Analytics and more.
All with a friendly API to access and manipulate your data via SQL, GraphQL, REST.
Granted it's not a SQL DB, it provides a SQL interface to query and update your data.
And for GraphQL, your data becomes the schema. There is no need to build a schema, whatever you throw at it, it will return it, if it exists in the response. Making the GraphQL a presentation layer. (I think it's cool)
Do you know how Hetzner is when something happens?
Say you receive a fraudulent DMCA takedown request. Or someone doesn't like what you're hosting there (like the recent core-js situation where they receive a lot of hate) and somehow sends a complain/report to Hetzner.
Would Hetzner shutdown the VPS first and ask questions later? Or would they approach me first?
I'm taking this chance to move from Linde to a different provider, so I'm interested in how they handle situations like this.
By law Linode is supposed to turn off and wait for a counter claim. Most companies forward and wait forward. Hetzner is not fast to react on abuse and are quite large.
While UUID4 can be good for UserID. Sometimes, to avoid having a second index in the DB, ULID is another good option; As not only it supports some of the features of UUID4 of uniqueness, it is also sortable.
The part that was last touched in 2019 is the spec + homepage. By this measure, UUID was last touched in 2005 (if we count RFC 4122).
Most ULID implementations are still actively maintained and people are still using it in production. Most implementations also have liberal license like MIT so no, you should not worry about the GPL spec (unless you plan to distribute the spec with your app).
Nice! I just hadn't seen it referenced anywhere before - the last big ID wave I can remember was the swath of content about moving to snowflake style IDs
ULID leaks information about when the user was created (while serial IDs leaking the order in which users were created and their cardinality).
I'm using ULIDs for the cases when the entity is publicly orderd by time: any timestamped event, e.g. a chat message, a log entry, or a sensor measurement/metric.
But need to be careful that the timestamp resolution is detailed enough.
Also, while ULID might be good for optimizing RDBMS indexes, it might create hotspots in NoSQL K/V stores (i.e. all entities will be created on the same node in the cluster).
> ULID leaks information about when the user was created
How often is this really a bad thing? Are you worried about someone enumerating the entire space of possible ULIDs for every millisecond without ever rate-limiting them? Not many people are building anonymous, privacy-first websites and there's plenty of other ways to determine when a user first started using the site regardless.
If interested in self hosted alternative, which can be hosted on Digital Ocean, Linode, Hetzner, check out Sailor[1].
Sailor[1] is a tiny PaaS to install on your servers/VPS that uses git push to deploy micro-apps, micro-services, sites with SSL, on your own servers or VPS, similar to Heroku
For another self hosted alternative, which can be hosted on Digital Ocean, Linode, Hetzner, check out Sailor[1].
Sailor[1] is a tiny PaaS to install on your servers/VPS that uses git push to deploy micro-apps, micro-services, sites with SSL, on your own servers or VPS
If you just want something that achieves the goal, without bringing new skills or dependencies, HTMX is the way.
I've used HTMX with Alpine for a backend application, and they help on making the application more dynamic, along with Tailwindcss a lot of the frontend effort is complete.