Hacker Newsnew | past | comments | ask | show | jobs | submit | azdle's commentslogin

My meta side project for building other side projects: https://bodge.app/

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.


Very very cool! Just signed up. Reminds me of Val Town which I'm a big fan of. Did you choose Lua because you love using it, or for some other pragmatic reasons?

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.


Thanks!

> 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.


Even better it could just support WASM and be language agnostic.

It's actually already using wasmtime as one layer in its sandbox. I just think that trying to support other languages, especially in a fully language agnostic way, would make things like documentation far more complex than I could handle and make the service complex enough that the only people who could understand it would be the type of person who don't really need a service like this in the first place.

This is great. One thing that is not immediately obvious to me is what kind of authentication it supports. Needing to authenticate the caller is the #1 piece of boilerplate that gets in the way of me completing mini-projects. It’s not hard, but it’s definitely a nonzero amount of effort. And this is coming from someone who has implemented many, many auth flows professionally.

It doesn't say because there's no special support for any auth protocols. Long-term I want to have out-of-the-box support for things like OAuth (for user-facing auth) or mutual TLS (for device/service auth). _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), but those aren't documented because I intend to remove the current slightly-hacky custom APIs and replace them with some off the shelf libraries, but I'm still figuring out user-added libraries (and on top of that I'll also need to figure out support for native libraries).

Are there any auth protocols / flows you think would be important to support?


Ah makes sense!

> 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.


> My meta side project for building other side projects

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...


Thanks for sharing! I signed up and tried it for something simple (storing a message via POST and displaying it in HTML via GET) and it was delightfully easy & approachable.

Great to hear! And thanks for saying so. I've definitely tried to make it as simple and straight forward as possible, but I really didn't know if it would be simple and straight forward to anyone but me.

FWIW I think you should paraphrase this comment on the hero of the site! I was unclear what it did till i read your comment fully.

I know the homepage needs way more answer to "WTH is it?", I just don't really enjoy doing the 'marketing' side of things. I hadn't really considered just throwing something informal up there, but I guess I don't really know _why_, so, thanks for the suggestion.

Love this, especially the commute idea

Thanks!

Thanks!

Coincidentally, I'm currently working on supporting luarocks packages. (Well, some of them, I want to at least support the ones that are pure lua or use the "builtin" build system (which means they don't have any native dependencies).)


Thanks!

Sadly no, it shutdown in 2017. If you try to login, it doesn't actually go anywhere.

Best I can tell the domain was picked up by some SEO scam. I'm guessing the way it works is they republish all the old content to keep the domain's reputation and then added a bunch of links to their sites to try to boost those site's reputation.


Wild.


I've found the rust core team to be very open to feedback. And maybe I've just been using Rust for too long, but the syntax feels quite reasonable to me.

Just for my own curiosity, do you have an examples of suggestions for how to improve the syntax that have been brought up and dismissed by the language maintainers?


Waking up the deck works for me with my xbox controller connected via bluetooth. Are you using those controllers via BT or USB?

Edit: Now that I think about it, this might have been a feature added to the OLED model.


Yes, the OLED model has a different Bluetooth controller and iirc that's the main reason. Though Valve has been working on trying to backport it to the original models as well.


I think they probably mean standard through-holes. It's the old trick where you stagger the holes just enough that the flex of the pinheaders still let's them be inserted, but have just enough friction to stay in place while you're flashing or whatever.


Right, plated through holes, but with almost no exposed anular ring. As little as I can get away with without getting mask sprayed down into the hole.

For 100 mil pitch, 25 mil square pins: 36 mil holes, 6 mil off center, 12 mil hole to hole.

The short side of a generic pin header is the side that goes in the holes, so the long side is free to accept dupont sockets and shunts the same as if you had the same pins soldered in the pcb. So the cable is just ordinary programmer fly wires with female dupont ends. You don't even need to make an actual cable.

If space is tight on the pcb then it does use up more pcb than pads that leave the other side free. And pogo pins are going to be a lot faster for producing something in numbers.

I don't mind buying nice stuff like a fancy purpose made good-working tool for myself but I'm always making open source projects and one design goal is to require as little as possible, and as generic and universal as possible from the user. So I avoid fancy special things where possible. It's not designing for commercial production runs nor designing for one-off for myself, it's designing to a kind of a platonic ideal to strip away anything unnecessary and yet try to meet 2 opposing goals at the same time as much as possible: Don't require special tools that make things work reliably because of how fancy the tool is, and don't require the user to be a zen master craftsman that can attain a successful result with rocks and nails. Try to make the process reliable and repeatable while still only requiring basic materials and supplies. As much as possible anyway.

Pogo pins are pretty common these days and not exactly exotic or expensive any more so maybe I can start using them.

Then again, the through holes do 2 extra things besides make the connection.

With pads you need to aim/register the pins to land on the pads, and you need to hold them there. That means aiming with your eyes and holding with at least one hand, or it means adding some kind of extra registration and grabbing features to both the pcb and the cable, like extra drill holes or slots and extra plastic shapes on a special cable-end etc. Or no extra features on the board and instead a whole clamping jig that holds both the board and the pins.

Since these are holes that pins go in to, you don't need any other form of registration to aim the pins at the pads. The pins go in the holes.

And they hold onto the pins themselves, so you don't need any other form of retention.

It's just like plugging a plug into a socket where the socket provides all that naturally.

I have one board that needs two different connections like that, one for jtag and one for power and to temporarily close a jumper to write-enable the cpld. So a 4-pin and a 6-pin, 2 different cables in 2 different places. The entire board is slightly smaller than a DIP-28 so no room for any real connectors. You just stick the cables in and two different cables hold themselves with zero hands while you operate the flashing software. The wires are all plain dupont wires stuck on the pins, no solder, and 2 of the pins just have a generic jumper on them. It's completely basic and not-special and works perfect.

I have another board that needs 28 pins in a small space. For that one I used 2.0mm pitch pins in straight rows not staggered, but with the holes only 1.7mm apart. In that case it's the long side of the pins that goes into the holes, and the short side is soldered into a programming adapter pcb that goes into a programmer. The pins are in 2 sets of 2x7. Each set of 2x7 has 2 straight rows of 0.72mm holes 1.7mm apart. What happens there is, as the pins start to lean over, the top of the pins hit the opposite side of the hole on the top of the pcb, and don't want to go any further. The pins wedge solid and make 4 points of contact, 2 on bottom and 2 on top, and the board won't go any further even though the pins only just poke out the top and there is still almost 2mm of travel left. So you have a lot of remaining travel to just push a little more if you get a bad connection. It works great and no special parts anywhere.


Oooh that's a great trick! Thanks, I'll try that on my next board.


I'm working on https://bodge.app/

I'm calling it a "Micro Functions as a Service" platform.

What it really is, is hosted Lua scripts that run in response to incoming HTTP requests to static URLs.

It's basically my version of the old https://webscript.io/ (that site is mostly the same as it was as long as you ignore the added SEO spam on the homepage). I used to subscribe to webscript and I'd been constantly missing it since it went away years ago, so I made my own.

I mostly just made this for myself, but since I'd put so much effort into it, I figure I'm going to try to put it out there and see if anyone wants to pay me to use it. Turns out there's a _lot_ of work that goes into abuse prevention when you're code from literally anyone on the internet, so it's not ready to actually take signups yet. But, there is a demo on the homepage.


Cool! This reminds of https://val.town


Oh, interesting! Thanks for that link, I hadn't managed to come across that when I was looking for existing alternatives.

I'm not sure I would have actually started building this if I knew that was an option. Hopefully their existence is telling me "there's a market, go for it" and not "there's already a better alternative, don't do it", heh. Though their pricing tiers really tells me I need to optimize my sandboxing. I don't think I can match those request limits at those prices just from the CPU cost of my per-request sandboxing overhead.


I actually think there's a lot of room in this space for other tools!


My first thought too!


It's not even claiming that. It's only claiming that people who responded to the survey feel more productive. (Unless you assume that people taking this survey have an objective measure for their own productivity.)

> Significant productivity gains: Over 80% of respondents indicate that AI has enhanced their productivity.

_Feeling_ more productive is inline with the one proper study I've seen.


The METR study showed even though people feel more productive they weren’t https://arxiv.org/abs/2507.09089


the MTR study is a joke. it surveyed only 16 devs. in the era of Sonnet 3.5

Can we stop citing this study

I'm not saying the DORA study is more accurate, but at least it surveyed 5000 developers, globally and more recently (between June 13 and July 21, 2025) which means using the most recent SOTA models


> I'm not saying the DORA study is more accurate, but at least it surveyed 5000 developers, globally and more recently

It's asking a completely different question; it is a survey of peoples' _perceptions of their own productivity_. That's basically useless; people are notoriously bad at self-evaluating things like that.


It didn't "survey" devs. It paid them to complete real tasks while they were randomly assigned to use AI or not, and measured the actual time taken to complete the tasks vs. just the perception. It is much higher quality evidence than a convenience sample of developers who just report their perceptions.


Yea cite the study funded by a company that invested billions into AI instead, that will surely be non biased and accurate.


Well I feel and I am more productive, now on coding activities, I am not convinced, it basically replaced SO and google, but at the end of the day, I always need and want to check reference material that I may have known or not existed. Plenty of time, Google couldn't even find them.

So in my case, yes but not on activities these sellers are usually claiming.


Another option that wouldn't contribute to more centralization might be neocities. They give you 3 TB for $5/month. That seems to be _the_ limit though. The dude runs his own CDN just for neocities, so it's not just reselling cloudflare or something.

P.S. Thank you for ProtonDB, it has been so incredibly helpful for getting some older games running.


For people who are excited about this idea, this coming Saturday is HTML Day: https://html.energy/html-day/2025/


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: