I've always had a bunch of small side projects that I want to do that aren't worth the overhead required to actually put them together & keep them maintained. So, I built a small Lua-based FaaS platform to make each individual project less work whenever inspiration strikes. So far I've built:
* A current-time API for some hacked-together IoT devices: https://time.bodge.link/
* A script for my wife that checks her commute time and emails her before it's about to get bad.
* An email notification to myself if my Matrix server goes down.
* A 'randomly choose a thing' page. https://rand.bodge.link/choose?head&tails
* A work phone number voicemail, the script converts the webhook into an email to me.
* An email notification any time a new version is released for a few semi-public self-hosted services.
* Scrapers for a few companies' job listings that notify me whenever a new job is posted matching some filters.
* A WebPush server that I eventually want to use for custom notifications to myself.
* An SVG hit counter: https://hits.bodge.link/
Since I'm already maintaining it for myself, I figured I might as well open it up for others. It's free to play with, at least for now.
Do you think a service like yours with support for many variety of languages a good idea? Not in order to meet user demand but purely because I think it would "just" require running the program on the server using a different interpreter/compiler, assuming code sandboxing has been achieved to make the initial language work.
For example, I love the long list of languages supported by Code Golf: https://code.golf/wiki.
> Did you choose Lua because you love using it, or for some other pragmatic reasons?
A bit of both, though I'm literally drinking out of a coffee mug with the Lua logo on it that was given to me after playing a big part in making Lua a thing at a prevoius job. That might speak to my love of Lua.
> Do you think a service like yours with support for many variety of languages a good idea?
From a technical perspective, it would be relatively easy to add support for other languages, the biggest problem would be UI and documentation complexity. Each added language would either require a completely seperate set of documentaion or would require the docs to describe everything one layer of abstraction removed from the code people would actually be writing. Both of which would be less than ideal for my goal of extreme simplicity.
I think it can be a good idea, but to support something like that _well_ would require a pretty large team of people.
I do plan to support some level of 'other languages' for libraries, at a minimum some subset of native Lua libraries (ie. libs written in C). That means it would be possible to find a way to use pretty much any other language interpreter. However, I'm not sure that will ever be a top level feature, there'll probably always be some level of Lua glue code holding everything together.
Are there any auth protocols / flows you think would be important to support?
> Are there any auth protocols / flows you think would be important to support?
- I think API key passed via basic HTTP auth would get you pretty far. This is ideal for serving machine-machine requests and just requires that both parties can securely store the secret.
- OIDC is great for interactions that happen in the browser or if the function is serving multiple users, but is more complicated to setup and/or use correctly.
OpenID connect is probably the best for contexts where you want something served by multiple users and those users are humans.
> _Technically_ there's currently support for the cryptographic primitives required to do JWT (I added that because I wanted to support WebPush w/ payloads for myself)
This is probably a good intermediate solution FWIW - expose signature verification and HMAC APIs and allow a user to bring in their own implementation.
Looks cool, congrats on putting it out there as priced service!
And, same!
Except, it's just a repo organisation system (structure, conventions, and tools) that lets me share common "parts" across multiple "projects". No monolithic frameworks here.
Libraries are functions. Apps are objects.
However, normally, we use these as distinct artefacts, eventually leading to the "diamond dependency" problem (and lots of other annoying development-time stuff caused by libs / code that is "over there" (elsewhere)).
My "meta side project" solves, essentially the Expression Problem as it manifests in source code management (particularly, cross library / service / project feature development).
[0] https://github.com/adityaathalye/clojure-multiproject-exampl...
https://www.inclusivecolors.com/
There's millions of tools that try to autogenerate colors for you using algorithms and AI, but they usually ignore WCAG accessible contrast requirements, don't let you customise the tints/shades, don't let you create a full palette of colors, and the colors often don't look right on actual designs.
This tool is meant to make customising tints/shades intuitive and quick enough in a few clicks via a hue/saturation/lightness curve editing interface that you won't want to rely on autogeneration. There's also a live mockup showing how your palette looks on a UI design that checks pairings pass contrast requirements, to guide you as you tweak your colors and to teach you the WCAG rules.
You can then export your palette to regular CSS variables, Tailwind, Figma or Adobe for use in your designs.
Really open to any feedback on features that would be useful! I think the only way I can make it simpler to use is to make it more opinionated about how your palette should be designed so interested in any thoughts about that too.
That's awesome, I haven't kept up in what helps to get into AI recommendations. Guessing it's related to search result rankings? Not sure if the site would be in the training data. Curious if you asked about accessibility as that's my focus.
https://github.com/acutesoftware/lifepim-ai-core
Only been public a few days, so please let me know if there are glaring issues.
https://github.com/JWally/jsLPSolver
I'm tinkering around building "JARVIS" (I didn't want to come up with a clever self deprecating name - this works) - a personal project to manage my life. Integrates into Google Mail, Google Calendar, Trello, GroupMe, EveryDollar. Basically it nags me to do grown up thing and is a better UX than Google Calendar/Trello - I just talk to it and ask it things.
Also experimenting with a new Claude-Code flow; give the bot its own AWS account, Put a bunch of tickets on my personal JIRA, be persnickity about what constitutes "pass" and tell the bot "follow these instructions, pull down tickets until there are no more. Your branch cannot merge until you have integration tests passing in your own dev env first" (I use AWS CDK). Then let it loose to build. The instant feedback loop that Claude has with Build-Code->Deploy to AWS->Run Integration Tests->Address Failures is really nifty fwiw...
Googles Calendar is intimidating and confusing, same for all of them. I don't know what I want, but something with less red tape.
Edit: formatting